c_src: update
[nit.git] / c_src / mmloader._sep.c
1 /* This C file is generated by NIT to compile module mmloader. */
2 #include "mmloader._sep.h"
3 val_t mmloader___Message___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[3];} 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 = 4;
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[3] = NIT_NULL;
57 fra.me.REG[0] = p0;
58 fra.me.REG[1] = p1;
59 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[0]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[0]))) /*cast OTHER*/;
60 if (UNTAG_Bool(REGB0)) {
61 } else {
62 nit_abort("Cast failed", NULL, LOCATE_mmloader, 0);
63 }
64 /* ./mmloader.nit:33 */
65 fra.me.REG[2] = fra.me.REG[0];
66 /* ./mmloader.nit:34 */
67 fra.me.REG[3] = CALL_mmloader___Message___location(fra.me.REG[2])(fra.me.REG[2]);
68 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
69 if (UNTAG_Bool(REGB0)) {
70 } else {
71 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
72 if (UNTAG_Bool(REGB1)) {
73 REGB1 = TAG_Bool(false);
74 REGB0 = REGB1;
75 } else {
76 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
77 REGB0 = REGB1;
78 }
79 }
80 if (UNTAG_Bool(REGB0)) {
81 REGB0 = TAG_Bool(true);
82 goto label1;
83 }
84 /* ./mmloader.nit:35 */
85 fra.me.REG[3] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
86 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
87 if (UNTAG_Bool(REGB1)) {
88 } else {
89 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
90 if (UNTAG_Bool(REGB2)) {
91 REGB2 = TAG_Bool(false);
92 REGB1 = REGB2;
93 } else {
94 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
95 REGB1 = REGB2;
96 }
97 }
98 if (UNTAG_Bool(REGB1)) {
99 REGB1 = TAG_Bool(false);
100 REGB0 = REGB1;
101 goto label1;
102 }
103 /* ./mmloader.nit:37 */
104 fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[2])(fra.me.REG[2]);
105 REGB1 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
106 if (UNTAG_Bool(REGB1)) {
107 } else {
108 nit_abort("Cast failed", NULL, LOCATE_mmloader, 37);
109 }
110 fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
111 REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
112 if (UNTAG_Bool(REGB1)) {
113 } else {
114 nit_abort("Cast failed", NULL, LOCATE_mmloader, 37);
115 }
116 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
117 if (UNTAG_Bool(REGB1)) {
118 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 37);
119 }
120 REGB1 = CALL_standard___kernel___Comparable_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
121 REGB0 = REGB1;
122 goto label1;
123 label1: while(0);
124 stack_frame_head = fra.me.prev;
125 return REGB0;
126 }
127 val_t mmloader___Message___to_s(val_t p0){
128 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
129 val_t REGB0;
130 val_t REGB1;
131 val_t tmp;
132 static val_t once_value_2; /* Once value */
133 static val_t once_value_3; /* Once value */
134 static val_t once_value_4; /* Once value */
135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
136 fra.me.file = LOCATE_mmloader;
137 fra.me.line = 40;
138 fra.me.meth = LOCATE_mmloader___Message___to_s;
139 fra.me.has_broke = 0;
140 fra.me.REG_size = 5;
141 fra.me.REG[0] = NIT_NULL;
142 fra.me.REG[1] = NIT_NULL;
143 fra.me.REG[2] = NIT_NULL;
144 fra.me.REG[3] = NIT_NULL;
145 fra.me.REG[4] = NIT_NULL;
146 fra.me.REG[0] = p0;
147 /* ./mmloader.nit:42 */
148 fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
149 /* ./mmloader.nit:43 */
150 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
151 if (UNTAG_Bool(REGB0)) {
152 } else {
153 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
154 if (UNTAG_Bool(REGB1)) {
155 REGB1 = TAG_Bool(false);
156 REGB0 = REGB1;
157 } else {
158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
159 REGB0 = REGB1;
160 }
161 }
162 if (UNTAG_Bool(REGB0)) {
163 /* ./mmloader.nit:44 */
164 fra.me.REG[2] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
165 goto label1;
166 } else {
167 /* ./mmloader.nit:46 */
168 REGB0 = TAG_Int(5);
169 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
170 if (!once_value_2) {
171 fra.me.REG[4] = BOX_NativeString("");
172 REGB0 = TAG_Int(0);
173 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
174 once_value_2 = fra.me.REG[4];
175 register_static_object(&once_value_2);
176 } else fra.me.REG[4] = once_value_2;
177 fra.me.REG[4] = fra.me.REG[4];
178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
179 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
181 if (!once_value_3) {
182 fra.me.REG[1] = BOX_NativeString(": ");
183 REGB0 = TAG_Int(2);
184 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
185 once_value_3 = fra.me.REG[1];
186 register_static_object(&once_value_3);
187 } else fra.me.REG[1] = once_value_3;
188 fra.me.REG[1] = fra.me.REG[1];
189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
190 fra.me.REG[0] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
192 if (!once_value_4) {
193 fra.me.REG[0] = BOX_NativeString("");
194 REGB0 = TAG_Int(0);
195 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
196 once_value_4 = fra.me.REG[0];
197 register_static_object(&once_value_4);
198 } else fra.me.REG[0] = once_value_4;
199 fra.me.REG[0] = fra.me.REG[0];
200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
201 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
202 fra.me.REG[2] = fra.me.REG[3];
203 goto label1;
204 }
205 label1: while(0);
206 stack_frame_head = fra.me.prev;
207 return fra.me.REG[2];
208 }
209 val_t mmloader___Message___to_color_string(val_t p0){
210 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
211 val_t REGB0;
212 val_t REGB1;
213 val_t REGB2;
214 val_t REGB3;
215 val_t REGB4;
216 val_t REGB5;
217 val_t tmp;
218 static val_t once_value_1; /* Once value */
219 static val_t once_value_2; /* Once value */
220 static val_t once_value_3; /* Once value */
221 static val_t once_value_4; /* Once value */
222 static val_t once_value_5; /* Once value */
223 static val_t once_value_6; /* Once value */
224 static val_t once_value_7; /* Once value */
225 static val_t once_value_8; /* Once value */
226 static val_t once_value_9; /* Once value */
227 static val_t once_value_10; /* Once value */
228 static val_t once_value_12; /* Once value */
229 static val_t once_value_13; /* Once value */
230 static val_t once_value_14; /* Once value */
231 static val_t once_value_15; /* Once value */
232 static val_t once_value_16; /* Once value */
233 static val_t once_value_20; /* Once value */
234 static val_t once_value_21; /* Once value */
235 static val_t once_value_22; /* Once value */
236 static val_t once_value_23; /* Once value */
237 static val_t once_value_24; /* Once value */
238 static val_t once_value_25; /* Once value */
239 static val_t once_value_26; /* Once value */
240 static val_t once_value_27; /* Once value */
241 static val_t once_value_28; /* Once value */
242 static val_t once_value_29; /* Once value */
243 static val_t once_value_30; /* Once value */
244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
245 fra.me.file = LOCATE_mmloader;
246 fra.me.line = 50;
247 fra.me.meth = LOCATE_mmloader___Message___to_color_string;
248 fra.me.has_broke = 0;
249 fra.me.REG_size = 12;
250 fra.me.REG[0] = NIT_NULL;
251 fra.me.REG[1] = NIT_NULL;
252 fra.me.REG[2] = NIT_NULL;
253 fra.me.REG[3] = NIT_NULL;
254 fra.me.REG[4] = NIT_NULL;
255 fra.me.REG[5] = NIT_NULL;
256 fra.me.REG[6] = NIT_NULL;
257 fra.me.REG[7] = NIT_NULL;
258 fra.me.REG[8] = NIT_NULL;
259 fra.me.REG[9] = NIT_NULL;
260 fra.me.REG[10] = NIT_NULL;
261 fra.me.REG[11] = NIT_NULL;
262 fra.me.REG[0] = p0;
263 /* ./mmloader.nit:52 */
264 REGB0 = TAG_Int(27);
265 /* ./../lib/standard//kernel.nit:297 */
266 REGB0 = TAG_Char(UNTAG_Int(REGB0));
267 /* ./mmloader.nit:53 */
268 REGB1 = TAG_Int(3);
269 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
270 if (!once_value_1) {
271 fra.me.REG[2] = BOX_NativeString("");
272 REGB1 = TAG_Int(0);
273 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
274 once_value_1 = fra.me.REG[2];
275 register_static_object(&once_value_1);
276 } else fra.me.REG[2] = once_value_1;
277 fra.me.REG[2] = fra.me.REG[2];
278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
279 fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
281 if (!once_value_2) {
282 fra.me.REG[2] = BOX_NativeString("[0;31m");
283 REGB1 = TAG_Int(6);
284 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
285 once_value_2 = fra.me.REG[2];
286 register_static_object(&once_value_2);
287 } else fra.me.REG[2] = once_value_2;
288 fra.me.REG[2] = fra.me.REG[2];
289 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
290 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
291 /* ./mmloader.nit:54 */
292 REGB1 = TAG_Int(3);
293 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
294 if (!once_value_3) {
295 fra.me.REG[2] = BOX_NativeString("");
296 REGB1 = TAG_Int(0);
297 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
298 once_value_3 = fra.me.REG[2];
299 register_static_object(&once_value_3);
300 } else fra.me.REG[2] = once_value_3;
301 fra.me.REG[2] = fra.me.REG[2];
302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
303 fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
305 if (!once_value_4) {
306 fra.me.REG[2] = BOX_NativeString("[1;31m");
307 REGB1 = TAG_Int(6);
308 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
309 once_value_4 = fra.me.REG[2];
310 register_static_object(&once_value_4);
311 } else fra.me.REG[2] = once_value_4;
312 fra.me.REG[2] = fra.me.REG[2];
313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
314 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
315 /* ./mmloader.nit:55 */
316 REGB1 = TAG_Int(3);
317 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
318 if (!once_value_5) {
319 fra.me.REG[3] = BOX_NativeString("");
320 REGB1 = TAG_Int(0);
321 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
322 once_value_5 = fra.me.REG[3];
323 register_static_object(&once_value_5);
324 } else fra.me.REG[3] = once_value_5;
325 fra.me.REG[3] = fra.me.REG[3];
326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
327 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
329 if (!once_value_6) {
330 fra.me.REG[3] = BOX_NativeString("[0;32m");
331 REGB1 = TAG_Int(6);
332 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
333 once_value_6 = fra.me.REG[3];
334 register_static_object(&once_value_6);
335 } else fra.me.REG[3] = once_value_6;
336 fra.me.REG[3] = fra.me.REG[3];
337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
338 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
339 /* ./mmloader.nit:56 */
340 REGB1 = TAG_Int(3);
341 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
342 if (!once_value_7) {
343 fra.me.REG[3] = BOX_NativeString("");
344 REGB1 = TAG_Int(0);
345 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
346 once_value_7 = fra.me.REG[3];
347 register_static_object(&once_value_7);
348 } else fra.me.REG[3] = once_value_7;
349 fra.me.REG[3] = fra.me.REG[3];
350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
351 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
353 if (!once_value_8) {
354 fra.me.REG[3] = BOX_NativeString("[0;33m");
355 REGB1 = TAG_Int(6);
356 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
357 once_value_8 = fra.me.REG[3];
358 register_static_object(&once_value_8);
359 } else fra.me.REG[3] = once_value_8;
360 fra.me.REG[3] = fra.me.REG[3];
361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
362 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
363 /* ./mmloader.nit:57 */
364 REGB1 = TAG_Int(3);
365 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
366 if (!once_value_9) {
367 fra.me.REG[4] = BOX_NativeString("");
368 REGB1 = TAG_Int(0);
369 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
370 once_value_9 = fra.me.REG[4];
371 register_static_object(&once_value_9);
372 } else fra.me.REG[4] = once_value_9;
373 fra.me.REG[4] = fra.me.REG[4];
374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
375 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
377 if (!once_value_10) {
378 fra.me.REG[4] = BOX_NativeString("[0m");
379 REGB0 = TAG_Int(3);
380 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
381 once_value_10 = fra.me.REG[4];
382 register_static_object(&once_value_10);
383 } else fra.me.REG[4] = once_value_10;
384 fra.me.REG[4] = fra.me.REG[4];
385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
386 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
387 /* ./mmloader.nit:59 */
388 fra.me.REG[4] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
389 /* ./mmloader.nit:60 */
390 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
391 if (UNTAG_Bool(REGB0)) {
392 } else {
393 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
394 if (UNTAG_Bool(REGB1)) {
395 REGB1 = TAG_Bool(false);
396 REGB0 = REGB1;
397 } else {
398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
399 REGB0 = REGB1;
400 }
401 }
402 if (UNTAG_Bool(REGB0)) {
403 /* ./mmloader.nit:61 */
404 fra.me.REG[5] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
405 goto label11;
406 } else {
407 /* ./mmloader.nit:62 */
408 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
409 if (UNTAG_Bool(REGB0)) {
410 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 62);
411 }
412 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
413 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
414 if (UNTAG_Bool(REGB0)) {
415 } else {
416 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
417 if (UNTAG_Bool(REGB1)) {
418 REGB1 = TAG_Bool(false);
419 REGB0 = REGB1;
420 } else {
421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
422 REGB0 = REGB1;
423 }
424 }
425 if (UNTAG_Bool(REGB0)) {
426 /* ./mmloader.nit:63 */
427 REGB0 = TAG_Int(9);
428 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
429 if (!once_value_12) {
430 fra.me.REG[7] = BOX_NativeString("");
431 REGB0 = TAG_Int(0);
432 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
433 once_value_12 = fra.me.REG[7];
434 register_static_object(&once_value_12);
435 } else fra.me.REG[7] = once_value_12;
436 fra.me.REG[7] = fra.me.REG[7];
437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
439 if (!once_value_13) {
440 fra.me.REG[7] = BOX_NativeString("");
441 REGB0 = TAG_Int(0);
442 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
443 once_value_13 = fra.me.REG[7];
444 register_static_object(&once_value_13);
445 } else fra.me.REG[7] = once_value_13;
446 fra.me.REG[7] = fra.me.REG[7];
447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
448 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
450 if (!once_value_14) {
451 fra.me.REG[7] = BOX_NativeString("");
452 REGB0 = TAG_Int(0);
453 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
454 once_value_14 = fra.me.REG[7];
455 register_static_object(&once_value_14);
456 } else fra.me.REG[7] = once_value_14;
457 fra.me.REG[7] = fra.me.REG[7];
458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
459 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
460 if (!once_value_15) {
461 fra.me.REG[7] = BOX_NativeString(": ");
462 REGB0 = TAG_Int(2);
463 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
464 once_value_15 = fra.me.REG[7];
465 register_static_object(&once_value_15);
466 } else fra.me.REG[7] = once_value_15;
467 fra.me.REG[7] = fra.me.REG[7];
468 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
469 fra.me.REG[7] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
471 if (!once_value_16) {
472 fra.me.REG[7] = BOX_NativeString("");
473 REGB0 = TAG_Int(0);
474 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
475 once_value_16 = fra.me.REG[7];
476 register_static_object(&once_value_16);
477 } else fra.me.REG[7] = once_value_16;
478 fra.me.REG[7] = fra.me.REG[7];
479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
480 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
481 fra.me.REG[5] = fra.me.REG[6];
482 goto label11;
483 } else {
484 /* ./mmloader.nit:65 */
485 fra.me.REG[6] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
486 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
487 if (UNTAG_Bool(REGB0)) {
488 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 65);
489 }
490 REGB0 = CALL_location___Location___line_start(fra.me.REG[6])(fra.me.REG[6]);
491 /* ./mmloader.nit:66 */
492 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
493 if (UNTAG_Bool(REGB1)) {
494 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 66);
495 }
496 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
497 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
498 if (UNTAG_Bool(REGB1)) {
499 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 66);
500 }
501 fra.me.REG[6] = CALL_location___SourceFile___line_starts(fra.me.REG[6])(fra.me.REG[6]);
502 REGB1 = TAG_Int(1);
503 /* ./../lib/standard//kernel.nit:237 */
504 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
505 /* ./../lib/standard//collection//array.nit:280 */
506 REGB2 = TAG_Int(0);
507 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
508 if (UNTAG_Bool(REGB3)) {
509 } else {
510 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
511 }
512 /* ./../lib/standard//kernel.nit:233 */
513 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
514 /* ./../lib/standard//collection//array.nit:280 */
515 if (UNTAG_Bool(REGB2)) {
516 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
517 if (UNTAG_Bool(REGB2)) {
518 } else {
519 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
520 }
521 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
522 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
523 if (UNTAG_Bool(REGB3)) {
524 } else {
525 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
526 }
527 /* ./../lib/standard//kernel.nit:232 */
528 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
529 } else {
530 /* ./../lib/standard//collection//array.nit:280 */
531 REGB3 = TAG_Bool(false);
532 REGB2 = REGB3;
533 }
534 if (UNTAG_Bool(REGB2)) {
535 } else {
536 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
537 }
538 /* ./../lib/standard//collection//array.nit:281 */
539 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
540 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
541 if (UNTAG_Bool(REGB2)) {
542 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
543 }
544 /* ./../lib/standard//collection//array.nit:718 */
545 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
546 /* ./../lib/standard//collection//array.nit:281 */
547 goto label17;
548 label17: while(0);
549 /* ./mmloader.nit:66 */
550 REGB1 = fra.me.REG[6];
551 /* ./mmloader.nit:67 */
552 REGB2 = REGB1;
553 /* ./mmloader.nit:68 */
554 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
555 if (UNTAG_Bool(REGB3)) {
556 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 68);
557 }
558 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
559 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
560 if (UNTAG_Bool(REGB3)) {
561 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 68);
562 }
563 fra.me.REG[6] = CALL_location___SourceFile___string(fra.me.REG[6])(fra.me.REG[6]);
564 /* ./mmloader.nit:69 */
565 while(1) {
566 REGB3 = TAG_Int(1);
567 /* ./../lib/standard//kernel.nit:235 */
568 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
569 /* ./../lib/standard//collection//array.nit:24 */
570 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
571 if (UNTAG_Bool(REGB4)) {
572 } else {
573 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
574 }
575 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
576 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
577 if (UNTAG_Bool(REGB5)) {
578 } else {
579 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
580 }
581 /* ./../lib/standard//kernel.nit:232 */
582 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
583 /* ./mmloader.nit:69 */
584 if (UNTAG_Bool(REGB4)) {
585 REGB4 = TAG_Int(1);
586 /* ./../lib/standard//kernel.nit:235 */
587 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
588 /* ./mmloader.nit:69 */
589 REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB4);
590 REGB3 = TAG_Char('\n');
591 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
592 if (UNTAG_Bool(REGB5)) {
593 } else {
594 /* ./../lib/standard//kernel.nit:378 */
595 REGB3 = TAG_Bool((REGB4)==(REGB3));
596 /* ./mmloader.nit:69 */
597 REGB5 = REGB3;
598 }
599 REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
600 } else {
601 REGB3 = TAG_Bool(false);
602 REGB5 = REGB3;
603 }
604 if (UNTAG_Bool(REGB5)) {
605 REGB5 = TAG_Int(1);
606 /* ./../lib/standard//kernel.nit:235 */
607 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
608 /* ./mmloader.nit:69 */
609 REGB5 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB5);
610 REGB3 = TAG_Char('\r');
611 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB3));
612 if (UNTAG_Bool(REGB4)) {
613 } else {
614 /* ./../lib/standard//kernel.nit:378 */
615 REGB3 = TAG_Bool((REGB5)==(REGB3));
616 /* ./mmloader.nit:69 */
617 REGB4 = REGB3;
618 }
619 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
620 } else {
621 REGB3 = TAG_Bool(false);
622 REGB4 = REGB3;
623 }
624 if (UNTAG_Bool(REGB4)) {
625 /* ./mmloader.nit:70 */
626 REGB4 = TAG_Int(1);
627 /* ./../lib/standard//kernel.nit:235 */
628 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
629 /* ./mmloader.nit:70 */
630 REGB2 = REGB4;
631 } else {
632 /* ./mmloader.nit:69 */
633 goto label18;
634 }
635 }
636 label18: while(0);
637 /* ./mmloader.nit:72 */
638 fra.me.REG[7] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
639 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
640 if (UNTAG_Bool(REGB4)) {
641 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 72);
642 }
643 REGB4 = CALL_location___Location___column_start(fra.me.REG[7])(fra.me.REG[7]);
644 REGB3 = TAG_Int(1);
645 /* ./../lib/standard//kernel.nit:237 */
646 REGB3 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB3));
647 /* ./mmloader.nit:72 */
648 fra.me.REG[7] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB1, REGB3);
649 /* ./mmloader.nit:74 */
650 fra.me.REG[8] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
651 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
652 if (UNTAG_Bool(REGB3)) {
653 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 74);
654 }
655 REGB3 = CALL_location___Location___line_end(fra.me.REG[8])(fra.me.REG[8]);
656 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
657 if (UNTAG_Bool(REGB4)) {
658 } else {
659 /* ./../lib/standard//kernel.nit:227 */
660 REGB3 = TAG_Bool((REGB0)==(REGB3));
661 /* ./mmloader.nit:74 */
662 REGB4 = REGB3;
663 }
664 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
665 if (UNTAG_Bool(REGB4)) {
666 /* ./../lib/standard//kernel.nit:237 */
667 REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
668 /* ./mmloader.nit:75 */
669 REGB3 = TAG_Int(1);
670 /* ./../lib/standard//kernel.nit:235 */
671 REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB3));
672 /* ./mmloader.nit:75 */
673 fra.me.REG[8] = REGB3;
674 } else {
675 /* ./mmloader.nit:77 */
676 fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
677 REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
678 if (UNTAG_Bool(REGB3)) {
679 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 77);
680 }
681 REGB3 = CALL_location___Location___column_end(fra.me.REG[9])(fra.me.REG[9]);
682 fra.me.REG[8] = REGB3;
683 }
684 /* ./mmloader.nit:79 */
685 fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
686 REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
687 if (UNTAG_Bool(REGB3)) {
688 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
689 }
690 REGB3 = CALL_location___Location___column_start(fra.me.REG[9])(fra.me.REG[9]);
691 /* ./../lib/standard//kernel.nit:235 */
692 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
693 /* ./mmloader.nit:79 */
694 REGB4 = TAG_Int(1);
695 /* ./../lib/standard//kernel.nit:237 */
696 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
697 /* ./mmloader.nit:79 */
698 fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
699 REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
700 if (UNTAG_Bool(REGB3)) {
701 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
702 }
703 REGB3 = CALL_location___Location___column_start(fra.me.REG[9])(fra.me.REG[9]);
704 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
705 if (UNTAG_Bool(REGB0)) {
706 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
707 }
708 /* ./../lib/standard//kernel.nit:237 */
709 REGB3 = TAG_Int(UNTAG_Int(fra.me.REG[8])-UNTAG_Int(REGB3));
710 /* ./mmloader.nit:79 */
711 REGB0 = TAG_Int(1);
712 /* ./../lib/standard//kernel.nit:235 */
713 REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
714 /* ./mmloader.nit:79 */
715 fra.me.REG[9] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB4, REGB0);
716 /* ./../lib/standard//kernel.nit:235 */
717 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(fra.me.REG[8]));
718 /* ./../lib/standard//kernel.nit:237 */
719 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
720 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[8]));
721 /* ./mmloader.nit:80 */
722 REGB4 = TAG_Int(1);
723 /* ./../lib/standard//kernel.nit:235 */
724 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
725 /* ./mmloader.nit:80 */
726 fra.me.REG[8] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB0, REGB4);
727 /* ./mmloader.nit:81 */
728 fra.me.REG[10] = NEW_Buffer_standard___string___Buffer___init();
729 /* ./mmloader.nit:82 */
730 fra.me.REG[11] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
731 REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
732 if (UNTAG_Bool(REGB4)) {
733 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 82);
734 }
735 REGB4 = CALL_location___Location___column_start(fra.me.REG[11])(fra.me.REG[11]);
736 /* ./../lib/standard//kernel.nit:235 */
737 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
738 /* ./mmloader.nit:82 */
739 REGB0 = TAG_Int(1);
740 /* ./../lib/standard//kernel.nit:237 */
741 REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0));
742 /* ./../lib/standard//kernel.nit:352 */
743 while(1) {
744 REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
745 if (UNTAG_Bool(REGB4)) {
746 } else {
747 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
748 }
749 /* ./../lib/standard//kernel.nit:232 */
750 REGB4 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
751 /* ./../lib/standard//kernel.nit:352 */
752 if (UNTAG_Bool(REGB4)) {
753 /* ./mmloader.nit:82 */
754 REGB4 = REGB1;
755 /* ./mmloader.nit:83 */
756 REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB4);
757 REGB2 = TAG_Char('\t');
758 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB2));
759 if (UNTAG_Bool(REGB3)) {
760 } else {
761 /* ./../lib/standard//kernel.nit:378 */
762 REGB2 = TAG_Bool((REGB4)==(REGB2));
763 /* ./mmloader.nit:83 */
764 REGB3 = REGB2;
765 }
766 if (UNTAG_Bool(REGB3)) {
767 /* ./mmloader.nit:84 */
768 REGB3 = TAG_Char('\t');
769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], REGB3);
770 } else {
771 /* ./mmloader.nit:86 */
772 REGB3 = TAG_Char(' ');
773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], REGB3);
774 }
775 /* ./../lib/standard//kernel.nit:354 */
776 REGB3 = TAG_Int(1);
777 /* ./../lib/standard//kernel.nit:235 */
778 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
779 /* ./../lib/standard//kernel.nit:354 */
780 REGB1 = REGB3;
781 } else {
782 /* ./../lib/standard//kernel.nit:352 */
783 goto label19;
784 }
785 }
786 label19: while(0);
787 /* ./mmloader.nit:89 */
788 REGB1 = TAG_Int(21);
789 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
790 if (!once_value_20) {
791 fra.me.REG[11] = BOX_NativeString("");
792 REGB1 = TAG_Int(0);
793 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB1);
794 once_value_20 = fra.me.REG[11];
795 register_static_object(&once_value_20);
796 } else fra.me.REG[11] = once_value_20;
797 fra.me.REG[11] = fra.me.REG[11];
798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
800 if (!once_value_21) {
801 fra.me.REG[2] = BOX_NativeString("");
802 REGB1 = TAG_Int(0);
803 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
804 once_value_21 = fra.me.REG[2];
805 register_static_object(&once_value_21);
806 } else fra.me.REG[2] = once_value_21;
807 fra.me.REG[2] = fra.me.REG[2];
808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
809 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
811 if (!once_value_22) {
812 fra.me.REG[4] = BOX_NativeString("");
813 REGB1 = TAG_Int(0);
814 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
815 once_value_22 = fra.me.REG[4];
816 register_static_object(&once_value_22);
817 } else fra.me.REG[4] = once_value_22;
818 fra.me.REG[4] = fra.me.REG[4];
819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
821 if (!once_value_23) {
822 fra.me.REG[4] = BOX_NativeString(": ");
823 REGB1 = TAG_Int(2);
824 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
825 once_value_23 = fra.me.REG[4];
826 register_static_object(&once_value_23);
827 } else fra.me.REG[4] = once_value_23;
828 fra.me.REG[4] = fra.me.REG[4];
829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
830 fra.me.REG[0] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
832 if (!once_value_24) {
833 fra.me.REG[0] = BOX_NativeString("\n\t");
834 REGB1 = TAG_Int(2);
835 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
836 once_value_24 = fra.me.REG[0];
837 register_static_object(&once_value_24);
838 } else fra.me.REG[0] = once_value_24;
839 fra.me.REG[0] = fra.me.REG[0];
840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
842 if (!once_value_25) {
843 fra.me.REG[7] = BOX_NativeString("");
844 REGB1 = TAG_Int(0);
845 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
846 once_value_25 = fra.me.REG[7];
847 register_static_object(&once_value_25);
848 } else fra.me.REG[7] = once_value_25;
849 fra.me.REG[7] = fra.me.REG[7];
850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
852 if (!once_value_26) {
853 fra.me.REG[1] = BOX_NativeString("");
854 REGB1 = TAG_Int(0);
855 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
856 once_value_26 = fra.me.REG[1];
857 register_static_object(&once_value_26);
858 } else fra.me.REG[1] = once_value_26;
859 fra.me.REG[1] = fra.me.REG[1];
860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
862 if (!once_value_27) {
863 fra.me.REG[9] = BOX_NativeString("");
864 REGB1 = TAG_Int(0);
865 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
866 once_value_27 = fra.me.REG[9];
867 register_static_object(&once_value_27);
868 } else fra.me.REG[9] = once_value_27;
869 fra.me.REG[9] = fra.me.REG[9];
870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
872 if (!once_value_28) {
873 fra.me.REG[3] = BOX_NativeString("");
874 REGB1 = TAG_Int(0);
875 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
876 once_value_28 = fra.me.REG[3];
877 register_static_object(&once_value_28);
878 } else fra.me.REG[3] = once_value_28;
879 fra.me.REG[3] = fra.me.REG[3];
880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
882 if (!once_value_29) {
883 fra.me.REG[8] = BOX_NativeString("\n\t");
884 REGB1 = TAG_Int(2);
885 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
886 once_value_29 = fra.me.REG[8];
887 register_static_object(&once_value_29);
888 } else fra.me.REG[8] = once_value_29;
889 fra.me.REG[8] = fra.me.REG[8];
890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
891 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
893 if (!once_value_30) {
894 fra.me.REG[10] = BOX_NativeString("^");
895 REGB1 = TAG_Int(1);
896 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
897 once_value_30 = fra.me.REG[10];
898 register_static_object(&once_value_30);
899 } else fra.me.REG[10] = once_value_30;
900 fra.me.REG[10] = fra.me.REG[10];
901 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
902 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
903 fra.me.REG[5] = fra.me.REG[6];
904 goto label11;
905 }
906 }
907 label11: while(0);
908 stack_frame_head = fra.me.prev;
909 return fra.me.REG[5];
910 }
911 void mmloader___Message___init(val_t p0, val_t p1, val_t p2, int* init_table){
912 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___Message].i;
913 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
914 val_t tmp;
915 if (init_table[itpos0]) return;
916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
917 fra.me.file = LOCATE_mmloader;
918 fra.me.line = 0;
919 fra.me.meth = LOCATE_mmloader___Message___init;
920 fra.me.has_broke = 0;
921 fra.me.REG_size = 3;
922 fra.me.REG[0] = NIT_NULL;
923 fra.me.REG[1] = NIT_NULL;
924 fra.me.REG[2] = NIT_NULL;
925 fra.me.REG[0] = p0;
926 fra.me.REG[1] = p1;
927 fra.me.REG[2] = p2;
928 ATTR_mmloader___Message____location(fra.me.REG[0]) = fra.me.REG[1];
929 ATTR_mmloader___Message____text(fra.me.REG[0]) = fra.me.REG[2];
930 stack_frame_head = fra.me.prev;
931 init_table[itpos0] = 1;
932 return;
933 }
934 val_t mmloader___ToolContext___error_count(val_t p0){
935 struct {struct stack_frame_t me;} fra;
936 val_t REGB0;
937 val_t tmp;
938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
939 fra.me.file = LOCATE_mmloader;
940 fra.me.line = 97;
941 fra.me.meth = LOCATE_mmloader___ToolContext___error_count;
942 fra.me.has_broke = 0;
943 fra.me.REG_size = 1;
944 fra.me.REG[0] = NIT_NULL;
945 fra.me.REG[0] = p0;
946 /* ./mmloader.nit:97 */
947 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
948 if (UNTAG_Bool(REGB0)) {
949 } else {
950 nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 97);
951 }
952 REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
953 stack_frame_head = fra.me.prev;
954 return REGB0;
955 }
956 val_t mmloader___ToolContext___warning_count(val_t p0){
957 struct {struct stack_frame_t me;} fra;
958 val_t REGB0;
959 val_t tmp;
960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
961 fra.me.file = LOCATE_mmloader;
962 fra.me.line = 100;
963 fra.me.meth = LOCATE_mmloader___ToolContext___warning_count;
964 fra.me.has_broke = 0;
965 fra.me.REG_size = 1;
966 fra.me.REG[0] = NIT_NULL;
967 fra.me.REG[0] = p0;
968 /* ./mmloader.nit:100 */
969 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
970 if (UNTAG_Bool(REGB0)) {
971 } else {
972 nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 100);
973 }
974 REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
975 stack_frame_head = fra.me.prev;
976 return REGB0;
977 }
978 val_t mmloader___ToolContext___log_directory(val_t p0){
979 struct {struct stack_frame_t me;} fra;
980 val_t REGB0;
981 val_t tmp;
982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
983 fra.me.file = LOCATE_mmloader;
984 fra.me.line = 103;
985 fra.me.meth = LOCATE_mmloader___ToolContext___log_directory;
986 fra.me.has_broke = 0;
987 fra.me.REG_size = 1;
988 fra.me.REG[0] = NIT_NULL;
989 fra.me.REG[0] = p0;
990 /* ./mmloader.nit:103 */
991 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
992 if (UNTAG_Bool(REGB0)) {
993 } else {
994 nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_mmloader, 103);
995 }
996 fra.me.REG[0] = ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]);
997 stack_frame_head = fra.me.prev;
998 return fra.me.REG[0];
999 }
1000 void mmloader___ToolContext___check_errors(val_t p0){
1001 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1002 val_t REGB0;
1003 val_t REGB1;
1004 val_t REGB2;
1005 val_t tmp;
1006 static val_t once_value_1; /* Once value */
1007 static val_t once_value_2; /* Once value */
1008 static val_t once_value_3; /* Once value */
1009 static val_t once_value_4; /* Once value */
1010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1011 fra.me.file = LOCATE_mmloader;
1012 fra.me.line = 110;
1013 fra.me.meth = LOCATE_mmloader___ToolContext___check_errors;
1014 fra.me.has_broke = 0;
1015 fra.me.REG_size = 7;
1016 fra.me.REG[0] = NIT_NULL;
1017 fra.me.REG[1] = NIT_NULL;
1018 fra.me.REG[2] = NIT_NULL;
1019 fra.me.REG[3] = NIT_NULL;
1020 fra.me.REG[4] = NIT_NULL;
1021 fra.me.REG[5] = NIT_NULL;
1022 fra.me.REG[6] = NIT_NULL;
1023 fra.me.REG[0] = p0;
1024 /* ./mmloader.nit:112 */
1025 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1026 if (UNTAG_Bool(REGB0)) {
1027 } else {
1028 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 112);
1029 }
1030 fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1031 /* ./../lib/standard//collection//array.nit:24 */
1032 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1033 if (UNTAG_Bool(REGB0)) {
1034 } else {
1035 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1036 }
1037 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1038 /* ./mmloader.nit:112 */
1039 REGB1 = TAG_Int(0);
1040 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1041 if (UNTAG_Bool(REGB2)) {
1042 } else {
1043 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1044 }
1045 /* ./../lib/standard//kernel.nit:234 */
1046 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1047 /* ./mmloader.nit:112 */
1048 if (UNTAG_Bool(REGB1)) {
1049 /* ./mmloader.nit:113 */
1050 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
1051 if (UNTAG_Bool(REGB1)) {
1052 } else {
1053 nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_mmloader, 113);
1054 }
1055 fra.me.REG[1] = ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]);
1056 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1057 if (UNTAG_Bool(REGB1)) {
1058 } else {
1059 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 113);
1060 }
1061 fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1062 CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1063 /* ./mmloader.nit:115 */
1064 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1065 if (UNTAG_Bool(REGB1)) {
1066 } else {
1067 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 115);
1068 }
1069 fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1070 /* ./../lib/standard//collection//array.nit:269 */
1071 REGB1 = TAG_Int(0);
1072 /* ./../lib/standard//collection//array.nit:270 */
1073 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1074 if (UNTAG_Bool(REGB0)) {
1075 } else {
1076 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1077 }
1078 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1079 /* ./../lib/standard//collection//array.nit:271 */
1080 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1081 /* ./../lib/standard//collection//array.nit:272 */
1082 while(1) {
1083 /* ./../lib/standard//collection//array.nit:24 */
1084 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1085 if (UNTAG_Bool(REGB0)) {
1086 } else {
1087 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1088 }
1089 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1090 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1091 if (UNTAG_Bool(REGB2)) {
1092 } else {
1093 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1094 }
1095 /* ./../lib/standard//kernel.nit:232 */
1096 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1097 /* ./../lib/standard//collection//array.nit:272 */
1098 if (UNTAG_Bool(REGB0)) {
1099 /* ./../lib/standard//collection//array.nit:273 */
1100 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1101 if (UNTAG_Bool(REGB0)) {
1102 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1103 }
1104 /* ./../lib/standard//collection//array.nit:718 */
1105 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
1106 /* ./mmloader.nit:116 */
1107 fra.me.REG[4] = CALL_mmloader___ToolContext___opt_no_color(fra.me.REG[0])(fra.me.REG[0]);
1108 fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
1109 if (UNTAG_Bool(fra.me.REG[4])) {
1110 /* ./mmloader.nit:117 */
1111 fra.me.REG[4] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
1112 REGB0 = TAG_Int(3);
1113 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1114 if (!once_value_1) {
1115 fra.me.REG[6] = BOX_NativeString("");
1116 REGB0 = TAG_Int(0);
1117 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1118 once_value_1 = fra.me.REG[6];
1119 register_static_object(&once_value_1);
1120 } else fra.me.REG[6] = once_value_1;
1121 fra.me.REG[6] = fra.me.REG[6];
1122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1123 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1125 if (!once_value_2) {
1126 fra.me.REG[6] = BOX_NativeString("\n");
1127 REGB0 = TAG_Int(1);
1128 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1129 once_value_2 = fra.me.REG[6];
1130 register_static_object(&once_value_2);
1131 } else fra.me.REG[6] = once_value_2;
1132 fra.me.REG[6] = fra.me.REG[6];
1133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1134 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1135 CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1136 } else {
1137 /* ./mmloader.nit:119 */
1138 fra.me.REG[5] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
1139 REGB0 = TAG_Int(3);
1140 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1141 if (!once_value_3) {
1142 fra.me.REG[6] = BOX_NativeString("");
1143 REGB0 = TAG_Int(0);
1144 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1145 once_value_3 = fra.me.REG[6];
1146 register_static_object(&once_value_3);
1147 } else fra.me.REG[6] = once_value_3;
1148 fra.me.REG[6] = fra.me.REG[6];
1149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
1150 fra.me.REG[3] = CALL_mmloader___Message___to_color_string(fra.me.REG[3])(fra.me.REG[3]);
1151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1152 if (!once_value_4) {
1153 fra.me.REG[3] = BOX_NativeString("\n");
1154 REGB0 = TAG_Int(1);
1155 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1156 once_value_4 = fra.me.REG[3];
1157 register_static_object(&once_value_4);
1158 } else fra.me.REG[3] = once_value_4;
1159 fra.me.REG[3] = fra.me.REG[3];
1160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1161 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1162 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
1163 }
1164 /* ./../lib/standard//collection//array.nit:274 */
1165 REGB0 = TAG_Int(1);
1166 /* ./../lib/standard//kernel.nit:235 */
1167 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1168 /* ./../lib/standard//collection//array.nit:274 */
1169 REGB1 = REGB0;
1170 } else {
1171 /* ./../lib/standard//collection//array.nit:272 */
1172 goto label5;
1173 }
1174 }
1175 label5: while(0);
1176 /* ./mmloader.nit:123 */
1177 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1178 if (UNTAG_Bool(REGB1)) {
1179 } else {
1180 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 123);
1181 }
1182 fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1183 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
1184 }
1185 /* ./mmloader.nit:126 */
1186 REGB1 = CALL_mmloader___ToolContext___error_count(fra.me.REG[0])(fra.me.REG[0]);
1187 REGB0 = TAG_Int(0);
1188 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1189 if (UNTAG_Bool(REGB2)) {
1190 } else {
1191 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1192 }
1193 /* ./../lib/standard//kernel.nit:234 */
1194 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1195 /* ./mmloader.nit:126 */
1196 if (UNTAG_Bool(REGB0)) {
1197 REGB0 = TAG_Int(1);
1198 CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
1199 }
1200 stack_frame_head = fra.me.prev;
1201 return;
1202 }
1203 void mmloader___ToolContext___error(val_t p0, val_t p1, val_t p2){
1204 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1205 val_t REGB0;
1206 val_t REGB1;
1207 val_t tmp;
1208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1209 fra.me.file = LOCATE_mmloader;
1210 fra.me.line = 129;
1211 fra.me.meth = LOCATE_mmloader___ToolContext___error;
1212 fra.me.has_broke = 0;
1213 fra.me.REG_size = 4;
1214 fra.me.REG[0] = NIT_NULL;
1215 fra.me.REG[1] = NIT_NULL;
1216 fra.me.REG[2] = NIT_NULL;
1217 fra.me.REG[3] = NIT_NULL;
1218 fra.me.REG[0] = p0;
1219 fra.me.REG[1] = p1;
1220 fra.me.REG[2] = p2;
1221 /* ./mmloader.nit:132 */
1222 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1223 if (UNTAG_Bool(REGB0)) {
1224 } else {
1225 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 132);
1226 }
1227 fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1228 fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
1229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1230 /* ./mmloader.nit:133 */
1231 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
1232 if (UNTAG_Bool(REGB0)) {
1233 } else {
1234 nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 133);
1235 }
1236 REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
1237 REGB1 = TAG_Int(1);
1238 /* ./../lib/standard//kernel.nit:235 */
1239 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1240 /* ./mmloader.nit:133 */
1241 ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB1;
1242 /* ./mmloader.nit:134 */
1243 fra.me.REG[2] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
1244 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
1245 if (UNTAG_Bool(fra.me.REG[2])) {
1246 CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
1247 }
1248 stack_frame_head = fra.me.prev;
1249 return;
1250 }
1251 void mmloader___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2){
1252 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1253 val_t tmp;
1254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1255 fra.me.file = LOCATE_mmloader;
1256 fra.me.line = 137;
1257 fra.me.meth = LOCATE_mmloader___ToolContext___fatal_error;
1258 fra.me.has_broke = 0;
1259 fra.me.REG_size = 3;
1260 fra.me.REG[0] = NIT_NULL;
1261 fra.me.REG[1] = NIT_NULL;
1262 fra.me.REG[2] = NIT_NULL;
1263 fra.me.REG[0] = p0;
1264 fra.me.REG[1] = p1;
1265 fra.me.REG[2] = p2;
1266 /* ./mmloader.nit:140 */
1267 CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1268 /* ./mmloader.nit:141 */
1269 CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
1270 stack_frame_head = fra.me.prev;
1271 return;
1272 }
1273 void mmloader___ToolContext___warning(val_t p0, val_t p1, val_t p2){
1274 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1275 val_t REGB0;
1276 val_t REGB1;
1277 val_t REGB2;
1278 val_t tmp;
1279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1280 fra.me.file = LOCATE_mmloader;
1281 fra.me.line = 144;
1282 fra.me.meth = LOCATE_mmloader___ToolContext___warning;
1283 fra.me.has_broke = 0;
1284 fra.me.REG_size = 4;
1285 fra.me.REG[0] = NIT_NULL;
1286 fra.me.REG[1] = NIT_NULL;
1287 fra.me.REG[2] = NIT_NULL;
1288 fra.me.REG[3] = NIT_NULL;
1289 fra.me.REG[0] = p0;
1290 fra.me.REG[1] = p1;
1291 fra.me.REG[2] = p2;
1292 /* ./mmloader.nit:147 */
1293 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
1294 if (UNTAG_Bool(REGB0)) {
1295 } else {
1296 nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 147);
1297 }
1298 fra.me.REG[3] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
1299 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
1300 REGB0 = TAG_Int(0);
1301 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[3]));
1302 if (UNTAG_Bool(REGB1)) {
1303 } else {
1304 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1305 if (UNTAG_Bool(REGB2)) {
1306 REGB2 = TAG_Bool(false);
1307 REGB1 = REGB2;
1308 } else {
1309 /* ./../lib/standard//kernel.nit:227 */
1310 REGB0 = TAG_Bool((fra.me.REG[3])==(REGB0));
1311 /* ./mmloader.nit:147 */
1312 REGB1 = REGB0;
1313 }
1314 }
1315 if (UNTAG_Bool(REGB1)) {
1316 goto label1;
1317 }
1318 /* ./mmloader.nit:148 */
1319 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
1320 if (UNTAG_Bool(REGB1)) {
1321 } else {
1322 nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 148);
1323 }
1324 fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
1325 fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
1326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1327 /* ./mmloader.nit:149 */
1328 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
1329 if (UNTAG_Bool(REGB1)) {
1330 } else {
1331 nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 149);
1332 }
1333 fra.me.REG[2] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
1334 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
1335 REGB1 = TAG_Int(1);
1336 REGB0 = TAG_Bool(IS_EQUAL_ON(REGB1,fra.me.REG[2]));
1337 if (UNTAG_Bool(REGB0)) {
1338 } else {
1339 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1340 if (UNTAG_Bool(REGB2)) {
1341 REGB2 = TAG_Bool(false);
1342 REGB0 = REGB2;
1343 } else {
1344 /* ./../lib/standard//kernel.nit:227 */
1345 REGB1 = TAG_Bool((fra.me.REG[2])==(REGB1));
1346 /* ./mmloader.nit:149 */
1347 REGB0 = REGB1;
1348 }
1349 }
1350 if (UNTAG_Bool(REGB0)) {
1351 /* ./mmloader.nit:150 */
1352 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
1353 if (UNTAG_Bool(REGB0)) {
1354 } else {
1355 nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 150);
1356 }
1357 REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
1358 REGB1 = TAG_Int(1);
1359 /* ./../lib/standard//kernel.nit:235 */
1360 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1361 /* ./mmloader.nit:150 */
1362 ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB1;
1363 } else {
1364 /* ./mmloader.nit:152 */
1365 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
1366 if (UNTAG_Bool(REGB1)) {
1367 } else {
1368 nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 152);
1369 }
1370 REGB1 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
1371 REGB0 = TAG_Int(1);
1372 /* ./../lib/standard//kernel.nit:235 */
1373 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1374 /* ./mmloader.nit:152 */
1375 ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
1376 }
1377 /* ./mmloader.nit:154 */
1378 fra.me.REG[2] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
1379 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
1380 if (UNTAG_Bool(fra.me.REG[2])) {
1381 CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
1382 }
1383 label1: while(0);
1384 stack_frame_head = fra.me.prev;
1385 return;
1386 }
1387 void mmloader___ToolContext___info(val_t p0, val_t p1, val_t p2){
1388 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1389 val_t REGB0;
1390 val_t REGB1;
1391 val_t REGB2;
1392 val_t tmp;
1393 static val_t once_value_1; /* Once value */
1394 static val_t once_value_2; /* Once value */
1395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1396 fra.me.file = LOCATE_mmloader;
1397 fra.me.line = 157;
1398 fra.me.meth = LOCATE_mmloader___ToolContext___info;
1399 fra.me.has_broke = 0;
1400 fra.me.REG_size = 4;
1401 fra.me.REG[0] = NIT_NULL;
1402 fra.me.REG[1] = NIT_NULL;
1403 fra.me.REG[2] = NIT_NULL;
1404 fra.me.REG[3] = NIT_NULL;
1405 fra.me.REG[0] = p0;
1406 fra.me.REG[1] = p1;
1407 REGB0 = p2;
1408 /* ./mmloader.nit:160 */
1409 REGB1 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[0])(fra.me.REG[0]);
1410 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1411 if (UNTAG_Bool(REGB2)) {
1412 } else {
1413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1414 }
1415 /* ./../lib/standard//kernel.nit:231 */
1416 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1417 /* ./mmloader.nit:160 */
1418 if (UNTAG_Bool(REGB1)) {
1419 /* ./mmloader.nit:161 */
1420 REGB1 = TAG_Int(3);
1421 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1422 if (!once_value_1) {
1423 fra.me.REG[3] = BOX_NativeString("");
1424 REGB1 = TAG_Int(0);
1425 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1426 once_value_1 = fra.me.REG[3];
1427 register_static_object(&once_value_1);
1428 } else fra.me.REG[3] = once_value_1;
1429 fra.me.REG[3] = fra.me.REG[3];
1430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1432 if (!once_value_2) {
1433 fra.me.REG[1] = BOX_NativeString("");
1434 REGB1 = TAG_Int(0);
1435 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
1436 once_value_2 = fra.me.REG[1];
1437 register_static_object(&once_value_2);
1438 } else fra.me.REG[1] = once_value_2;
1439 fra.me.REG[1] = fra.me.REG[1];
1440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1441 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1442 CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1443 }
1444 stack_frame_head = fra.me.prev;
1445 return;
1446 }
1447 val_t mmloader___ToolContext___paths(val_t p0){
1448 struct {struct stack_frame_t me;} fra;
1449 val_t REGB0;
1450 val_t tmp;
1451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1452 fra.me.file = LOCATE_mmloader;
1453 fra.me.line = 165;
1454 fra.me.meth = LOCATE_mmloader___ToolContext___paths;
1455 fra.me.has_broke = 0;
1456 fra.me.REG_size = 1;
1457 fra.me.REG[0] = NIT_NULL;
1458 fra.me.REG[0] = p0;
1459 /* ./mmloader.nit:165 */
1460 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
1461 if (UNTAG_Bool(REGB0)) {
1462 } else {
1463 nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader, 165);
1464 }
1465 fra.me.REG[0] = ATTR_mmloader___ToolContext____paths(fra.me.REG[0]);
1466 stack_frame_head = fra.me.prev;
1467 return fra.me.REG[0];
1468 }
1469 val_t mmloader___ToolContext___option_context(val_t p0){
1470 struct {struct stack_frame_t me;} fra;
1471 val_t REGB0;
1472 val_t tmp;
1473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1474 fra.me.file = LOCATE_mmloader;
1475 fra.me.line = 171;
1476 fra.me.meth = LOCATE_mmloader___ToolContext___option_context;
1477 fra.me.has_broke = 0;
1478 fra.me.REG_size = 1;
1479 fra.me.REG[0] = NIT_NULL;
1480 fra.me.REG[0] = p0;
1481 /* ./mmloader.nit:171 */
1482 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
1483 if (UNTAG_Bool(REGB0)) {
1484 } else {
1485 nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_mmloader, 171);
1486 }
1487 fra.me.REG[0] = ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]);
1488 stack_frame_head = fra.me.prev;
1489 return fra.me.REG[0];
1490 }
1491 val_t mmloader___ToolContext___opt_warn(val_t p0){
1492 struct {struct stack_frame_t me;} fra;
1493 val_t REGB0;
1494 val_t tmp;
1495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1496 fra.me.file = LOCATE_mmloader;
1497 fra.me.line = 174;
1498 fra.me.meth = LOCATE_mmloader___ToolContext___opt_warn;
1499 fra.me.has_broke = 0;
1500 fra.me.REG_size = 1;
1501 fra.me.REG[0] = NIT_NULL;
1502 fra.me.REG[0] = p0;
1503 /* ./mmloader.nit:174 */
1504 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
1505 if (UNTAG_Bool(REGB0)) {
1506 } else {
1507 nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 174);
1508 }
1509 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
1510 stack_frame_head = fra.me.prev;
1511 return fra.me.REG[0];
1512 }
1513 val_t mmloader___ToolContext___opt_path(val_t p0){
1514 struct {struct stack_frame_t me;} fra;
1515 val_t REGB0;
1516 val_t tmp;
1517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1518 fra.me.file = LOCATE_mmloader;
1519 fra.me.line = 177;
1520 fra.me.meth = LOCATE_mmloader___ToolContext___opt_path;
1521 fra.me.has_broke = 0;
1522 fra.me.REG_size = 1;
1523 fra.me.REG[0] = NIT_NULL;
1524 fra.me.REG[0] = p0;
1525 /* ./mmloader.nit:177 */
1526 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
1527 if (UNTAG_Bool(REGB0)) {
1528 } else {
1529 nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader, 177);
1530 }
1531 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]);
1532 stack_frame_head = fra.me.prev;
1533 return fra.me.REG[0];
1534 }
1535 val_t mmloader___ToolContext___opt_log(val_t p0){
1536 struct {struct stack_frame_t me;} fra;
1537 val_t REGB0;
1538 val_t tmp;
1539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1540 fra.me.file = LOCATE_mmloader;
1541 fra.me.line = 180;
1542 fra.me.meth = LOCATE_mmloader___ToolContext___opt_log;
1543 fra.me.has_broke = 0;
1544 fra.me.REG_size = 1;
1545 fra.me.REG[0] = NIT_NULL;
1546 fra.me.REG[0] = p0;
1547 /* ./mmloader.nit:180 */
1548 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
1549 if (UNTAG_Bool(REGB0)) {
1550 } else {
1551 nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 180);
1552 }
1553 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]);
1554 stack_frame_head = fra.me.prev;
1555 return fra.me.REG[0];
1556 }
1557 val_t mmloader___ToolContext___opt_log_dir(val_t p0){
1558 struct {struct stack_frame_t me;} fra;
1559 val_t REGB0;
1560 val_t tmp;
1561 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1562 fra.me.file = LOCATE_mmloader;
1563 fra.me.line = 183;
1564 fra.me.meth = LOCATE_mmloader___ToolContext___opt_log_dir;
1565 fra.me.has_broke = 0;
1566 fra.me.REG_size = 1;
1567 fra.me.REG[0] = NIT_NULL;
1568 fra.me.REG[0] = p0;
1569 /* ./mmloader.nit:183 */
1570 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
1571 if (UNTAG_Bool(REGB0)) {
1572 } else {
1573 nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_mmloader, 183);
1574 }
1575 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]);
1576 stack_frame_head = fra.me.prev;
1577 return fra.me.REG[0];
1578 }
1579 val_t mmloader___ToolContext___opt_only_metamodel(val_t p0){
1580 struct {struct stack_frame_t me;} fra;
1581 val_t REGB0;
1582 val_t tmp;
1583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1584 fra.me.file = LOCATE_mmloader;
1585 fra.me.line = 186;
1586 fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_metamodel;
1587 fra.me.has_broke = 0;
1588 fra.me.REG_size = 1;
1589 fra.me.REG[0] = NIT_NULL;
1590 fra.me.REG[0] = p0;
1591 /* ./mmloader.nit:186 */
1592 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
1593 if (UNTAG_Bool(REGB0)) {
1594 } else {
1595 nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader, 186);
1596 }
1597 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]);
1598 stack_frame_head = fra.me.prev;
1599 return fra.me.REG[0];
1600 }
1601 val_t mmloader___ToolContext___opt_only_parse(val_t p0){
1602 struct {struct stack_frame_t me;} fra;
1603 val_t REGB0;
1604 val_t tmp;
1605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1606 fra.me.file = LOCATE_mmloader;
1607 fra.me.line = 189;
1608 fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_parse;
1609 fra.me.has_broke = 0;
1610 fra.me.REG_size = 1;
1611 fra.me.REG[0] = NIT_NULL;
1612 fra.me.REG[0] = p0;
1613 /* ./mmloader.nit:189 */
1614 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
1615 if (UNTAG_Bool(REGB0)) {
1616 } else {
1617 nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader, 189);
1618 }
1619 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]);
1620 stack_frame_head = fra.me.prev;
1621 return fra.me.REG[0];
1622 }
1623 val_t mmloader___ToolContext___opt_help(val_t p0){
1624 struct {struct stack_frame_t me;} fra;
1625 val_t REGB0;
1626 val_t tmp;
1627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1628 fra.me.file = LOCATE_mmloader;
1629 fra.me.line = 192;
1630 fra.me.meth = LOCATE_mmloader___ToolContext___opt_help;
1631 fra.me.has_broke = 0;
1632 fra.me.REG_size = 1;
1633 fra.me.REG[0] = NIT_NULL;
1634 fra.me.REG[0] = p0;
1635 /* ./mmloader.nit:192 */
1636 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
1637 if (UNTAG_Bool(REGB0)) {
1638 } else {
1639 nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_mmloader, 192);
1640 }
1641 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]);
1642 stack_frame_head = fra.me.prev;
1643 return fra.me.REG[0];
1644 }
1645 val_t mmloader___ToolContext___opt_version(val_t p0){
1646 struct {struct stack_frame_t me;} fra;
1647 val_t REGB0;
1648 val_t tmp;
1649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1650 fra.me.file = LOCATE_mmloader;
1651 fra.me.line = 195;
1652 fra.me.meth = LOCATE_mmloader___ToolContext___opt_version;
1653 fra.me.has_broke = 0;
1654 fra.me.REG_size = 1;
1655 fra.me.REG[0] = NIT_NULL;
1656 fra.me.REG[0] = p0;
1657 /* ./mmloader.nit:195 */
1658 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
1659 if (UNTAG_Bool(REGB0)) {
1660 } else {
1661 nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_mmloader, 195);
1662 }
1663 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]);
1664 stack_frame_head = fra.me.prev;
1665 return fra.me.REG[0];
1666 }
1667 val_t mmloader___ToolContext___opt_verbose(val_t p0){
1668 struct {struct stack_frame_t me;} fra;
1669 val_t REGB0;
1670 val_t tmp;
1671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1672 fra.me.file = LOCATE_mmloader;
1673 fra.me.line = 198;
1674 fra.me.meth = LOCATE_mmloader___ToolContext___opt_verbose;
1675 fra.me.has_broke = 0;
1676 fra.me.REG_size = 1;
1677 fra.me.REG[0] = NIT_NULL;
1678 fra.me.REG[0] = p0;
1679 /* ./mmloader.nit:198 */
1680 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
1681 if (UNTAG_Bool(REGB0)) {
1682 } else {
1683 nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_mmloader, 198);
1684 }
1685 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]);
1686 stack_frame_head = fra.me.prev;
1687 return fra.me.REG[0];
1688 }
1689 val_t mmloader___ToolContext___opt_stop_on_first_error(val_t p0){
1690 struct {struct stack_frame_t me;} fra;
1691 val_t REGB0;
1692 val_t tmp;
1693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1694 fra.me.file = LOCATE_mmloader;
1695 fra.me.line = 201;
1696 fra.me.meth = LOCATE_mmloader___ToolContext___opt_stop_on_first_error;
1697 fra.me.has_broke = 0;
1698 fra.me.REG_size = 1;
1699 fra.me.REG[0] = NIT_NULL;
1700 fra.me.REG[0] = p0;
1701 /* ./mmloader.nit:201 */
1702 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
1703 if (UNTAG_Bool(REGB0)) {
1704 } else {
1705 nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_mmloader, 201);
1706 }
1707 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0]);
1708 stack_frame_head = fra.me.prev;
1709 return fra.me.REG[0];
1710 }
1711 val_t mmloader___ToolContext___opt_no_color(val_t p0){
1712 struct {struct stack_frame_t me;} fra;
1713 val_t REGB0;
1714 val_t tmp;
1715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1716 fra.me.file = LOCATE_mmloader;
1717 fra.me.line = 204;
1718 fra.me.meth = LOCATE_mmloader___ToolContext___opt_no_color;
1719 fra.me.has_broke = 0;
1720 fra.me.REG_size = 1;
1721 fra.me.REG[0] = NIT_NULL;
1722 fra.me.REG[0] = p0;
1723 /* ./mmloader.nit:204 */
1724 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
1725 if (UNTAG_Bool(REGB0)) {
1726 } else {
1727 nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_mmloader, 204);
1728 }
1729 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0]);
1730 stack_frame_head = fra.me.prev;
1731 return fra.me.REG[0];
1732 }
1733 val_t mmloader___ToolContext___verbose_level(val_t p0){
1734 struct {struct stack_frame_t me;} fra;
1735 val_t REGB0;
1736 val_t tmp;
1737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1738 fra.me.file = LOCATE_mmloader;
1739 fra.me.line = 207;
1740 fra.me.meth = LOCATE_mmloader___ToolContext___verbose_level;
1741 fra.me.has_broke = 0;
1742 fra.me.REG_size = 1;
1743 fra.me.REG[0] = NIT_NULL;
1744 fra.me.REG[0] = p0;
1745 /* ./mmloader.nit:207 */
1746 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
1747 if (UNTAG_Bool(REGB0)) {
1748 } else {
1749 nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_mmloader, 207);
1750 }
1751 REGB0 = ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]);
1752 stack_frame_head = fra.me.prev;
1753 return REGB0;
1754 }
1755 void mmloader___ToolContext___init(val_t p0, int* init_table){
1756 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___ToolContext].i;
1757 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1758 val_t REGB0;
1759 val_t tmp;
1760 if (init_table[itpos1]) return;
1761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1762 fra.me.file = LOCATE_mmloader;
1763 fra.me.line = 210;
1764 fra.me.meth = LOCATE_mmloader___ToolContext___init;
1765 fra.me.has_broke = 0;
1766 fra.me.REG_size = 4;
1767 fra.me.REG[0] = NIT_NULL;
1768 fra.me.REG[1] = NIT_NULL;
1769 fra.me.REG[2] = NIT_NULL;
1770 fra.me.REG[3] = NIT_NULL;
1771 fra.me.REG[0] = p0;
1772 /* ./mmloader.nit:210 */
1773 fra.me.REG[1] = fra.me.REG[0];
1774 /* ./mmloader.nit:212 */
1775 CALL_metamodel___abstractmetamodel___MMContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1776 /* ./mmloader.nit:213 */
1777 fra.me.REG[0] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
1778 REGB0 = TAG_Int(10);
1779 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1780 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]);
1781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1782 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[1])(fra.me.REG[1]);
1783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1784 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_no_color(fra.me.REG[1])(fra.me.REG[1]);
1785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1786 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]);
1787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1788 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]);
1789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1790 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
1791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1792 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
1793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1794 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[1])(fra.me.REG[1]);
1795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1796 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[1])(fra.me.REG[1]);
1797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1798 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[1])(fra.me.REG[1]);
1799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1800 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
1801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1802 CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1803 stack_frame_head = fra.me.prev;
1804 init_table[itpos1] = 1;
1805 return;
1806 }
1807 void mmloader___ToolContext___process_options(val_t p0){
1808 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1809 val_t REGB0;
1810 val_t REGB1;
1811 val_t tmp;
1812 static val_t once_value_1; /* Once value */
1813 static val_t once_value_2; /* Once value */
1814 static val_t once_value_3; /* Once value */
1815 static val_t once_value_4; /* Once value */
1816 static val_t once_value_5; /* Once value */
1817 static val_t once_value_6; /* Once value */
1818 static val_t once_value_7; /* Once value */
1819 static val_t once_value_8; /* Once value */
1820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1821 fra.me.file = LOCATE_mmloader;
1822 fra.me.line = 216;
1823 fra.me.meth = LOCATE_mmloader___ToolContext___process_options;
1824 fra.me.has_broke = 0;
1825 fra.me.REG_size = 5;
1826 fra.me.REG[0] = NIT_NULL;
1827 fra.me.REG[1] = NIT_NULL;
1828 fra.me.REG[2] = NIT_NULL;
1829 fra.me.REG[3] = NIT_NULL;
1830 fra.me.REG[4] = NIT_NULL;
1831 fra.me.REG[0] = p0;
1832 /* ./mmloader.nit:216 */
1833 fra.me.REG[1] = fra.me.REG[0];
1834 /* ./mmloader.nit:220 */
1835 fra.me.REG[2] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
1836 fra.me.REG[3] = CALL_standard___string___Object___args(fra.me.REG[1])(fra.me.REG[1]);
1837 CALL_opts___OptionContext___parse(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1838 /* ./mmloader.nit:223 */
1839 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
1840 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
1841 ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[1]) = fra.me.REG[3];
1842 /* ./mmloader.nit:226 */
1843 fra.me.REG[3] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
1844 fra.me.REG[2] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]);
1845 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
1846 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1847 /* ./mmloader.nit:228 */
1848 if (!once_value_1) {
1849 if (!once_value_2) {
1850 fra.me.REG[2] = BOX_NativeString("NIT_PATH");
1851 REGB0 = TAG_Int(8);
1852 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1853 once_value_2 = fra.me.REG[2];
1854 register_static_object(&once_value_2);
1855 } else fra.me.REG[2] = once_value_2;
1856 fra.me.REG[2] = fra.me.REG[2];
1857 fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
1858 fra.me.REG[2] = CALL_standard___environ___Symbol___environ(fra.me.REG[2])(fra.me.REG[2]);
1859 once_value_1 = fra.me.REG[2];
1860 register_static_object(&once_value_1);
1861 } else fra.me.REG[2] = once_value_1;
1862 fra.me.REG[2] = fra.me.REG[2];
1863 /* ./mmloader.nit:229 */
1864 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
1865 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1866 if (UNTAG_Bool(REGB0)) {
1867 /* ./mmloader.nit:230 */
1868 fra.me.REG[3] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
1869 REGB0 = TAG_Char(':');
1870 fra.me.REG[4] = CALL_standard___string_search___String___split_with(fra.me.REG[2])(fra.me.REG[2], REGB0);
1871 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1872 }
1873 /* ./mmloader.nit:233 */
1874 if (!once_value_3) {
1875 if (!once_value_4) {
1876 fra.me.REG[4] = BOX_NativeString("NIT_DIR");
1877 REGB0 = TAG_Int(7);
1878 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1879 once_value_4 = fra.me.REG[4];
1880 register_static_object(&once_value_4);
1881 } else fra.me.REG[4] = once_value_4;
1882 fra.me.REG[4] = fra.me.REG[4];
1883 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1884 fra.me.REG[4] = CALL_standard___environ___Symbol___environ(fra.me.REG[4])(fra.me.REG[4]);
1885 once_value_3 = fra.me.REG[4];
1886 register_static_object(&once_value_3);
1887 } else fra.me.REG[4] = once_value_3;
1888 fra.me.REG[4] = fra.me.REG[4];
1889 fra.me.REG[2] = fra.me.REG[4];
1890 /* ./mmloader.nit:234 */
1891 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
1892 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1893 if (UNTAG_Bool(REGB0)) {
1894 /* ./mmloader.nit:235 */
1895 REGB0 = TAG_Int(3);
1896 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1897 if (!once_value_5) {
1898 fra.me.REG[3] = BOX_NativeString("");
1899 REGB0 = TAG_Int(0);
1900 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1901 once_value_5 = fra.me.REG[3];
1902 register_static_object(&once_value_5);
1903 } else fra.me.REG[3] = once_value_5;
1904 fra.me.REG[3] = fra.me.REG[3];
1905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1907 if (!once_value_6) {
1908 fra.me.REG[2] = BOX_NativeString("/lib");
1909 REGB0 = TAG_Int(4);
1910 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1911 once_value_6 = fra.me.REG[2];
1912 register_static_object(&once_value_6);
1913 } else fra.me.REG[2] = once_value_6;
1914 fra.me.REG[2] = fra.me.REG[2];
1915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1916 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1917 /* ./mmloader.nit:236 */
1918 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[4])(fra.me.REG[4]);
1919 if (UNTAG_Bool(REGB0)) {
1920 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
1921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1922 }
1923 }
1924 /* ./mmloader.nit:239 */
1925 REGB0 = TAG_Int(3);
1926 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1927 if (!once_value_7) {
1928 fra.me.REG[2] = BOX_NativeString("");
1929 REGB0 = TAG_Int(0);
1930 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1931 once_value_7 = fra.me.REG[2];
1932 register_static_object(&once_value_7);
1933 } else fra.me.REG[2] = once_value_7;
1934 fra.me.REG[2] = fra.me.REG[2];
1935 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1936 fra.me.REG[2] = CALL_standard___kernel___Object___sys(fra.me.REG[1])(fra.me.REG[1]);
1937 fra.me.REG[2] = CALL_standard___string___Sys___program_name(fra.me.REG[2])(fra.me.REG[2]);
1938 fra.me.REG[2] = CALL_standard___file___String___dirname(fra.me.REG[2])(fra.me.REG[2]);
1939 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1940 if (!once_value_8) {
1941 fra.me.REG[2] = BOX_NativeString("/../lib");
1942 REGB0 = TAG_Int(7);
1943 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1944 once_value_8 = fra.me.REG[2];
1945 register_static_object(&once_value_8);
1946 } else fra.me.REG[2] = once_value_8;
1947 fra.me.REG[2] = fra.me.REG[2];
1948 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
1949 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1950 /* ./mmloader.nit:240 */
1951 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[4])(fra.me.REG[4]);
1952 if (UNTAG_Bool(REGB0)) {
1953 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
1954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1955 }
1956 /* ./mmloader.nit:242 */
1957 fra.me.REG[4] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
1958 fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
1959 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1960 if (UNTAG_Bool(REGB0)) {
1961 } else {
1962 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1963 if (UNTAG_Bool(REGB1)) {
1964 REGB1 = TAG_Bool(false);
1965 REGB0 = REGB1;
1966 } else {
1967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1968 REGB0 = REGB1;
1969 }
1970 }
1971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1972 if (UNTAG_Bool(REGB0)) {
1973 fra.me.REG[4] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
1974 fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
1975 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
1976 if (UNTAG_Bool(REGB0)) {
1977 } else {
1978 nit_abort("Cast failed", NULL, LOCATE_mmloader, 242);
1979 }
1980 ATTR_mmloader___ToolContext____log_directory(fra.me.REG[1]) = fra.me.REG[4];
1981 }
1982 /* ./mmloader.nit:243 */
1983 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[1])!=NIT_NULL);
1984 if (UNTAG_Bool(REGB0)) {
1985 } else {
1986 nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 243);
1987 }
1988 fra.me.REG[4] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[1]);
1989 fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
1990 if (UNTAG_Bool(fra.me.REG[4])) {
1991 /* ./mmloader.nit:245 */
1992 fra.me.REG[1] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
1993 CALL_standard___file___String___mkdir(fra.me.REG[1])(fra.me.REG[1]);
1994 }
1995 stack_frame_head = fra.me.prev;
1996 return;
1997 }
1998 val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
1999 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2000 val_t REGB0;
2001 val_t REGB1;
2002 val_t REGB2;
2003 val_t tmp;
2004 static val_t once_value_4; /* Once value */
2005 static val_t once_value_5; /* Once value */
2006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2007 fra.me.file = LOCATE_mmloader;
2008 fra.me.line = 249;
2009 fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load;
2010 fra.me.has_broke = 0;
2011 fra.me.REG_size = 10;
2012 fra.me.REG[0] = NIT_NULL;
2013 fra.me.REG[1] = NIT_NULL;
2014 fra.me.REG[2] = NIT_NULL;
2015 fra.me.REG[3] = NIT_NULL;
2016 fra.me.REG[4] = NIT_NULL;
2017 fra.me.REG[5] = NIT_NULL;
2018 fra.me.REG[6] = NIT_NULL;
2019 fra.me.REG[7] = NIT_NULL;
2020 fra.me.REG[8] = NIT_NULL;
2021 fra.me.REG[9] = NIT_NULL;
2022 fra.me.REG[0] = p0;
2023 fra.me.REG[1] = p1;
2024 fra.me.REG[2] = p2;
2025 /* ./mmloader.nit:255 */
2026 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMDirectory___modules(fra.me.REG[2])(fra.me.REG[2]);
2027 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[3])(fra.me.REG[3]);
2028 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmloader___ToolContext___try_to_load_1));
2029 switch ((&(fra.me))->has_broke) {
2030 case 0: break;
2031 case 1: (&(fra.me))->has_broke = 0; goto label3;
2032 }
2033 /* ./mmloader.nit:261 */
2034 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
2035 if (UNTAG_Bool(REGB0)) {
2036 } else {
2037 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 261);
2038 }
2039 fra.me.REG[4] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
2040 /* ./../lib/standard//collection//array.nit:269 */
2041 REGB0 = TAG_Int(0);
2042 /* ./../lib/standard//collection//array.nit:270 */
2043 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
2044 if (UNTAG_Bool(REGB1)) {
2045 } else {
2046 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
2047 }
2048 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
2049 /* ./../lib/standard//collection//array.nit:271 */
2050 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
2051 /* ./../lib/standard//collection//array.nit:272 */
2052 while(1) {
2053 /* ./../lib/standard//collection//array.nit:24 */
2054 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
2055 if (UNTAG_Bool(REGB1)) {
2056 } else {
2057 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2058 }
2059 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
2060 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2061 if (UNTAG_Bool(REGB2)) {
2062 } else {
2063 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2064 }
2065 /* ./../lib/standard//kernel.nit:232 */
2066 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2067 /* ./../lib/standard//collection//array.nit:272 */
2068 if (UNTAG_Bool(REGB1)) {
2069 /* ./../lib/standard//collection//array.nit:273 */
2070 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2071 if (UNTAG_Bool(REGB1)) {
2072 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
2073 }
2074 /* ./../lib/standard//collection//array.nit:718 */
2075 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
2076 /* ./mmloader.nit:262 */
2077 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]);
2078 /* ./mmloader.nit:263 */
2079 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2080 if (UNTAG_Bool(REGB1)) {
2081 } else {
2082 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2083 if (UNTAG_Bool(REGB2)) {
2084 REGB2 = TAG_Bool(false);
2085 REGB1 = REGB2;
2086 } else {
2087 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2088 REGB1 = REGB2;
2089 }
2090 }
2091 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2092 if (UNTAG_Bool(REGB1)) {
2093 /* ./mmloader.nit:264 */
2094 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]);
2095 /* ./mmloader.nit:265 */
2096 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2097 if (UNTAG_Bool(REGB1)) {
2098 } else {
2099 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2100 if (UNTAG_Bool(REGB2)) {
2101 REGB2 = TAG_Bool(false);
2102 REGB1 = REGB2;
2103 } else {
2104 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
2105 REGB1 = REGB2;
2106 }
2107 }
2108 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2109 if (UNTAG_Bool(REGB1)) {
2110 /* ./mmloader.nit:266 */
2111 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2112 if (UNTAG_Bool(REGB1)) {
2113 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 266);
2114 }
2115 CALL_metamodel___abstractmetamodel___MMDirectory___owner__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2116 /* ./mmloader.nit:267 */
2117 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
2118 /* ./mmloader.nit:268 */
2119 fra.me.REG[3] = fra.me.REG[8];
2120 goto label3;
2121 }
2122 }
2123 /* ./mmloader.nit:272 */
2124 REGB1 = CALL_mmloader___ModuleLoader___can_handle(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2]);
2125 if (UNTAG_Bool(REGB1)) {
2126 /* ./mmloader.nit:273 */
2127 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2128 /* ./mmloader.nit:274 */
2129 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
2130 if (UNTAG_Bool(REGB1)) {
2131 } else {
2132 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 274);
2133 }
2134 fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
2135 REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2136 if (UNTAG_Bool(REGB1)) {
2137 /* ./mmloader.nit:276 */
2138 REGB1 = TAG_Int(3);
2139 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2140 if (!once_value_4) {
2141 fra.me.REG[9] = BOX_NativeString("Error: Dependency loop for module ");
2142 REGB1 = TAG_Int(34);
2143 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
2144 once_value_4 = fra.me.REG[9];
2145 register_static_object(&once_value_4);
2146 } else fra.me.REG[9] = once_value_4;
2147 fra.me.REG[9] = fra.me.REG[9];
2148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
2149 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
2151 if (!once_value_5) {
2152 fra.me.REG[9] = BOX_NativeString("");
2153 REGB1 = TAG_Int(0);
2154 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
2155 once_value_5 = fra.me.REG[9];
2156 register_static_object(&once_value_5);
2157 } else fra.me.REG[9] = once_value_5;
2158 fra.me.REG[9] = fra.me.REG[9];
2159 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
2160 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2161 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[7]);
2162 }
2163 /* ./mmloader.nit:278 */
2164 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
2165 if (UNTAG_Bool(REGB1)) {
2166 } else {
2167 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 278);
2168 }
2169 fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
2170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2171 /* ./mmloader.nit:279 */
2172 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]);
2173 /* ./mmloader.nit:280 */
2174 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
2175 if (UNTAG_Bool(REGB1)) {
2176 } else {
2177 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 280);
2178 }
2179 fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
2180 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2181 /* ./mmloader.nit:282 */
2182 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
2183 /* ./mmloader.nit:283 */
2184 fra.me.REG[3] = fra.me.REG[6];
2185 goto label3;
2186 }
2187 /* ./../lib/standard//collection//array.nit:274 */
2188 REGB1 = TAG_Int(1);
2189 /* ./../lib/standard//kernel.nit:235 */
2190 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2191 /* ./../lib/standard//collection//array.nit:274 */
2192 REGB0 = REGB1;
2193 } else {
2194 /* ./../lib/standard//collection//array.nit:272 */
2195 goto label6;
2196 }
2197 }
2198 label6: while(0);
2199 /* ./mmloader.nit:286 */
2200 fra.me.REG[3] = NIT_NULL;
2201 goto label3;
2202 label3: while(0);
2203 stack_frame_head = fra.me.prev;
2204 return fra.me.REG[3];
2205 }
2206 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){
2207 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2208 val_t REGB0;
2209 val_t REGB1;
2210 fun_t CREG[1];
2211 val_t tmp;
2212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2213 fra.me.file = LOCATE_mmloader;
2214 fra.me.line = 0;
2215 fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load;
2216 fra.me.has_broke = 0;
2217 fra.me.REG_size = 2;
2218 fra.me.REG[0] = NIT_NULL;
2219 fra.me.REG[1] = NIT_NULL;
2220 fra.me.closure_ctx = closctx_param;
2221 fra.me.closure_funs = CREG;
2222 fra.me.REG[0] = p0;
2223 CREG[0] = clos_fun0;
2224 /* ./mmloader.nit:256 */
2225 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
2226 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[1]));
2227 if (UNTAG_Bool(REGB0)) {
2228 } else {
2229 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
2230 REGB0 = REGB1;
2231 }
2232 if (UNTAG_Bool(REGB0)) {
2233 closctx->REG[3] = fra.me.REG[0];
2234 closctx->has_broke = 1;
2235 goto label2;
2236 }
2237 label2: while(0);
2238 stack_frame_head = fra.me.prev;
2239 return;
2240 }
2241 val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
2242 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
2243 val_t REGB0;
2244 val_t REGB1;
2245 val_t tmp;
2246 static val_t once_value_1; /* Once value */
2247 static val_t once_value_3; /* Once value */
2248 static val_t once_value_4; /* Once value */
2249 static val_t once_value_5; /* Once value */
2250 static val_t once_value_6; /* Once value */
2251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2252 fra.me.file = LOCATE_mmloader;
2253 fra.me.line = 293;
2254 fra.me.meth = LOCATE_mmloader___ToolContext___get_module_from_filename;
2255 fra.me.has_broke = 0;
2256 fra.me.REG_size = 7;
2257 fra.me.REG[0] = NIT_NULL;
2258 fra.me.REG[1] = NIT_NULL;
2259 fra.me.REG[2] = NIT_NULL;
2260 fra.me.REG[3] = NIT_NULL;
2261 fra.me.REG[4] = NIT_NULL;
2262 fra.me.REG[5] = NIT_NULL;
2263 fra.me.REG[6] = NIT_NULL;
2264 fra.me.REG[0] = p0;
2265 fra.me.REG[1] = p1;
2266 /* ./mmloader.nit:298 */
2267 fra.me.REG[2] = CALL_standard___file___String___dirname(fra.me.REG[1])(fra.me.REG[1]);
2268 /* ./mmloader.nit:299 */
2269 if (!once_value_1) {
2270 fra.me.REG[3] = BOX_NativeString(".nit");
2271 REGB0 = TAG_Int(4);
2272 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2273 once_value_1 = fra.me.REG[3];
2274 register_static_object(&once_value_1);
2275 } else fra.me.REG[3] = once_value_1;
2276 fra.me.REG[3] = fra.me.REG[3];
2277 fra.me.REG[3] = CALL_standard___file___String___basename(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
2278 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
2279 /* ./mmloader.nit:301 */
2280 fra.me.REG[2] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2281 /* ./mmloader.nit:303 */
2282 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
2284 if (UNTAG_Bool(REGB0)) {
2285 } else {
2286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2287 REGB0 = REGB1;
2288 }
2289 if (UNTAG_Bool(REGB0)) {
2290 /* ./mmloader.nit:306 */
2291 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]);
2292 /* ./mmloader.nit:307 */
2293 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2294 if (UNTAG_Bool(REGB0)) {
2295 } else {
2296 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2297 if (UNTAG_Bool(REGB1)) {
2298 REGB1 = TAG_Bool(false);
2299 REGB0 = REGB1;
2300 } else {
2301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2302 REGB0 = REGB1;
2303 }
2304 }
2305 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2306 if (UNTAG_Bool(REGB0)) {
2307 goto label2;
2308 }
2309 /* ./mmloader.nit:310 */
2310 fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], NIT_NULL);
2311 fra.me.REG[4] = fra.me.REG[5];
2312 goto label2;
2313 }
2314 /* ./mmloader.nit:313 */
2315 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
2316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2317 if (UNTAG_Bool(REGB0)) {
2318 /* ./mmloader.nit:314 */
2319 REGB0 = TAG_Int(3);
2320 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2321 if (!once_value_3) {
2322 fra.me.REG[6] = BOX_NativeString("Error: File ");
2323 REGB0 = TAG_Int(12);
2324 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
2325 once_value_3 = fra.me.REG[6];
2326 register_static_object(&once_value_3);
2327 } else fra.me.REG[6] = once_value_3;
2328 fra.me.REG[6] = fra.me.REG[6];
2329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
2331 if (!once_value_4) {
2332 fra.me.REG[6] = BOX_NativeString(" not found.");
2333 REGB0 = TAG_Int(11);
2334 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
2335 once_value_4 = fra.me.REG[6];
2336 register_static_object(&once_value_4);
2337 } else fra.me.REG[6] = once_value_4;
2338 fra.me.REG[6] = fra.me.REG[6];
2339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2340 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2341 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
2342 /* ./mmloader.nit:315 */
2343 nit_abort("Aborted", NULL, LOCATE_mmloader, 315);
2344 }
2345 /* ./mmloader.nit:319 */
2346 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]);
2347 /* ./mmloader.nit:320 */
2348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2349 if (UNTAG_Bool(REGB0)) {
2350 } else {
2351 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2352 if (UNTAG_Bool(REGB1)) {
2353 REGB1 = TAG_Bool(false);
2354 REGB0 = REGB1;
2355 } else {
2356 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2357 REGB0 = REGB1;
2358 }
2359 }
2360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2361 if (UNTAG_Bool(REGB0)) {
2362 fra.me.REG[4] = fra.me.REG[2];
2363 goto label2;
2364 }
2365 /* ./mmloader.nit:322 */
2366 REGB0 = TAG_Int(3);
2367 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2368 if (!once_value_5) {
2369 fra.me.REG[3] = BOX_NativeString("Error: ");
2370 REGB0 = TAG_Int(7);
2371 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2372 once_value_5 = fra.me.REG[3];
2373 register_static_object(&once_value_5);
2374 } else fra.me.REG[3] = once_value_5;
2375 fra.me.REG[3] = fra.me.REG[3];
2376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2378 if (!once_value_6) {
2379 fra.me.REG[1] = BOX_NativeString(" is not a NIT source module.");
2380 REGB0 = TAG_Int(28);
2381 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2382 once_value_6 = fra.me.REG[1];
2383 register_static_object(&once_value_6);
2384 } else fra.me.REG[1] = once_value_6;
2385 fra.me.REG[1] = fra.me.REG[1];
2386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2387 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2388 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]);
2389 /* ./mmloader.nit:323 */
2390 nit_abort("Aborted", NULL, LOCATE_mmloader, 323);
2391 label2: while(0);
2392 stack_frame_head = fra.me.prev;
2393 return fra.me.REG[4];
2394 }
2395 val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
2396 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2397 val_t REGB0;
2398 val_t REGB1;
2399 val_t REGB2;
2400 val_t tmp;
2401 static val_t once_value_4; /* Once value */
2402 static val_t once_value_5; /* Once value */
2403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2404 fra.me.file = LOCATE_mmloader;
2405 fra.me.line = 326;
2406 fra.me.meth = LOCATE_mmloader___ToolContext___get_module;
2407 fra.me.has_broke = 0;
2408 fra.me.REG_size = 6;
2409 fra.me.REG[0] = NIT_NULL;
2410 fra.me.REG[1] = NIT_NULL;
2411 fra.me.REG[2] = NIT_NULL;
2412 fra.me.REG[3] = NIT_NULL;
2413 fra.me.REG[4] = NIT_NULL;
2414 fra.me.REG[5] = NIT_NULL;
2415 fra.me.REG[0] = p0;
2416 fra.me.REG[1] = p1;
2417 fra.me.REG[2] = p2;
2418 /* ./mmloader.nit:330 */
2419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2420 if (UNTAG_Bool(REGB0)) {
2421 } else {
2422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2423 if (UNTAG_Bool(REGB1)) {
2424 REGB1 = TAG_Bool(false);
2425 REGB0 = REGB1;
2426 } else {
2427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2428 REGB0 = REGB1;
2429 }
2430 }
2431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2432 if (UNTAG_Bool(REGB0)) {
2433 /* ./mmloader.nit:331 */
2434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2435 if (UNTAG_Bool(REGB0)) {
2436 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 331);
2437 }
2438 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra.me.REG[2])(fra.me.REG[2]);
2439 /* ./mmloader.nit:332 */
2440 while(1) {
2441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2442 if (UNTAG_Bool(REGB0)) {
2443 } else {
2444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2445 if (UNTAG_Bool(REGB1)) {
2446 REGB1 = TAG_Bool(false);
2447 REGB0 = REGB1;
2448 } else {
2449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2450 REGB0 = REGB1;
2451 }
2452 }
2453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2454 if (UNTAG_Bool(REGB0)) {
2455 /* ./mmloader.nit:333 */
2456 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]);
2457 /* ./mmloader.nit:334 */
2458 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2459 if (UNTAG_Bool(REGB0)) {
2460 } else {
2461 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2462 if (UNTAG_Bool(REGB1)) {
2463 REGB1 = TAG_Bool(false);
2464 REGB0 = REGB1;
2465 } else {
2466 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2467 REGB0 = REGB1;
2468 }
2469 }
2470 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2471 if (UNTAG_Bool(REGB0)) {
2472 goto label1;
2473 }
2474 /* ./mmloader.nit:335 */
2475 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2476 if (UNTAG_Bool(REGB0)) {
2477 nit_abort("Reciever is null", NULL, LOCATE_mmloader, 335);
2478 }
2479 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMDirectory___parent(fra.me.REG[2])(fra.me.REG[2]);
2480 fra.me.REG[2] = fra.me.REG[4];
2481 } else {
2482 /* ./mmloader.nit:332 */
2483 goto label2;
2484 }
2485 }
2486 label2: while(0);
2487 }
2488 /* ./mmloader.nit:339 */
2489 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
2490 /* ./../lib/standard//collection//array.nit:269 */
2491 REGB0 = TAG_Int(0);
2492 /* ./../lib/standard//collection//array.nit:270 */
2493 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2494 if (UNTAG_Bool(REGB1)) {
2495 } else {
2496 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
2497 }
2498 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2499 /* ./../lib/standard//collection//array.nit:271 */
2500 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2501 /* ./../lib/standard//collection//array.nit:272 */
2502 while(1) {
2503 /* ./../lib/standard//collection//array.nit:24 */
2504 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2505 if (UNTAG_Bool(REGB1)) {
2506 } else {
2507 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2508 }
2509 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2510 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2511 if (UNTAG_Bool(REGB2)) {
2512 } else {
2513 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2514 }
2515 /* ./../lib/standard//kernel.nit:232 */
2516 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2517 /* ./../lib/standard//collection//array.nit:272 */
2518 if (UNTAG_Bool(REGB1)) {
2519 /* ./../lib/standard//collection//array.nit:273 */
2520 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2521 if (UNTAG_Bool(REGB1)) {
2522 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
2523 }
2524 /* ./../lib/standard//collection//array.nit:718 */
2525 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
2526 /* ./mmloader.nit:340 */
2527 fra.me.REG[5] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
2528 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]);
2529 /* ./mmloader.nit:341 */
2530 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2531 if (UNTAG_Bool(REGB1)) {
2532 } else {
2533 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2534 if (UNTAG_Bool(REGB2)) {
2535 REGB2 = TAG_Bool(false);
2536 REGB1 = REGB2;
2537 } else {
2538 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2539 REGB1 = REGB2;
2540 }
2541 }
2542 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2543 if (UNTAG_Bool(REGB1)) {
2544 fra.me.REG[3] = fra.me.REG[5];
2545 goto label1;
2546 }
2547 /* ./../lib/standard//collection//array.nit:274 */
2548 REGB1 = TAG_Int(1);
2549 /* ./../lib/standard//kernel.nit:235 */
2550 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2551 /* ./../lib/standard//collection//array.nit:274 */
2552 REGB0 = REGB1;
2553 } else {
2554 /* ./../lib/standard//collection//array.nit:272 */
2555 goto label3;
2556 }
2557 }
2558 label3: while(0);
2559 /* ./mmloader.nit:344 */
2560 REGB0 = TAG_Int(3);
2561 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2562 if (!once_value_4) {
2563 fra.me.REG[2] = BOX_NativeString("Error: No ressource found for module ");
2564 REGB0 = TAG_Int(37);
2565 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2566 once_value_4 = fra.me.REG[2];
2567 register_static_object(&once_value_4);
2568 } else fra.me.REG[2] = once_value_4;
2569 fra.me.REG[2] = fra.me.REG[2];
2570 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
2571 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2573 if (!once_value_5) {
2574 fra.me.REG[1] = BOX_NativeString(".");
2575 REGB0 = TAG_Int(1);
2576 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2577 once_value_5 = fra.me.REG[1];
2578 register_static_object(&once_value_5);
2579 } else fra.me.REG[1] = once_value_5;
2580 fra.me.REG[1] = fra.me.REG[1];
2581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2582 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2583 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
2584 /* ./mmloader.nit:345 */
2585 nit_abort("Aborted", NULL, LOCATE_mmloader, 345);
2586 label1: while(0);
2587 stack_frame_head = fra.me.prev;
2588 return fra.me.REG[3];
2589 }
2590 val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){
2591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2592 val_t REGB0;
2593 val_t tmp;
2594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2595 fra.me.file = LOCATE_mmloader;
2596 fra.me.line = 348;
2597 fra.me.meth = LOCATE_mmloader___ToolContext___directory_for;
2598 fra.me.has_broke = 0;
2599 fra.me.REG_size = 4;
2600 fra.me.REG[0] = NIT_NULL;
2601 fra.me.REG[1] = NIT_NULL;
2602 fra.me.REG[2] = NIT_NULL;
2603 fra.me.REG[3] = NIT_NULL;
2604 fra.me.REG[0] = p0;
2605 fra.me.REG[1] = p1;
2606 /* ./mmloader.nit:351 */
2607 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
2608 if (UNTAG_Bool(REGB0)) {
2609 } else {
2610 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 351);
2611 }
2612 fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
2613 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2614 if (UNTAG_Bool(REGB0)) {
2615 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
2616 if (UNTAG_Bool(REGB0)) {
2617 } else {
2618 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 351);
2619 }
2620 fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
2621 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2622 goto label1;
2623 }
2624 /* ./mmloader.nit:352 */
2625 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2626 fra.me.REG[3] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[1], NIT_NULL);
2627 /* ./mmloader.nit:353 */
2628 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
2629 if (UNTAG_Bool(REGB0)) {
2630 } else {
2631 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 353);
2632 }
2633 fra.me.REG[0] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
2634 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
2635 /* ./mmloader.nit:354 */
2636 fra.me.REG[2] = fra.me.REG[3];
2637 goto label1;
2638 label1: while(0);
2639 stack_frame_head = fra.me.prev;
2640 return fra.me.REG[2];
2641 }
2642 void mmloader___ToolContext___register_loader(val_t p0, val_t p1){
2643 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2644 val_t REGB0;
2645 val_t tmp;
2646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2647 fra.me.file = LOCATE_mmloader;
2648 fra.me.line = 360;
2649 fra.me.meth = LOCATE_mmloader___ToolContext___register_loader;
2650 fra.me.has_broke = 0;
2651 fra.me.REG_size = 2;
2652 fra.me.REG[0] = NIT_NULL;
2653 fra.me.REG[1] = NIT_NULL;
2654 fra.me.REG[0] = p0;
2655 fra.me.REG[1] = p1;
2656 /* ./mmloader.nit:361 */
2657 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
2658 if (UNTAG_Bool(REGB0)) {
2659 } else {
2660 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 361);
2661 }
2662 fra.me.REG[0] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
2663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2664 stack_frame_head = fra.me.prev;
2665 return;
2666 }
2667 val_t mmloader___ModuleLoader___file_type(val_t p0){
2668 struct {struct stack_frame_t me;} fra;
2669 val_t tmp;
2670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2671 fra.me.file = LOCATE_mmloader;
2672 fra.me.line = 369;
2673 fra.me.meth = LOCATE_mmloader___ModuleLoader___file_type;
2674 fra.me.has_broke = 0;
2675 fra.me.REG_size = 0;
2676 /* ./mmloader.nit:369 */
2677 nit_abort("Deferred method called", NULL, LOCATE_mmloader, 369);
2678 stack_frame_head = fra.me.prev;
2679 return NIT_NULL;
2680 }
2681 val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
2682 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2683 val_t REGB0;
2684 val_t tmp;
2685 static val_t once_value_1; /* Once value */
2686 static val_t once_value_2; /* Once value */
2687 static val_t once_value_3; /* Once value */
2688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2689 fra.me.file = LOCATE_mmloader;
2690 fra.me.line = 372;
2691 fra.me.meth = LOCATE_mmloader___ModuleLoader___try_to_load_dir;
2692 fra.me.has_broke = 0;
2693 fra.me.REG_size = 4;
2694 fra.me.REG[0] = NIT_NULL;
2695 fra.me.REG[1] = NIT_NULL;
2696 fra.me.REG[2] = NIT_NULL;
2697 fra.me.REG[3] = NIT_NULL;
2698 fra.me.REG[0] = p0;
2699 fra.me.REG[1] = p1;
2700 fra.me.REG[2] = p2;
2701 /* ./mmloader.nit:375 */
2702 REGB0 = TAG_Int(5);
2703 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2704 if (!once_value_1) {
2705 fra.me.REG[3] = BOX_NativeString("");
2706 REGB0 = TAG_Int(0);
2707 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2708 once_value_1 = fra.me.REG[3];
2709 register_static_object(&once_value_1);
2710 } else fra.me.REG[3] = once_value_1;
2711 fra.me.REG[3] = fra.me.REG[3];
2712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2713 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra.me.REG[2])(fra.me.REG[2]);
2714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2715 if (!once_value_2) {
2716 fra.me.REG[3] = BOX_NativeString("/");
2717 REGB0 = TAG_Int(1);
2718 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2719 once_value_2 = fra.me.REG[3];
2720 register_static_object(&once_value_2);
2721 } else fra.me.REG[3] = once_value_2;
2722 fra.me.REG[3] = fra.me.REG[3];
2723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2724 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2726 if (!once_value_3) {
2727 fra.me.REG[3] = BOX_NativeString("/");
2728 REGB0 = TAG_Int(1);
2729 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2730 once_value_3 = fra.me.REG[3];
2731 register_static_object(&once_value_3);
2732 } else fra.me.REG[3] = once_value_3;
2733 fra.me.REG[3] = fra.me.REG[3];
2734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2735 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2736 /* ./mmloader.nit:376 */
2737 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
2738 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2739 if (UNTAG_Bool(REGB0)) {
2740 fra.me.REG[3] = NIT_NULL;
2741 goto label4;
2742 }
2743 /* ./mmloader.nit:378 */
2744 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2745 fra.me.REG[2] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
2746 /* ./mmloader.nit:379 */
2747 fra.me.REG[3] = fra.me.REG[2];
2748 goto label4;
2749 label4: while(0);
2750 stack_frame_head = fra.me.prev;
2751 return fra.me.REG[3];
2752 }
2753 val_t mmloader___ModuleLoader___can_handle(val_t p0, val_t p1, val_t p2){
2754 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2755 val_t REGB0;
2756 val_t REGB1;
2757 val_t tmp;
2758 static val_t once_value_1; /* Once value */
2759 static val_t once_value_2; /* Once value */
2760 static val_t once_value_3; /* Once value */
2761 static val_t once_value_4; /* Once value */
2762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2763 fra.me.file = LOCATE_mmloader;
2764 fra.me.line = 382;
2765 fra.me.meth = LOCATE_mmloader___ModuleLoader___can_handle;
2766 fra.me.has_broke = 0;
2767 fra.me.REG_size = 5;
2768 fra.me.REG[0] = NIT_NULL;
2769 fra.me.REG[1] = NIT_NULL;
2770 fra.me.REG[2] = NIT_NULL;
2771 fra.me.REG[3] = NIT_NULL;
2772 fra.me.REG[4] = NIT_NULL;
2773 fra.me.REG[0] = p0;
2774 fra.me.REG[1] = p1;
2775 fra.me.REG[2] = p2;
2776 /* ./mmloader.nit:386 */
2777 REGB0 = TAG_Int(7);
2778 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2779 if (!once_value_1) {
2780 fra.me.REG[4] = BOX_NativeString("");
2781 REGB0 = TAG_Int(0);
2782 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2783 once_value_1 = fra.me.REG[4];
2784 register_static_object(&once_value_1);
2785 } else fra.me.REG[4] = once_value_1;
2786 fra.me.REG[4] = fra.me.REG[4];
2787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
2788 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra.me.REG[2])(fra.me.REG[2]);
2789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2790 if (!once_value_2) {
2791 fra.me.REG[2] = BOX_NativeString("/");
2792 REGB0 = TAG_Int(1);
2793 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2794 once_value_2 = fra.me.REG[2];
2795 register_static_object(&once_value_2);
2796 } else fra.me.REG[2] = once_value_2;
2797 fra.me.REG[2] = fra.me.REG[2];
2798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2799 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2801 if (!once_value_3) {
2802 fra.me.REG[1] = BOX_NativeString(".");
2803 REGB0 = TAG_Int(1);
2804 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2805 once_value_3 = fra.me.REG[1];
2806 register_static_object(&once_value_3);
2807 } else fra.me.REG[1] = once_value_3;
2808 fra.me.REG[1] = fra.me.REG[1];
2809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2810 fra.me.REG[0] = CALL_mmloader___ModuleLoader___file_type(fra.me.REG[0])(fra.me.REG[0]);
2811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2812 if (!once_value_4) {
2813 fra.me.REG[0] = BOX_NativeString("");
2814 REGB0 = TAG_Int(0);
2815 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2816 once_value_4 = fra.me.REG[0];
2817 register_static_object(&once_value_4);
2818 } else fra.me.REG[0] = once_value_4;
2819 fra.me.REG[0] = fra.me.REG[0];
2820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2821 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2822 /* ./mmloader.nit:387 */
2823 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
2824 if (UNTAG_Bool(REGB0)) {
2825 REGB0 = TAG_Bool(true);
2826 goto label5;
2827 }
2828 /* ./mmloader.nit:388 */
2829 REGB1 = TAG_Bool(false);
2830 REGB0 = REGB1;
2831 goto label5;
2832 label5: while(0);
2833 stack_frame_head = fra.me.prev;
2834 return REGB0;
2835 }
2836 val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_t p2, val_t p3){
2837 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2838 val_t REGB0;
2839 val_t tmp;
2840 static val_t once_value_1; /* Once value */
2841 static val_t once_value_2; /* Once value */
2842 static val_t once_value_3; /* Once value */
2843 static val_t once_value_4; /* Once value */
2844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2845 fra.me.file = LOCATE_mmloader;
2846 fra.me.line = 391;
2847 fra.me.meth = LOCATE_mmloader___ModuleLoader___load_and_process_module;
2848 fra.me.has_broke = 0;
2849 fra.me.REG_size = 6;
2850 fra.me.REG[0] = NIT_NULL;
2851 fra.me.REG[1] = NIT_NULL;
2852 fra.me.REG[2] = NIT_NULL;
2853 fra.me.REG[3] = NIT_NULL;
2854 fra.me.REG[4] = NIT_NULL;
2855 fra.me.REG[5] = NIT_NULL;
2856 fra.me.REG[0] = p0;
2857 fra.me.REG[1] = p1;
2858 fra.me.REG[2] = p2;
2859 fra.me.REG[3] = p3;
2860 /* ./mmloader.nit:395 */
2861 REGB0 = TAG_Int(7);
2862 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2863 if (!once_value_1) {
2864 fra.me.REG[5] = BOX_NativeString("");
2865 REGB0 = TAG_Int(0);
2866 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2867 once_value_1 = fra.me.REG[5];
2868 register_static_object(&once_value_1);
2869 } else fra.me.REG[5] = once_value_1;
2870 fra.me.REG[5] = fra.me.REG[5];
2871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2872 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra.me.REG[3])(fra.me.REG[3]);
2873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2874 if (!once_value_2) {
2875 fra.me.REG[5] = BOX_NativeString("/");
2876 REGB0 = TAG_Int(1);
2877 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2878 once_value_2 = fra.me.REG[5];
2879 register_static_object(&once_value_2);
2880 } else fra.me.REG[5] = once_value_2;
2881 fra.me.REG[5] = fra.me.REG[5];
2882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2883 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2885 if (!once_value_3) {
2886 fra.me.REG[5] = BOX_NativeString(".");
2887 REGB0 = TAG_Int(1);
2888 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2889 once_value_3 = fra.me.REG[5];
2890 register_static_object(&once_value_3);
2891 } else fra.me.REG[5] = once_value_3;
2892 fra.me.REG[5] = fra.me.REG[5];
2893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2894 fra.me.REG[5] = CALL_mmloader___ModuleLoader___file_type(fra.me.REG[0])(fra.me.REG[0]);
2895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2896 if (!once_value_4) {
2897 fra.me.REG[5] = BOX_NativeString("");
2898 REGB0 = TAG_Int(0);
2899 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2900 once_value_4 = fra.me.REG[5];
2901 register_static_object(&once_value_4);
2902 } else fra.me.REG[5] = once_value_4;
2903 fra.me.REG[5] = fra.me.REG[5];
2904 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2905 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2906 /* ./mmloader.nit:396 */
2907 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]);
2908 /* ./mmloader.nit:397 */
2909 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
2910 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
2911 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3]));
2912 if (UNTAG_Bool(REGB0)) {
2913 CALL_mmloader___ModuleLoader___process_metamodel(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
2914 }
2915 /* ./mmloader.nit:398 */
2916 goto label5;
2917 label5: while(0);
2918 stack_frame_head = fra.me.prev;
2919 return fra.me.REG[4];
2920 }
2921 val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
2922 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
2923 val_t REGB0;
2924 val_t REGB1;
2925 val_t tmp;
2926 static val_t once_value_1; /* Once value */
2927 static val_t once_value_2; /* Once value */
2928 static val_t once_value_3; /* Once value */
2929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2930 fra.me.file = LOCATE_mmloader;
2931 fra.me.line = 401;
2932 fra.me.meth = LOCATE_mmloader___ModuleLoader___load_module;
2933 fra.me.has_broke = 0;
2934 fra.me.REG_size = 8;
2935 fra.me.REG[0] = NIT_NULL;
2936 fra.me.REG[1] = NIT_NULL;
2937 fra.me.REG[2] = NIT_NULL;
2938 fra.me.REG[3] = NIT_NULL;
2939 fra.me.REG[4] = NIT_NULL;
2940 fra.me.REG[5] = NIT_NULL;
2941 fra.me.REG[6] = NIT_NULL;
2942 fra.me.REG[7] = NIT_NULL;
2943 fra.me.REG[0] = p0;
2944 fra.me.REG[1] = p1;
2945 fra.me.REG[2] = p2;
2946 fra.me.REG[3] = p3;
2947 fra.me.REG[4] = p4;
2948 /* ./mmloader.nit:405 */
2949 if (!once_value_1) {
2950 fra.me.REG[5] = BOX_NativeString("-");
2951 REGB0 = TAG_Int(1);
2952 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2953 once_value_1 = fra.me.REG[5];
2954 register_static_object(&once_value_1);
2955 } else fra.me.REG[5] = once_value_1;
2956 fra.me.REG[5] = fra.me.REG[5];
2957 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
2958 if (UNTAG_Bool(REGB0)) {
2959 } else {
2960 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2961 REGB0 = REGB1;
2962 }
2963 if (UNTAG_Bool(REGB0)) {
2964 /* ./mmloader.nit:406 */
2965 fra.me.REG[5] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
2966 } else {
2967 /* ./mmloader.nit:408 */
2968 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2969 fra.me.REG[6] = NEW_IFStream_standard___file___IFStream___open(fra.me.REG[6]);
2970 fra.me.REG[5] = fra.me.REG[6];
2971 }
2972 /* ./mmloader.nit:411 */
2973 REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[5])(fra.me.REG[5]);
2974 if (UNTAG_Bool(REGB0)) {
2975 /* ./mmloader.nit:412 */
2976 REGB0 = TAG_Int(3);
2977 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2978 if (!once_value_2) {
2979 fra.me.REG[7] = BOX_NativeString("Error: Problem in opening file ");
2980 REGB0 = TAG_Int(31);
2981 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
2982 once_value_2 = fra.me.REG[7];
2983 register_static_object(&once_value_2);
2984 } else fra.me.REG[7] = once_value_2;
2985 fra.me.REG[7] = fra.me.REG[7];
2986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
2987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
2988 if (!once_value_3) {
2989 fra.me.REG[7] = BOX_NativeString("");
2990 REGB0 = TAG_Int(0);
2991 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
2992 once_value_3 = fra.me.REG[7];
2993 register_static_object(&once_value_3);
2994 } else fra.me.REG[7] = once_value_3;
2995 fra.me.REG[7] = fra.me.REG[7];
2996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
2997 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
2998 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
2999 }
3000 /* ./mmloader.nit:414 */
3001 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]);
3002 /* ./mmloader.nit:415 */
3003 fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
3004 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[0]));
3005 if (UNTAG_Bool(REGB0)) {
3006 } else {
3007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
3008 REGB0 = REGB1;
3009 }
3010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3011 if (UNTAG_Bool(REGB0)) {
3012 CALL_standard___stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]);
3013 }
3014 /* ./mmloader.nit:416 */
3015 goto label4;
3016 label4: while(0);
3017 stack_frame_head = fra.me.prev;
3018 return fra.me.REG[3];
3019 }
3020 val_t mmloader___ModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
3021 struct {struct stack_frame_t me;} fra;
3022 val_t tmp;
3023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3024 fra.me.file = LOCATE_mmloader;
3025 fra.me.line = 419;
3026 fra.me.meth = LOCATE_mmloader___ModuleLoader___parse_file;
3027 fra.me.has_broke = 0;
3028 fra.me.REG_size = 0;
3029 /* ./mmloader.nit:419 */
3030 nit_abort("Deferred method called", NULL, LOCATE_mmloader, 419);
3031 stack_frame_head = fra.me.prev;
3032 return NIT_NULL;
3033 }
3034 void mmloader___ModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
3035 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3036 val_t REGB0;
3037 val_t tmp;
3038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3039 fra.me.file = LOCATE_mmloader;
3040 fra.me.line = 422;
3041 fra.me.meth = LOCATE_mmloader___ModuleLoader___process_metamodel;
3042 fra.me.has_broke = 0;
3043 fra.me.REG_size = 2;
3044 fra.me.REG[0] = NIT_NULL;
3045 fra.me.REG[1] = NIT_NULL;
3046 fra.me.REG[0] = p0;
3047 fra.me.REG[1] = p2;
3048 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_mmloader___ModuleLoader___MODULE(fra.me.REG[0]), VTID_mmloader___ModuleLoader___MODULE(fra.me.REG[0]))) /*cast MODULE*/;
3049 if (UNTAG_Bool(REGB0)) {
3050 } else {
3051 nit_abort("Cast failed", NULL, LOCATE_mmloader, 0);
3052 }
3053 /* ./mmloader.nit:422 */
3054 nit_abort("Deferred method called", NULL, LOCATE_mmloader, 422);
3055 stack_frame_head = fra.me.prev;
3056 return;
3057 }
3058 void mmloader___ModuleLoader___init(val_t p0, int* init_table){
3059 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___ModuleLoader].i;
3060 struct {struct stack_frame_t me;} fra;
3061 val_t tmp;
3062 if (init_table[itpos2]) return;
3063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3064 fra.me.file = LOCATE_mmloader;
3065 fra.me.line = 0;
3066 fra.me.meth = LOCATE_mmloader___ModuleLoader___init;
3067 fra.me.has_broke = 0;
3068 fra.me.REG_size = 0;
3069 stack_frame_head = fra.me.prev;
3070 init_table[itpos2] = 1;
3071 return;
3072 }