1 /* This C file is generated by NIT to compile module mmloader. */
2 #include "mmloader._sep.h"
3 val_t
mmloader___ToolContext___paths(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_mmloader
;
10 fra
.me
.meth
= LOCATE_mmloader___ToolContext___paths
;
13 fra
.me
.nitni_local_ref_head
= NULL
;
14 fra
.me
.REG
[0] = NIT_NULL
;
17 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____paths(fra
.me
.REG
[0])!=NIT_NULL
);
18 if (UNTAG_Bool(REGB0
)) {
20 nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader
, 29);
22 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____paths(fra
.me
.REG
[0]);
23 stack_frame_head
= fra
.me
.prev
;
26 val_t
mmloader___ToolContext___opt_path(val_t p0
){
27 struct {struct stack_frame_t me
;} fra
;
30 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
31 fra
.me
.file
= LOCATE_mmloader
;
33 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_path
;
36 fra
.me
.nitni_local_ref_head
= NULL
;
37 fra
.me
.REG
[0] = NIT_NULL
;
40 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra
.me
.REG
[0])!=NIT_NULL
);
41 if (UNTAG_Bool(REGB0
)) {
43 nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader
, 35);
45 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_path(fra
.me
.REG
[0]);
46 stack_frame_head
= fra
.me
.prev
;
49 val_t
mmloader___ToolContext___opt_only_metamodel(val_t p0
){
50 struct {struct stack_frame_t me
;} fra
;
53 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
54 fra
.me
.file
= LOCATE_mmloader
;
56 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_only_metamodel
;
59 fra
.me
.nitni_local_ref_head
= NULL
;
60 fra
.me
.REG
[0] = NIT_NULL
;
63 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra
.me
.REG
[0])!=NIT_NULL
);
64 if (UNTAG_Bool(REGB0
)) {
66 nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader
, 38);
68 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra
.me
.REG
[0]);
69 stack_frame_head
= fra
.me
.prev
;
72 val_t
mmloader___ToolContext___opt_only_parse(val_t p0
){
73 struct {struct stack_frame_t me
;} fra
;
76 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
77 fra
.me
.file
= LOCATE_mmloader
;
79 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_only_parse
;
82 fra
.me
.nitni_local_ref_head
= NULL
;
83 fra
.me
.REG
[0] = NIT_NULL
;
86 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra
.me
.REG
[0])!=NIT_NULL
);
87 if (UNTAG_Bool(REGB0
)) {
89 nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader
, 41);
91 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra
.me
.REG
[0]);
92 stack_frame_head
= fra
.me
.prev
;
95 void mmloader___ToolContext___init(val_t p0
, int* init_table
){
96 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_toolcontext___ToolContext
].i
;
97 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
100 if (init_table
[itpos0
]) return;
101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
102 fra
.me
.file
= LOCATE_mmloader
;
104 fra
.me
.meth
= LOCATE_mmloader___ToolContext___init
;
105 fra
.me
.has_broke
= 0;
107 fra
.me
.nitni_local_ref_head
= NULL
;
108 fra
.me
.REG
[0] = NIT_NULL
;
109 fra
.me
.REG
[1] = NIT_NULL
;
110 fra
.me
.REG
[2] = NIT_NULL
;
111 fra
.me
.REG
[3] = NIT_NULL
;
113 /* mmloader.nit:44 */
114 fra
.me
.REG
[1] = fra
.me
.REG
[0];
115 /* mmloader.nit:46 */
116 CALL_SUPER_mmloader___ToolContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
117 /* mmloader.nit:47 */
118 fra
.me
.REG
[0] = CALL_toolcontext___ToolContext___option_context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
120 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
121 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_path(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
123 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_only_parse(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
125 fra
.me
.REG
[1] = CALL_mmloader___ToolContext___opt_only_metamodel(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
127 CALL_opts___OptionContext___add_option(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
128 stack_frame_head
= fra
.me
.prev
;
129 init_table
[itpos0
] = 1;
132 void mmloader___ToolContext___process_options(val_t p0
){
133 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
136 static val_t once_value_1
; /* Once value */
137 static val_t once_value_2
; /* Once value */
138 static val_t once_value_3
; /* Once value */
139 static val_t once_value_4
; /* Once value */
140 static val_t once_value_5
; /* Once value */
141 static val_t once_value_6
; /* Once value */
142 static val_t once_value_7
; /* Once value */
143 static val_t once_value_8
; /* Once value */
144 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
145 fra
.me
.file
= LOCATE_mmloader
;
147 fra
.me
.meth
= LOCATE_mmloader___ToolContext___process_options
;
148 fra
.me
.has_broke
= 0;
150 fra
.me
.nitni_local_ref_head
= NULL
;
151 fra
.me
.REG
[0] = NIT_NULL
;
152 fra
.me
.REG
[1] = NIT_NULL
;
153 fra
.me
.REG
[2] = NIT_NULL
;
154 fra
.me
.REG
[3] = NIT_NULL
;
156 /* mmloader.nit:50 */
157 fra
.me
.REG
[1] = fra
.me
.REG
[0];
158 /* mmloader.nit:53 */
159 CALL_SUPER_mmloader___ToolContext___process_options(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
160 /* mmloader.nit:56 */
161 fra
.me
.REG
[0] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
162 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___opt_path(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
163 fra
.me
.REG
[2] = CALL_opts___Option___value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
164 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
165 /* mmloader.nit:58 */
168 fra
.me
.REG
[2] = BOX_NativeString("NIT_PATH");
170 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
171 once_value_2
= fra
.me
.REG
[2];
172 register_static_object(&once_value_2
);
173 } else fra
.me
.REG
[2] = once_value_2
;
174 fra
.me
.REG
[2] = fra
.me
.REG
[2];
175 fra
.me
.REG
[2] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
176 fra
.me
.REG
[2] = CALL_standard___environ___Symbol___environ(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
177 once_value_1
= fra
.me
.REG
[2];
178 register_static_object(&once_value_1
);
179 } else fra
.me
.REG
[2] = once_value_1
;
180 fra
.me
.REG
[2] = fra
.me
.REG
[2];
181 /* mmloader.nit:59 */
182 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
183 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
184 if (UNTAG_Bool(REGB0
)) {
185 /* mmloader.nit:60 */
186 fra
.me
.REG
[0] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
187 REGB0
= TAG_Char(':');
188 fra
.me
.REG
[3] = CALL_standard___string_search___String___split_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
189 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
191 /* mmloader.nit:63 */
194 fra
.me
.REG
[3] = BOX_NativeString("NIT_DIR");
196 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
197 once_value_4
= fra
.me
.REG
[3];
198 register_static_object(&once_value_4
);
199 } else fra
.me
.REG
[3] = once_value_4
;
200 fra
.me
.REG
[3] = fra
.me
.REG
[3];
201 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
202 fra
.me
.REG
[3] = CALL_standard___environ___Symbol___environ(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
203 once_value_3
= fra
.me
.REG
[3];
204 register_static_object(&once_value_3
);
205 } else fra
.me
.REG
[3] = once_value_3
;
206 fra
.me
.REG
[3] = fra
.me
.REG
[3];
207 fra
.me
.REG
[2] = fra
.me
.REG
[3];
208 /* mmloader.nit:64 */
209 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
210 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
211 if (UNTAG_Bool(REGB0
)) {
212 /* mmloader.nit:65 */
214 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
216 fra
.me
.REG
[0] = BOX_NativeString("");
218 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
219 once_value_5
= fra
.me
.REG
[0];
220 register_static_object(&once_value_5
);
221 } else fra
.me
.REG
[0] = once_value_5
;
222 fra
.me
.REG
[0] = fra
.me
.REG
[0];
223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
226 fra
.me
.REG
[2] = BOX_NativeString("/lib");
228 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
229 once_value_6
= fra
.me
.REG
[2];
230 register_static_object(&once_value_6
);
231 } else fra
.me
.REG
[2] = once_value_6
;
232 fra
.me
.REG
[2] = fra
.me
.REG
[2];
233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
234 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
235 /* mmloader.nit:66 */
236 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
237 if (UNTAG_Bool(REGB0
)) {
238 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
242 /* mmloader.nit:69 */
244 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
246 fra
.me
.REG
[2] = BOX_NativeString("");
248 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
249 once_value_7
= fra
.me
.REG
[2];
250 register_static_object(&once_value_7
);
251 } else fra
.me
.REG
[2] = once_value_7
;
252 fra
.me
.REG
[2] = fra
.me
.REG
[2];
253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
254 fra
.me
.REG
[2] = CALL_standard___kernel___Object___sys(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
255 fra
.me
.REG
[2] = CALL_standard___string___Sys___program_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
256 fra
.me
.REG
[2] = CALL_standard___file___String___dirname(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
259 fra
.me
.REG
[2] = BOX_NativeString("/../lib");
261 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
262 once_value_8
= fra
.me
.REG
[2];
263 register_static_object(&once_value_8
);
264 } else fra
.me
.REG
[2] = once_value_8
;
265 fra
.me
.REG
[2] = fra
.me
.REG
[2];
266 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
267 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
268 /* mmloader.nit:70 */
269 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
270 if (UNTAG_Bool(REGB0
)) {
271 fra
.me
.REG
[1] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
272 fra
.me
.REG
[3] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
275 stack_frame_head
= fra
.me
.prev
;
278 val_t
mmloader___ToolContext___try_to_load(val_t p0
, val_t p1
, val_t p2
){
279 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
284 static val_t once_value_4
; /* Once value */
285 static val_t once_value_5
; /* Once value */
286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
287 fra
.me
.file
= LOCATE_mmloader
;
289 fra
.me
.meth
= LOCATE_mmloader___ToolContext___try_to_load
;
290 fra
.me
.has_broke
= 0;
291 fra
.me
.REG_size
= 10;
292 fra
.me
.nitni_local_ref_head
= NULL
;
293 fra
.me
.REG
[0] = NIT_NULL
;
294 fra
.me
.REG
[1] = NIT_NULL
;
295 fra
.me
.REG
[2] = NIT_NULL
;
296 fra
.me
.REG
[3] = NIT_NULL
;
297 fra
.me
.REG
[4] = NIT_NULL
;
298 fra
.me
.REG
[5] = NIT_NULL
;
299 fra
.me
.REG
[6] = NIT_NULL
;
300 fra
.me
.REG
[7] = NIT_NULL
;
301 fra
.me
.REG
[8] = NIT_NULL
;
302 fra
.me
.REG
[9] = NIT_NULL
;
306 /* mmloader.nit:79 */
307 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___modules(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
308 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
309 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
));
310 switch ((&(fra
.me
))->has_broke
) {
312 case 1: (&(fra
.me
))->has_broke
= 0; goto label3
;
314 /* mmloader.nit:85 */
315 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0])!=NIT_NULL
);
316 if (UNTAG_Bool(REGB0
)) {
318 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader
, 85);
320 fra
.me
.REG
[4] = ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0]);
321 /* ../lib/standard/collection/array.nit:269 */
323 /* ../lib/standard/collection/array.nit:270 */
324 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
325 if (UNTAG_Bool(REGB1
)) {
327 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
329 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
330 /* ../lib/standard/collection/array.nit:271 */
331 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
332 /* ../lib/standard/collection/array.nit:272 */
334 /* ../lib/standard/collection/array.nit:24 */
335 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
336 if (UNTAG_Bool(REGB1
)) {
338 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
340 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
341 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
342 if (UNTAG_Bool(REGB2
)) {
344 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
346 /* ../lib/standard/kernel.nit:232 */
347 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
348 /* ../lib/standard/collection/array.nit:272 */
349 if (UNTAG_Bool(REGB1
)) {
350 /* ../lib/standard/collection/array.nit:273 */
351 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
352 if (UNTAG_Bool(REGB1
)) {
353 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
355 /* ../lib/standard/collection/array.nit:718 */
356 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
357 /* mmloader.nit:86 */
358 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]);
359 /* mmloader.nit:87 */
360 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
361 if (UNTAG_Bool(REGB1
)) {
363 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
364 if (UNTAG_Bool(REGB2
)) {
365 REGB2
= TAG_Bool(false);
368 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
372 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
373 if (UNTAG_Bool(REGB1
)) {
374 /* mmloader.nit:88 */
375 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]);
376 /* mmloader.nit:89 */
377 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
378 if (UNTAG_Bool(REGB1
)) {
380 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
381 if (UNTAG_Bool(REGB2
)) {
382 REGB2
= TAG_Bool(false);
385 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
389 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
390 if (UNTAG_Bool(REGB1
)) {
391 /* mmloader.nit:90 */
392 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
393 if (UNTAG_Bool(REGB1
)) {
394 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 90);
396 CALL_metamodel___abstractmetamodel___MMDirectory___owner__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
397 /* mmloader.nit:91 */
398 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
399 /* mmloader.nit:92 */
400 fra
.me
.REG
[3] = fra
.me
.REG
[8];
404 /* mmloader.nit:96 */
405 REGB1
= CALL_mmloader___ModuleLoader___can_handle(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1], fra
.me
.REG
[2]);
406 if (UNTAG_Bool(REGB1
)) {
407 /* mmloader.nit:97 */
408 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
409 /* mmloader.nit:98 */
410 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
411 if (UNTAG_Bool(REGB1
)) {
413 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 98);
415 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
416 REGB1
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
417 if (UNTAG_Bool(REGB1
)) {
418 /* mmloader.nit:100 */
420 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
422 fra
.me
.REG
[9] = BOX_NativeString("Error: Dependency loop for module ");
424 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
425 once_value_4
= fra
.me
.REG
[9];
426 register_static_object(&once_value_4
);
427 } else fra
.me
.REG
[9] = once_value_4
;
428 fra
.me
.REG
[9] = fra
.me
.REG
[9];
429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
430 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
433 fra
.me
.REG
[9] = BOX_NativeString("");
435 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
436 once_value_5
= fra
.me
.REG
[9];
437 register_static_object(&once_value_5
);
438 } else fra
.me
.REG
[9] = once_value_5
;
439 fra
.me
.REG
[9] = fra
.me
.REG
[9];
440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
441 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
442 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[7]);
444 /* mmloader.nit:102 */
445 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
446 if (UNTAG_Bool(REGB1
)) {
448 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 102);
450 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
452 /* mmloader.nit:103 */
453 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]);
454 /* mmloader.nit:104 */
455 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
456 if (UNTAG_Bool(REGB1
)) {
458 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 104);
460 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
461 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
462 /* mmloader.nit:106 */
463 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
464 /* mmloader.nit:107 */
465 fra
.me
.REG
[3] = fra
.me
.REG
[6];
468 /* ../lib/standard/collection/array.nit:274 */
470 /* ../lib/standard/kernel.nit:235 */
471 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
472 /* ../lib/standard/collection/array.nit:274 */
475 /* ../lib/standard/collection/array.nit:272 */
480 /* mmloader.nit:110 */
481 fra
.me
.REG
[3] = NIT_NULL
;
484 stack_frame_head
= fra
.me
.prev
;
485 return fra
.me
.REG
[3];
487 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
){
488 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
493 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
494 fra
.me
.file
= LOCATE_mmloader
;
496 fra
.me
.meth
= LOCATE_mmloader___ToolContext___try_to_load
;
497 fra
.me
.has_broke
= 0;
499 fra
.me
.nitni_local_ref_head
= NULL
;
500 fra
.me
.REG
[0] = NIT_NULL
;
501 fra
.me
.REG
[1] = NIT_NULL
;
502 fra
.me
.closure_ctx
= closctx_param
;
503 fra
.me
.closure_funs
= CREG
;
506 /* mmloader.nit:80 */
507 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
508 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[1]));
509 if (UNTAG_Bool(REGB0
)) {
511 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[1]);
514 if (UNTAG_Bool(REGB0
)) {
515 closctx
->REG
[3] = fra
.me
.REG
[0];
516 closctx
->has_broke
= 1;
520 stack_frame_head
= fra
.me
.prev
;
523 val_t
mmloader___ToolContext___get_module_from_filename(val_t p0
, val_t p1
){
524 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
528 static val_t once_value_1
; /* Once value */
529 static val_t once_value_3
; /* Once value */
530 static val_t once_value_4
; /* Once value */
531 static val_t once_value_5
; /* Once value */
532 static val_t once_value_6
; /* Once value */
533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
534 fra
.me
.file
= LOCATE_mmloader
;
536 fra
.me
.meth
= LOCATE_mmloader___ToolContext___get_module_from_filename
;
537 fra
.me
.has_broke
= 0;
539 fra
.me
.nitni_local_ref_head
= NULL
;
540 fra
.me
.REG
[0] = NIT_NULL
;
541 fra
.me
.REG
[1] = NIT_NULL
;
542 fra
.me
.REG
[2] = NIT_NULL
;
543 fra
.me
.REG
[3] = NIT_NULL
;
544 fra
.me
.REG
[4] = NIT_NULL
;
545 fra
.me
.REG
[5] = NIT_NULL
;
546 fra
.me
.REG
[6] = NIT_NULL
;
549 /* mmloader.nit:122 */
550 fra
.me
.REG
[2] = CALL_standard___file___String___dirname(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
551 /* mmloader.nit:123 */
553 fra
.me
.REG
[3] = BOX_NativeString(".nit");
555 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
556 once_value_1
= fra
.me
.REG
[3];
557 register_static_object(&once_value_1
);
558 } else fra
.me
.REG
[3] = once_value_1
;
559 fra
.me
.REG
[3] = fra
.me
.REG
[3];
560 fra
.me
.REG
[3] = CALL_standard___file___String___basename(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
561 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
562 /* mmloader.nit:125 */
563 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___directory_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
564 /* mmloader.nit:127 */
565 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
566 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[1]));
567 if (UNTAG_Bool(REGB0
)) {
569 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
572 if (UNTAG_Bool(REGB0
)) {
573 /* mmloader.nit:130 */
574 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]);
575 /* mmloader.nit:131 */
576 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
577 if (UNTAG_Bool(REGB0
)) {
579 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
580 if (UNTAG_Bool(REGB1
)) {
581 REGB1
= TAG_Bool(false);
584 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
588 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
589 if (UNTAG_Bool(REGB0
)) {
592 /* mmloader.nit:134 */
593 fra
.me
.REG
[5] = CALL_mmloader___ToolContext___get_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], NIT_NULL
);
594 fra
.me
.REG
[4] = fra
.me
.REG
[5];
597 /* mmloader.nit:137 */
598 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
599 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
600 if (UNTAG_Bool(REGB0
)) {
601 /* mmloader.nit:138 */
603 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
605 fra
.me
.REG
[6] = BOX_NativeString("Error: File ");
607 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
608 once_value_3
= fra
.me
.REG
[6];
609 register_static_object(&once_value_3
);
610 } else fra
.me
.REG
[6] = once_value_3
;
611 fra
.me
.REG
[6] = fra
.me
.REG
[6];
612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
615 fra
.me
.REG
[6] = BOX_NativeString(" not found.");
617 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
618 once_value_4
= fra
.me
.REG
[6];
619 register_static_object(&once_value_4
);
620 } else fra
.me
.REG
[6] = once_value_4
;
621 fra
.me
.REG
[6] = fra
.me
.REG
[6];
622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
623 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
624 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[5]);
625 /* mmloader.nit:139 */
626 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 139);
628 /* mmloader.nit:143 */
629 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]);
630 /* mmloader.nit:144 */
631 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
632 if (UNTAG_Bool(REGB0
)) {
634 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
635 if (UNTAG_Bool(REGB1
)) {
636 REGB1
= TAG_Bool(false);
639 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
643 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
644 if (UNTAG_Bool(REGB0
)) {
645 fra
.me
.REG
[4] = fra
.me
.REG
[2];
648 /* mmloader.nit:146 */
650 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
652 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
654 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
655 once_value_5
= fra
.me
.REG
[3];
656 register_static_object(&once_value_5
);
657 } else fra
.me
.REG
[3] = once_value_5
;
658 fra
.me
.REG
[3] = fra
.me
.REG
[3];
659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
662 fra
.me
.REG
[1] = BOX_NativeString(" is not a NIT source module.");
664 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
665 once_value_6
= fra
.me
.REG
[1];
666 register_static_object(&once_value_6
);
667 } else fra
.me
.REG
[1] = once_value_6
;
668 fra
.me
.REG
[1] = fra
.me
.REG
[1];
669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
670 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
671 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[2]);
672 /* mmloader.nit:147 */
673 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 147);
675 stack_frame_head
= fra
.me
.prev
;
676 return fra
.me
.REG
[4];
678 val_t
mmloader___ToolContext___get_module(val_t p0
, val_t p1
, val_t p2
){
679 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
684 static val_t once_value_4
; /* Once value */
685 static val_t once_value_5
; /* Once value */
686 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
687 fra
.me
.file
= LOCATE_mmloader
;
689 fra
.me
.meth
= LOCATE_mmloader___ToolContext___get_module
;
690 fra
.me
.has_broke
= 0;
692 fra
.me
.nitni_local_ref_head
= NULL
;
693 fra
.me
.REG
[0] = NIT_NULL
;
694 fra
.me
.REG
[1] = NIT_NULL
;
695 fra
.me
.REG
[2] = NIT_NULL
;
696 fra
.me
.REG
[3] = NIT_NULL
;
697 fra
.me
.REG
[4] = NIT_NULL
;
698 fra
.me
.REG
[5] = NIT_NULL
;
702 /* mmloader.nit:154 */
703 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
704 if (UNTAG_Bool(REGB0
)) {
706 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
707 if (UNTAG_Bool(REGB1
)) {
708 REGB1
= TAG_Bool(false);
711 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
715 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
716 if (UNTAG_Bool(REGB0
)) {
717 /* mmloader.nit:155 */
718 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
719 if (UNTAG_Bool(REGB0
)) {
720 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 155);
722 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
723 /* mmloader.nit:156 */
725 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
726 if (UNTAG_Bool(REGB0
)) {
728 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
729 if (UNTAG_Bool(REGB1
)) {
730 REGB1
= TAG_Bool(false);
733 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
737 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
738 if (UNTAG_Bool(REGB0
)) {
739 /* mmloader.nit:157 */
740 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]);
741 /* mmloader.nit:158 */
742 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
743 if (UNTAG_Bool(REGB0
)) {
745 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
746 if (UNTAG_Bool(REGB1
)) {
747 REGB1
= TAG_Bool(false);
750 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
754 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
755 if (UNTAG_Bool(REGB0
)) {
758 /* mmloader.nit:159 */
759 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
760 if (UNTAG_Bool(REGB0
)) {
761 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 159);
763 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMDirectory___parent(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
764 fra
.me
.REG
[2] = fra
.me
.REG
[4];
766 /* mmloader.nit:156 */
772 /* mmloader.nit:163 */
773 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
774 /* ../lib/standard/collection/array.nit:269 */
776 /* ../lib/standard/collection/array.nit:270 */
777 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
778 if (UNTAG_Bool(REGB1
)) {
780 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
782 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
783 /* ../lib/standard/collection/array.nit:271 */
784 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
785 /* ../lib/standard/collection/array.nit:272 */
787 /* ../lib/standard/collection/array.nit:24 */
788 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
789 if (UNTAG_Bool(REGB1
)) {
791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
793 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
794 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
795 if (UNTAG_Bool(REGB2
)) {
797 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
799 /* ../lib/standard/kernel.nit:232 */
800 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
801 /* ../lib/standard/collection/array.nit:272 */
802 if (UNTAG_Bool(REGB1
)) {
803 /* ../lib/standard/collection/array.nit:273 */
804 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
805 if (UNTAG_Bool(REGB1
)) {
806 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
808 /* ../lib/standard/collection/array.nit:718 */
809 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
810 /* mmloader.nit:164 */
811 fra
.me
.REG
[5] = CALL_mmloader___ToolContext___directory_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
812 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]);
813 /* mmloader.nit:165 */
814 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
815 if (UNTAG_Bool(REGB1
)) {
817 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
818 if (UNTAG_Bool(REGB2
)) {
819 REGB2
= TAG_Bool(false);
822 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
826 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
827 if (UNTAG_Bool(REGB1
)) {
828 fra
.me
.REG
[3] = fra
.me
.REG
[5];
831 /* ../lib/standard/collection/array.nit:274 */
833 /* ../lib/standard/kernel.nit:235 */
834 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
835 /* ../lib/standard/collection/array.nit:274 */
838 /* ../lib/standard/collection/array.nit:272 */
843 /* mmloader.nit:168 */
845 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
847 fra
.me
.REG
[2] = BOX_NativeString("Error: No ressource found for module ");
849 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
850 once_value_4
= fra
.me
.REG
[2];
851 register_static_object(&once_value_4
);
852 } else fra
.me
.REG
[2] = once_value_4
;
853 fra
.me
.REG
[2] = fra
.me
.REG
[2];
854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
855 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
858 fra
.me
.REG
[1] = BOX_NativeString(".");
860 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
861 once_value_5
= fra
.me
.REG
[1];
862 register_static_object(&once_value_5
);
863 } else fra
.me
.REG
[1] = once_value_5
;
864 fra
.me
.REG
[1] = fra
.me
.REG
[1];
865 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
866 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
867 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[4]);
868 /* mmloader.nit:169 */
869 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 169);
871 stack_frame_head
= fra
.me
.prev
;
872 return fra
.me
.REG
[3];
874 val_t
mmloader___ToolContext___directory_for(val_t p0
, val_t p1
){
875 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
879 fra
.me
.file
= LOCATE_mmloader
;
881 fra
.me
.meth
= LOCATE_mmloader___ToolContext___directory_for
;
882 fra
.me
.has_broke
= 0;
884 fra
.me
.nitni_local_ref_head
= NULL
;
885 fra
.me
.REG
[0] = NIT_NULL
;
886 fra
.me
.REG
[1] = NIT_NULL
;
887 fra
.me
.REG
[2] = NIT_NULL
;
888 fra
.me
.REG
[3] = NIT_NULL
;
891 /* mmloader.nit:175 */
892 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
893 if (UNTAG_Bool(REGB0
)) {
895 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 175);
897 fra
.me
.REG
[2] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
898 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
899 if (UNTAG_Bool(REGB0
)) {
900 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
901 if (UNTAG_Bool(REGB0
)) {
903 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 175);
905 fra
.me
.REG
[2] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
906 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
909 /* mmloader.nit:176 */
910 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
911 fra
.me
.REG
[3] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra
.me
.REG
[3], fra
.me
.REG
[1], NIT_NULL
);
912 /* mmloader.nit:177 */
913 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
914 if (UNTAG_Bool(REGB0
)) {
916 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 177);
918 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
919 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
920 /* mmloader.nit:178 */
921 fra
.me
.REG
[2] = fra
.me
.REG
[3];
924 stack_frame_head
= fra
.me
.prev
;
925 return fra
.me
.REG
[2];
927 void mmloader___ToolContext___register_loader(val_t p0
, val_t p1
){
928 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
932 fra
.me
.file
= LOCATE_mmloader
;
934 fra
.me
.meth
= LOCATE_mmloader___ToolContext___register_loader
;
935 fra
.me
.has_broke
= 0;
937 fra
.me
.nitni_local_ref_head
= NULL
;
938 fra
.me
.REG
[0] = NIT_NULL
;
939 fra
.me
.REG
[1] = NIT_NULL
;
942 /* mmloader.nit:185 */
943 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0])!=NIT_NULL
);
944 if (UNTAG_Bool(REGB0
)) {
946 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader
, 185);
948 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0]);
949 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
950 stack_frame_head
= fra
.me
.prev
;
953 val_t
mmloader___ModuleLoader___file_type(val_t p0
){
954 struct {struct stack_frame_t me
;} fra
;
956 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
957 fra
.me
.file
= LOCATE_mmloader
;
959 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___file_type
;
960 fra
.me
.has_broke
= 0;
962 fra
.me
.nitni_local_ref_head
= NULL
;
963 /* mmloader.nit:193 */
964 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 193);
965 stack_frame_head
= fra
.me
.prev
;
968 val_t
mmloader___ModuleLoader___try_to_load_dir(val_t p0
, val_t p1
, val_t p2
){
969 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
972 static val_t once_value_1
; /* Once value */
973 static val_t once_value_2
; /* Once value */
974 static val_t once_value_3
; /* Once value */
975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
976 fra
.me
.file
= LOCATE_mmloader
;
978 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___try_to_load_dir
;
979 fra
.me
.has_broke
= 0;
981 fra
.me
.nitni_local_ref_head
= NULL
;
982 fra
.me
.REG
[0] = NIT_NULL
;
983 fra
.me
.REG
[1] = NIT_NULL
;
984 fra
.me
.REG
[2] = NIT_NULL
;
985 fra
.me
.REG
[3] = NIT_NULL
;
989 /* mmloader.nit:199 */
991 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
993 fra
.me
.REG
[3] = BOX_NativeString("");
995 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
996 once_value_1
= fra
.me
.REG
[3];
997 register_static_object(&once_value_1
);
998 } else fra
.me
.REG
[3] = once_value_1
;
999 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1001 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1003 if (!once_value_2
) {
1004 fra
.me
.REG
[3] = BOX_NativeString("/");
1006 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1007 once_value_2
= fra
.me
.REG
[3];
1008 register_static_object(&once_value_2
);
1009 } else fra
.me
.REG
[3] = once_value_2
;
1010 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1012 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1014 if (!once_value_3
) {
1015 fra
.me
.REG
[3] = BOX_NativeString("");
1017 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1018 once_value_3
= fra
.me
.REG
[3];
1019 register_static_object(&once_value_3
);
1020 } else fra
.me
.REG
[3] = once_value_3
;
1021 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1023 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1024 /* mmloader.nit:200 */
1025 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1026 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1027 if (UNTAG_Bool(REGB0
)) {
1028 fra
.me
.REG
[3] = NIT_NULL
;
1031 /* mmloader.nit:202 */
1032 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1033 fra
.me
.REG
[2] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1034 /* mmloader.nit:203 */
1035 fra
.me
.REG
[3] = fra
.me
.REG
[2];
1038 stack_frame_head
= fra
.me
.prev
;
1039 return fra
.me
.REG
[3];
1041 val_t
mmloader___ModuleLoader___can_handle(val_t p0
, val_t p1
, val_t p2
){
1042 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1046 static val_t once_value_1
; /* Once value */
1047 static val_t once_value_2
; /* Once value */
1048 static val_t once_value_3
; /* Once value */
1049 static val_t once_value_4
; /* Once value */
1050 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1051 fra
.me
.file
= LOCATE_mmloader
;
1053 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___can_handle
;
1054 fra
.me
.has_broke
= 0;
1055 fra
.me
.REG_size
= 5;
1056 fra
.me
.nitni_local_ref_head
= NULL
;
1057 fra
.me
.REG
[0] = NIT_NULL
;
1058 fra
.me
.REG
[1] = NIT_NULL
;
1059 fra
.me
.REG
[2] = NIT_NULL
;
1060 fra
.me
.REG
[3] = NIT_NULL
;
1061 fra
.me
.REG
[4] = NIT_NULL
;
1065 /* mmloader.nit:210 */
1067 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1068 if (!once_value_1
) {
1069 fra
.me
.REG
[4] = BOX_NativeString("");
1071 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1072 once_value_1
= fra
.me
.REG
[4];
1073 register_static_object(&once_value_1
);
1074 } else fra
.me
.REG
[4] = once_value_1
;
1075 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1077 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1079 if (!once_value_2
) {
1080 fra
.me
.REG
[2] = BOX_NativeString("/");
1082 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
1083 once_value_2
= fra
.me
.REG
[2];
1084 register_static_object(&once_value_2
);
1085 } else fra
.me
.REG
[2] = once_value_2
;
1086 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1088 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1090 if (!once_value_3
) {
1091 fra
.me
.REG
[1] = BOX_NativeString(".");
1093 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
1094 once_value_3
= fra
.me
.REG
[1];
1095 register_static_object(&once_value_3
);
1096 } else fra
.me
.REG
[1] = once_value_3
;
1097 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1099 fra
.me
.REG
[0] = CALL_mmloader___ModuleLoader___file_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
1101 if (!once_value_4
) {
1102 fra
.me
.REG
[0] = BOX_NativeString("");
1104 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1105 once_value_4
= fra
.me
.REG
[0];
1106 register_static_object(&once_value_4
);
1107 } else fra
.me
.REG
[0] = once_value_4
;
1108 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
1110 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1111 /* mmloader.nit:211 */
1112 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1113 if (UNTAG_Bool(REGB0
)) {
1114 REGB0
= TAG_Bool(true);
1117 /* mmloader.nit:212 */
1118 REGB1
= TAG_Bool(false);
1122 stack_frame_head
= fra
.me
.prev
;
1125 val_t
mmloader___ModuleLoader___load_and_process_module(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
1126 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1129 static val_t once_value_1
; /* Once value */
1130 static val_t once_value_2
; /* Once value */
1131 static val_t once_value_3
; /* Once value */
1132 static val_t once_value_4
; /* Once value */
1133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1134 fra
.me
.file
= LOCATE_mmloader
;
1136 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___load_and_process_module
;
1137 fra
.me
.has_broke
= 0;
1138 fra
.me
.REG_size
= 6;
1139 fra
.me
.nitni_local_ref_head
= NULL
;
1140 fra
.me
.REG
[0] = NIT_NULL
;
1141 fra
.me
.REG
[1] = NIT_NULL
;
1142 fra
.me
.REG
[2] = NIT_NULL
;
1143 fra
.me
.REG
[3] = NIT_NULL
;
1144 fra
.me
.REG
[4] = NIT_NULL
;
1145 fra
.me
.REG
[5] = NIT_NULL
;
1150 /* mmloader.nit:219 */
1152 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1153 if (!once_value_1
) {
1154 fra
.me
.REG
[5] = BOX_NativeString("");
1156 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1157 once_value_1
= fra
.me
.REG
[5];
1158 register_static_object(&once_value_1
);
1159 } else fra
.me
.REG
[5] = once_value_1
;
1160 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1162 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1164 if (!once_value_2
) {
1165 fra
.me
.REG
[5] = BOX_NativeString("/");
1167 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1168 once_value_2
= fra
.me
.REG
[5];
1169 register_static_object(&once_value_2
);
1170 } else fra
.me
.REG
[5] = once_value_2
;
1171 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1173 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1175 if (!once_value_3
) {
1176 fra
.me
.REG
[5] = BOX_NativeString(".");
1178 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1179 once_value_3
= fra
.me
.REG
[5];
1180 register_static_object(&once_value_3
);
1181 } else fra
.me
.REG
[5] = once_value_3
;
1182 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1184 fra
.me
.REG
[5] = CALL_mmloader___ModuleLoader___file_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1186 if (!once_value_4
) {
1187 fra
.me
.REG
[5] = BOX_NativeString("");
1189 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1190 once_value_4
= fra
.me
.REG
[5];
1191 register_static_object(&once_value_4
);
1192 } else fra
.me
.REG
[5] = once_value_4
;
1193 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1195 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1196 fra
.me
.REG
[4] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1197 /* mmloader.nit:220 */
1198 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]);
1199 /* mmloader.nit:221 */
1200 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_only_parse(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1201 fra
.me
.REG
[3] = CALL_opts___Option___value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1202 REGB0
= TAG_Bool(!UNTAG_Bool(fra
.me
.REG
[3]));
1203 if (UNTAG_Bool(REGB0
)) {
1204 CALL_mmloader___ModuleLoader___process_metamodel(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1206 /* mmloader.nit:222 */
1209 stack_frame_head
= fra
.me
.prev
;
1210 return fra
.me
.REG
[4];
1212 val_t
mmloader___ModuleLoader___load_module(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1213 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1217 static val_t once_value_1
; /* Once value */
1218 static val_t once_value_2
; /* Once value */
1219 static val_t once_value_3
; /* Once value */
1220 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1221 fra
.me
.file
= LOCATE_mmloader
;
1223 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___load_module
;
1224 fra
.me
.has_broke
= 0;
1225 fra
.me
.REG_size
= 8;
1226 fra
.me
.nitni_local_ref_head
= NULL
;
1227 fra
.me
.REG
[0] = NIT_NULL
;
1228 fra
.me
.REG
[1] = NIT_NULL
;
1229 fra
.me
.REG
[2] = NIT_NULL
;
1230 fra
.me
.REG
[3] = NIT_NULL
;
1231 fra
.me
.REG
[4] = NIT_NULL
;
1232 fra
.me
.REG
[5] = NIT_NULL
;
1233 fra
.me
.REG
[6] = NIT_NULL
;
1234 fra
.me
.REG
[7] = NIT_NULL
;
1240 /* mmloader.nit:229 */
1241 if (!once_value_1
) {
1242 fra
.me
.REG
[5] = BOX_NativeString("-");
1244 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1245 once_value_1
= fra
.me
.REG
[5];
1246 register_static_object(&once_value_1
);
1247 } else fra
.me
.REG
[5] = once_value_1
;
1248 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1249 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[5]));
1250 if (UNTAG_Bool(REGB0
)) {
1252 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1255 if (UNTAG_Bool(REGB0
)) {
1256 /* mmloader.nit:230 */
1257 fra
.me
.REG
[5] = CALL_standard___file___Object___stdin(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1259 /* mmloader.nit:232 */
1260 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1261 fra
.me
.REG
[6] = NEW_IFStream_standard___file___IFStream___open(fra
.me
.REG
[6]);
1262 fra
.me
.REG
[5] = fra
.me
.REG
[6];
1264 /* mmloader.nit:235 */
1265 REGB0
= CALL_standard___stream___IStream___eof(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1266 if (UNTAG_Bool(REGB0
)) {
1267 /* mmloader.nit:236 */
1269 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1270 if (!once_value_2
) {
1271 fra
.me
.REG
[7] = BOX_NativeString("Error: Problem in opening file ");
1272 REGB0
= TAG_Int(31);
1273 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1274 once_value_2
= fra
.me
.REG
[7];
1275 register_static_object(&once_value_2
);
1276 } else fra
.me
.REG
[7] = once_value_2
;
1277 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
1280 if (!once_value_3
) {
1281 fra
.me
.REG
[7] = BOX_NativeString("");
1283 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1284 once_value_3
= fra
.me
.REG
[7];
1285 register_static_object(&once_value_3
);
1286 } else fra
.me
.REG
[7] = once_value_3
;
1287 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1288 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1289 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1290 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[6]);
1292 /* mmloader.nit:238 */
1293 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]);
1294 /* mmloader.nit:239 */
1295 fra
.me
.REG
[0] = CALL_standard___file___Object___stdin(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1296 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[0]));
1297 if (UNTAG_Bool(REGB0
)) {
1299 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
1302 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1303 if (UNTAG_Bool(REGB0
)) {
1304 CALL_standard___stream___IOS___close(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1306 /* mmloader.nit:240 */
1309 stack_frame_head
= fra
.me
.prev
;
1310 return fra
.me
.REG
[3];
1312 val_t
mmloader___ModuleLoader___parse_file(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, val_t p5
){
1313 struct {struct stack_frame_t me
;} fra
;
1315 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1316 fra
.me
.file
= LOCATE_mmloader
;
1318 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___parse_file
;
1319 fra
.me
.has_broke
= 0;
1320 fra
.me
.REG_size
= 0;
1321 fra
.me
.nitni_local_ref_head
= NULL
;
1322 /* mmloader.nit:243 */
1323 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 243);
1324 stack_frame_head
= fra
.me
.prev
;
1327 void mmloader___ModuleLoader___process_metamodel(val_t p0
, val_t p1
, val_t p2
){
1328 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1331 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1332 fra
.me
.file
= LOCATE_mmloader
;
1334 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___process_metamodel
;
1335 fra
.me
.has_broke
= 0;
1336 fra
.me
.REG_size
= 2;
1337 fra
.me
.nitni_local_ref_head
= NULL
;
1338 fra
.me
.REG
[0] = NIT_NULL
;
1339 fra
.me
.REG
[1] = NIT_NULL
;
1342 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*/;
1343 if (UNTAG_Bool(REGB0
)) {
1345 nit_abort("Cast failed", NULL
, LOCATE_mmloader
, 0);
1347 /* mmloader.nit:246 */
1348 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 246);
1349 stack_frame_head
= fra
.me
.prev
;