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