1 /* This C file is generated by NIT to compile module mmloader. */
2 #include "mmloader._sep.h"
3 static const char LOCATE_mmloader___ToolContext___paths
[] = "mmloader::ToolContext::paths";
4 val_t
mmloader___ToolContext___paths(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_mmloader
;
11 fra
.me
.meth
= LOCATE_mmloader___ToolContext___paths
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
18 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____paths(fra
.me
.REG
[0])!=NIT_NULL
);
19 if (UNTAG_Bool(REGB0
)) {
21 nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader
, 29);
23 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____paths(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
27 static const char LOCATE_mmloader___ToolContext___opt_path
[] = "mmloader::ToolContext::opt_path";
28 val_t
mmloader___ToolContext___opt_path(val_t p0
){
29 struct {struct stack_frame_t me
;} fra
;
32 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
33 fra
.me
.file
= LOCATE_mmloader
;
35 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_path
;
38 fra
.me
.nitni_local_ref_head
= NULL
;
39 fra
.me
.REG
[0] = NIT_NULL
;
42 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra
.me
.REG
[0])!=NIT_NULL
);
43 if (UNTAG_Bool(REGB0
)) {
45 nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader
, 35);
47 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_path(fra
.me
.REG
[0]);
48 stack_frame_head
= fra
.me
.prev
;
51 static const char LOCATE_mmloader___ToolContext___opt_only_metamodel
[] = "mmloader::ToolContext::opt_only_metamodel";
52 val_t
mmloader___ToolContext___opt_only_metamodel(val_t p0
){
53 struct {struct stack_frame_t me
;} fra
;
56 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
57 fra
.me
.file
= LOCATE_mmloader
;
59 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_only_metamodel
;
62 fra
.me
.nitni_local_ref_head
= NULL
;
63 fra
.me
.REG
[0] = NIT_NULL
;
66 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra
.me
.REG
[0])!=NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
69 nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader
, 38);
71 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra
.me
.REG
[0]);
72 stack_frame_head
= fra
.me
.prev
;
75 static const char LOCATE_mmloader___ToolContext___opt_only_parse
[] = "mmloader::ToolContext::opt_only_parse";
76 val_t
mmloader___ToolContext___opt_only_parse(val_t p0
){
77 struct {struct stack_frame_t me
;} fra
;
80 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
81 fra
.me
.file
= LOCATE_mmloader
;
83 fra
.me
.meth
= LOCATE_mmloader___ToolContext___opt_only_parse
;
86 fra
.me
.nitni_local_ref_head
= NULL
;
87 fra
.me
.REG
[0] = NIT_NULL
;
90 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra
.me
.REG
[0])!=NIT_NULL
);
91 if (UNTAG_Bool(REGB0
)) {
93 nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader
, 41);
95 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra
.me
.REG
[0]);
96 stack_frame_head
= fra
.me
.prev
;
99 static const char LOCATE_mmloader___ToolContext___init
[] = "mmloader::ToolContext::(toolcontext::ToolContext::init)";
100 void mmloader___ToolContext___init(val_t p0
, int* init_table
){
101 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_toolcontext___ToolContext
].i
;
102 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
105 if (init_table
[itpos0
]) return;
106 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
107 fra
.me
.file
= LOCATE_mmloader
;
109 fra
.me
.meth
= LOCATE_mmloader___ToolContext___init
;
110 fra
.me
.has_broke
= 0;
112 fra
.me
.nitni_local_ref_head
= NULL
;
113 fra
.me
.REG
[0] = NIT_NULL
;
114 fra
.me
.REG
[1] = NIT_NULL
;
115 fra
.me
.REG
[2] = NIT_NULL
;
116 fra
.me
.REG
[3] = NIT_NULL
;
118 /* mmloader.nit:44 */
119 fra
.me
.REG
[1] = fra
.me
.REG
[0];
120 /* mmloader.nit:46 */
121 CALL_SUPER_mmloader___ToolContext___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
122 /* mmloader.nit:47 */
123 fra
.me
.REG
[0] = CALL_toolcontext___ToolContext___option_context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
125 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
126 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_path(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
128 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_only_parse(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
130 fra
.me
.REG
[1] = CALL_mmloader___ToolContext___opt_only_metamodel(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
132 CALL_opts___OptionContext___add_option(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
133 stack_frame_head
= fra
.me
.prev
;
134 init_table
[itpos0
] = 1;
137 static const char LOCATE_mmloader___ToolContext___process_options
[] = "mmloader::ToolContext::(toolcontext::ToolContext::process_options)";
138 void mmloader___ToolContext___process_options(val_t p0
){
139 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
142 static val_t once_value_1
; /* Once value */
143 static val_t once_value_2
; /* Once value */
144 static val_t once_value_3
; /* Once value */
145 static val_t once_value_4
; /* Once value */
146 static val_t once_value_5
; /* Once value */
147 static val_t once_value_6
; /* Once value */
148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
149 fra
.me
.file
= LOCATE_mmloader
;
151 fra
.me
.meth
= LOCATE_mmloader___ToolContext___process_options
;
152 fra
.me
.has_broke
= 0;
154 fra
.me
.nitni_local_ref_head
= NULL
;
155 fra
.me
.REG
[0] = NIT_NULL
;
156 fra
.me
.REG
[1] = NIT_NULL
;
157 fra
.me
.REG
[2] = NIT_NULL
;
158 fra
.me
.REG
[3] = NIT_NULL
;
160 /* mmloader.nit:50 */
161 fra
.me
.REG
[1] = fra
.me
.REG
[0];
162 /* mmloader.nit:53 */
163 CALL_SUPER_mmloader___ToolContext___process_options(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
164 /* mmloader.nit:56 */
165 fra
.me
.REG
[0] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
166 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___opt_path(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 fra
.me
.REG
[2] = CALL_opts___Option___value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
168 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
169 /* mmloader.nit:58 */
171 fra
.me
.REG
[2] = BOX_NativeString("NIT_PATH");
173 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
174 once_value_1
= fra
.me
.REG
[2];
175 register_static_object(&once_value_1
);
176 } else fra
.me
.REG
[2] = once_value_1
;
177 fra
.me
.REG
[2] = fra
.me
.REG
[2];
178 fra
.me
.REG
[2] = CALL_standard___environ___String___environ(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
179 /* mmloader.nit:59 */
180 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
181 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
182 if (UNTAG_Bool(REGB0
)) {
183 /* mmloader.nit:60 */
184 fra
.me
.REG
[0] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
185 REGB0
= TAG_Char(':');
186 fra
.me
.REG
[3] = CALL_standard___string_search___String___split_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
187 CALL_standard___collection___abstract_collection___Sequence___append(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
189 /* mmloader.nit:63 */
191 fra
.me
.REG
[3] = BOX_NativeString("NIT_DIR");
193 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
194 once_value_2
= fra
.me
.REG
[3];
195 register_static_object(&once_value_2
);
196 } else fra
.me
.REG
[3] = once_value_2
;
197 fra
.me
.REG
[3] = fra
.me
.REG
[3];
198 fra
.me
.REG
[3] = CALL_standard___environ___String___environ(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
199 fra
.me
.REG
[2] = fra
.me
.REG
[3];
200 /* mmloader.nit:64 */
201 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
202 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
203 if (UNTAG_Bool(REGB0
)) {
204 /* mmloader.nit:65 */
206 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
208 fra
.me
.REG
[0] = BOX_NativeString("");
210 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
211 once_value_3
= fra
.me
.REG
[0];
212 register_static_object(&once_value_3
);
213 } else fra
.me
.REG
[0] = once_value_3
;
214 fra
.me
.REG
[0] = fra
.me
.REG
[0];
215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
218 fra
.me
.REG
[2] = BOX_NativeString("/lib");
220 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
221 once_value_4
= fra
.me
.REG
[2];
222 register_static_object(&once_value_4
);
223 } else fra
.me
.REG
[2] = once_value_4
;
224 fra
.me
.REG
[2] = fra
.me
.REG
[2];
225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
226 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
227 /* mmloader.nit:66 */
228 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
229 if (UNTAG_Bool(REGB0
)) {
230 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
234 /* mmloader.nit:69 */
236 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
238 fra
.me
.REG
[2] = BOX_NativeString("");
240 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
241 once_value_5
= fra
.me
.REG
[2];
242 register_static_object(&once_value_5
);
243 } else fra
.me
.REG
[2] = once_value_5
;
244 fra
.me
.REG
[2] = fra
.me
.REG
[2];
245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
246 fra
.me
.REG
[2] = CALL_standard___kernel___Object___sys(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
247 fra
.me
.REG
[2] = CALL_standard___string___Sys___program_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
248 fra
.me
.REG
[2] = CALL_standard___file___String___dirname(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
251 fra
.me
.REG
[2] = BOX_NativeString("/../lib");
253 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
254 once_value_6
= fra
.me
.REG
[2];
255 register_static_object(&once_value_6
);
256 } else fra
.me
.REG
[2] = once_value_6
;
257 fra
.me
.REG
[2] = fra
.me
.REG
[2];
258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
259 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
260 /* mmloader.nit:70 */
261 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
262 if (UNTAG_Bool(REGB0
)) {
263 fra
.me
.REG
[1] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
264 fra
.me
.REG
[3] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
267 stack_frame_head
= fra
.me
.prev
;
270 static const char LOCATE_mmloader___ToolContext___try_to_load
[] = "mmloader::ToolContext::try_to_load";
271 val_t
mmloader___ToolContext___try_to_load(val_t p0
, val_t p1
, val_t p2
){
272 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
277 static val_t once_value_4
; /* Once value */
278 static val_t once_value_5
; /* Once value */
279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
280 fra
.me
.file
= LOCATE_mmloader
;
282 fra
.me
.meth
= LOCATE_mmloader___ToolContext___try_to_load
;
283 fra
.me
.has_broke
= 0;
284 fra
.me
.REG_size
= 10;
285 fra
.me
.nitni_local_ref_head
= NULL
;
286 fra
.me
.REG
[0] = NIT_NULL
;
287 fra
.me
.REG
[1] = NIT_NULL
;
288 fra
.me
.REG
[2] = NIT_NULL
;
289 fra
.me
.REG
[3] = NIT_NULL
;
290 fra
.me
.REG
[4] = NIT_NULL
;
291 fra
.me
.REG
[5] = NIT_NULL
;
292 fra
.me
.REG
[6] = NIT_NULL
;
293 fra
.me
.REG
[7] = NIT_NULL
;
294 fra
.me
.REG
[8] = NIT_NULL
;
295 fra
.me
.REG
[9] = NIT_NULL
;
299 /* mmloader.nit:79 */
300 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___modules(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
301 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
302 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
));
303 switch ((&(fra
.me
))->has_broke
) {
305 case 1: (&(fra
.me
))->has_broke
= 0; goto label3
;
307 /* mmloader.nit:85 */
308 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0])!=NIT_NULL
);
309 if (UNTAG_Bool(REGB0
)) {
311 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader
, 85);
313 fra
.me
.REG
[4] = ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0]);
314 /* ../lib/standard/collection/array.nit:269 */
316 /* ../lib/standard/collection/array.nit:270 */
317 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
318 if (UNTAG_Bool(REGB1
)) {
320 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
322 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
323 /* ../lib/standard/collection/array.nit:271 */
324 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
325 /* ../lib/standard/collection/array.nit:272 */
327 /* ../lib/standard/collection/array.nit:24 */
328 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
329 if (UNTAG_Bool(REGB1
)) {
331 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
333 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
334 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
335 if (UNTAG_Bool(REGB2
)) {
337 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
339 /* ../lib/standard/kernel.nit:235 */
340 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
341 /* ../lib/standard/collection/array.nit:272 */
342 if (UNTAG_Bool(REGB1
)) {
343 /* ../lib/standard/collection/array.nit:273 */
344 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
345 if (UNTAG_Bool(REGB1
)) {
346 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
348 /* ../lib/standard/collection/array.nit:718 */
349 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
350 /* mmloader.nit:86 */
351 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]);
352 /* mmloader.nit:87 */
353 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
354 if (UNTAG_Bool(REGB1
)) {
356 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
357 if (UNTAG_Bool(REGB2
)) {
361 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
365 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
366 if (UNTAG_Bool(REGB1
)) {
367 /* mmloader.nit:88 */
368 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]);
369 /* mmloader.nit:89 */
370 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
371 if (UNTAG_Bool(REGB1
)) {
373 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
374 if (UNTAG_Bool(REGB2
)) {
378 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
382 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
383 if (UNTAG_Bool(REGB1
)) {
384 /* mmloader.nit:90 */
385 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
386 if (UNTAG_Bool(REGB1
)) {
387 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 90);
389 CALL_metamodel___abstractmetamodel___MMDirectory___owner__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
390 /* mmloader.nit:91 */
391 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
392 /* mmloader.nit:92 */
393 fra
.me
.REG
[3] = fra
.me
.REG
[8];
397 /* mmloader.nit:96 */
398 REGB1
= CALL_mmloader___ModuleLoader___can_handle(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1], fra
.me
.REG
[2]);
399 if (UNTAG_Bool(REGB1
)) {
400 /* mmloader.nit:97 */
401 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
402 /* mmloader.nit:98 */
403 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
404 if (UNTAG_Bool(REGB1
)) {
406 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 98);
408 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
409 REGB1
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
410 if (UNTAG_Bool(REGB1
)) {
411 /* mmloader.nit:100 */
413 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
415 fra
.me
.REG
[9] = BOX_NativeString("Error: Dependency loop for module ");
417 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
418 once_value_4
= fra
.me
.REG
[9];
419 register_static_object(&once_value_4
);
420 } else fra
.me
.REG
[9] = once_value_4
;
421 fra
.me
.REG
[9] = fra
.me
.REG
[9];
422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
423 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
426 fra
.me
.REG
[9] = BOX_NativeString("");
428 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
429 once_value_5
= fra
.me
.REG
[9];
430 register_static_object(&once_value_5
);
431 } else fra
.me
.REG
[9] = once_value_5
;
432 fra
.me
.REG
[9] = fra
.me
.REG
[9];
433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
434 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
435 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[7]);
437 /* mmloader.nit:102 */
438 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
439 if (UNTAG_Bool(REGB1
)) {
441 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 102);
443 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
445 /* mmloader.nit:103 */
446 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]);
447 /* mmloader.nit:104 */
448 REGB1
= TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0])!=NIT_NULL
);
449 if (UNTAG_Bool(REGB1
)) {
451 nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader
, 104);
453 fra
.me
.REG
[7] = ATTR_mmloader___ToolContext____processing_modules(fra
.me
.REG
[0]);
454 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
455 /* mmloader.nit:106 */
456 CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
457 /* mmloader.nit:107 */
458 fra
.me
.REG
[3] = fra
.me
.REG
[6];
461 /* ../lib/standard/collection/array.nit:274 */
463 /* ../lib/standard/kernel.nit:238 */
464 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
465 /* ../lib/standard/collection/array.nit:274 */
468 /* ../lib/standard/collection/array.nit:272 */
473 /* mmloader.nit:110 */
474 fra
.me
.REG
[3] = NIT_NULL
;
477 stack_frame_head
= fra
.me
.prev
;
478 return fra
.me
.REG
[3];
480 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
){
481 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
486 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
487 fra
.me
.file
= LOCATE_mmloader
;
489 fra
.me
.meth
= LOCATE_mmloader___ToolContext___try_to_load
;
490 fra
.me
.has_broke
= 0;
492 fra
.me
.nitni_local_ref_head
= NULL
;
493 fra
.me
.REG
[0] = NIT_NULL
;
494 fra
.me
.REG
[1] = NIT_NULL
;
495 fra
.me
.closure_ctx
= closctx_param
;
496 fra
.me
.closure_funs
= CREG
;
499 /* mmloader.nit:80 */
500 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
501 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[1]));
502 if (UNTAG_Bool(REGB0
)) {
504 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[1]);
507 if (UNTAG_Bool(REGB0
)) {
508 closctx
->REG
[3] = fra
.me
.REG
[0];
509 closctx
->has_broke
= 1;
513 stack_frame_head
= fra
.me
.prev
;
516 static const char LOCATE_mmloader___ToolContext___get_module_from_filename
[] = "mmloader::ToolContext::get_module_from_filename";
517 val_t
mmloader___ToolContext___get_module_from_filename(val_t p0
, val_t p1
){
518 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
522 static val_t once_value_1
; /* Once value */
523 static val_t once_value_3
; /* Once value */
524 static val_t once_value_4
; /* Once value */
525 static val_t once_value_5
; /* Once value */
526 static val_t once_value_6
; /* Once value */
527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
528 fra
.me
.file
= LOCATE_mmloader
;
530 fra
.me
.meth
= LOCATE_mmloader___ToolContext___get_module_from_filename
;
531 fra
.me
.has_broke
= 0;
533 fra
.me
.nitni_local_ref_head
= NULL
;
534 fra
.me
.REG
[0] = NIT_NULL
;
535 fra
.me
.REG
[1] = NIT_NULL
;
536 fra
.me
.REG
[2] = NIT_NULL
;
537 fra
.me
.REG
[3] = NIT_NULL
;
538 fra
.me
.REG
[4] = NIT_NULL
;
539 fra
.me
.REG
[5] = NIT_NULL
;
540 fra
.me
.REG
[6] = NIT_NULL
;
543 /* mmloader.nit:122 */
544 fra
.me
.REG
[2] = CALL_standard___file___String___dirname(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
545 /* mmloader.nit:123 */
547 fra
.me
.REG
[3] = BOX_NativeString(".nit");
549 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
550 once_value_1
= fra
.me
.REG
[3];
551 register_static_object(&once_value_1
);
552 } else fra
.me
.REG
[3] = once_value_1
;
553 fra
.me
.REG
[3] = fra
.me
.REG
[3];
554 fra
.me
.REG
[3] = CALL_standard___file___String___basename(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
555 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
556 /* mmloader.nit:125 */
557 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___directory_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
558 /* mmloader.nit:127 */
559 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
560 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[1]));
561 if (UNTAG_Bool(REGB0
)) {
563 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
566 if (UNTAG_Bool(REGB0
)) {
567 /* mmloader.nit:130 */
568 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]);
569 /* mmloader.nit:131 */
570 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
571 if (UNTAG_Bool(REGB0
)) {
573 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
574 if (UNTAG_Bool(REGB1
)) {
578 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
582 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
583 if (UNTAG_Bool(REGB0
)) {
586 /* mmloader.nit:134 */
587 fra
.me
.REG
[5] = CALL_mmloader___ToolContext___get_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], NIT_NULL
);
588 fra
.me
.REG
[4] = fra
.me
.REG
[5];
591 /* mmloader.nit:137 */
592 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
593 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
594 if (UNTAG_Bool(REGB0
)) {
595 /* mmloader.nit:138 */
597 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
599 fra
.me
.REG
[6] = BOX_NativeString("Error: File ");
601 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
602 once_value_3
= fra
.me
.REG
[6];
603 register_static_object(&once_value_3
);
604 } else fra
.me
.REG
[6] = once_value_3
;
605 fra
.me
.REG
[6] = fra
.me
.REG
[6];
606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
609 fra
.me
.REG
[6] = BOX_NativeString(" not found.");
611 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
612 once_value_4
= fra
.me
.REG
[6];
613 register_static_object(&once_value_4
);
614 } else fra
.me
.REG
[6] = once_value_4
;
615 fra
.me
.REG
[6] = fra
.me
.REG
[6];
616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
617 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
618 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[5]);
619 /* mmloader.nit:139 */
620 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 139);
622 /* mmloader.nit:143 */
623 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]);
624 /* mmloader.nit:144 */
625 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
626 if (UNTAG_Bool(REGB0
)) {
628 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
629 if (UNTAG_Bool(REGB1
)) {
633 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
637 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
638 if (UNTAG_Bool(REGB0
)) {
639 fra
.me
.REG
[4] = fra
.me
.REG
[2];
642 /* mmloader.nit:146 */
644 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
646 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
648 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
649 once_value_5
= fra
.me
.REG
[3];
650 register_static_object(&once_value_5
);
651 } else fra
.me
.REG
[3] = once_value_5
;
652 fra
.me
.REG
[3] = fra
.me
.REG
[3];
653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
654 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
656 fra
.me
.REG
[1] = BOX_NativeString(" is not a NIT source module.");
658 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
659 once_value_6
= fra
.me
.REG
[1];
660 register_static_object(&once_value_6
);
661 } else fra
.me
.REG
[1] = once_value_6
;
662 fra
.me
.REG
[1] = fra
.me
.REG
[1];
663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
664 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
665 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[2]);
666 /* mmloader.nit:147 */
667 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 147);
669 stack_frame_head
= fra
.me
.prev
;
670 return fra
.me
.REG
[4];
672 static const char LOCATE_mmloader___ToolContext___get_module
[] = "mmloader::ToolContext::get_module";
673 val_t
mmloader___ToolContext___get_module(val_t p0
, val_t p1
, val_t p2
){
674 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
679 static val_t once_value_4
; /* Once value */
680 static val_t once_value_5
; /* Once value */
681 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
682 fra
.me
.file
= LOCATE_mmloader
;
684 fra
.me
.meth
= LOCATE_mmloader___ToolContext___get_module
;
685 fra
.me
.has_broke
= 0;
687 fra
.me
.nitni_local_ref_head
= NULL
;
688 fra
.me
.REG
[0] = NIT_NULL
;
689 fra
.me
.REG
[1] = NIT_NULL
;
690 fra
.me
.REG
[2] = NIT_NULL
;
691 fra
.me
.REG
[3] = NIT_NULL
;
692 fra
.me
.REG
[4] = NIT_NULL
;
693 fra
.me
.REG
[5] = NIT_NULL
;
697 /* mmloader.nit:154 */
698 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
699 if (UNTAG_Bool(REGB0
)) {
701 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
702 if (UNTAG_Bool(REGB1
)) {
706 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
710 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
711 if (UNTAG_Bool(REGB0
)) {
712 /* mmloader.nit:155 */
713 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
714 if (UNTAG_Bool(REGB0
)) {
715 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 155);
717 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
718 /* mmloader.nit:156 */
720 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
721 if (UNTAG_Bool(REGB0
)) {
723 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
724 if (UNTAG_Bool(REGB1
)) {
728 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
732 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
733 if (UNTAG_Bool(REGB0
)) {
734 /* mmloader.nit:157 */
735 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]);
736 /* mmloader.nit:158 */
737 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
738 if (UNTAG_Bool(REGB0
)) {
740 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
741 if (UNTAG_Bool(REGB1
)) {
745 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
749 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
750 if (UNTAG_Bool(REGB0
)) {
753 /* mmloader.nit:159 */
754 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
755 if (UNTAG_Bool(REGB0
)) {
756 nit_abort("Reciever is null", NULL
, LOCATE_mmloader
, 159);
758 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMDirectory___parent(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
759 fra
.me
.REG
[2] = fra
.me
.REG
[4];
761 /* mmloader.nit:156 */
767 /* mmloader.nit:163 */
768 fra
.me
.REG
[2] = CALL_mmloader___ToolContext___paths(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
769 /* ../lib/standard/collection/array.nit:269 */
771 /* ../lib/standard/collection/array.nit:270 */
772 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
773 if (UNTAG_Bool(REGB1
)) {
775 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
777 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
778 /* ../lib/standard/collection/array.nit:271 */
779 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
780 /* ../lib/standard/collection/array.nit:272 */
782 /* ../lib/standard/collection/array.nit:24 */
783 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
784 if (UNTAG_Bool(REGB1
)) {
786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
788 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
789 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
790 if (UNTAG_Bool(REGB2
)) {
792 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
794 /* ../lib/standard/kernel.nit:235 */
795 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
796 /* ../lib/standard/collection/array.nit:272 */
797 if (UNTAG_Bool(REGB1
)) {
798 /* ../lib/standard/collection/array.nit:273 */
799 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
800 if (UNTAG_Bool(REGB1
)) {
801 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
803 /* ../lib/standard/collection/array.nit:718 */
804 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
805 /* mmloader.nit:164 */
806 fra
.me
.REG
[5] = CALL_mmloader___ToolContext___directory_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
807 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]);
808 /* mmloader.nit:165 */
809 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
810 if (UNTAG_Bool(REGB1
)) {
812 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
813 if (UNTAG_Bool(REGB2
)) {
817 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
821 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
822 if (UNTAG_Bool(REGB1
)) {
823 fra
.me
.REG
[3] = fra
.me
.REG
[5];
826 /* ../lib/standard/collection/array.nit:274 */
828 /* ../lib/standard/kernel.nit:238 */
829 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
830 /* ../lib/standard/collection/array.nit:274 */
833 /* ../lib/standard/collection/array.nit:272 */
838 /* mmloader.nit:168 */
840 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
842 fra
.me
.REG
[2] = BOX_NativeString("Error: No ressource found for module ");
844 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
845 once_value_4
= fra
.me
.REG
[2];
846 register_static_object(&once_value_4
);
847 } else fra
.me
.REG
[2] = once_value_4
;
848 fra
.me
.REG
[2] = fra
.me
.REG
[2];
849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
850 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
853 fra
.me
.REG
[1] = BOX_NativeString(".");
855 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
856 once_value_5
= fra
.me
.REG
[1];
857 register_static_object(&once_value_5
);
858 } else fra
.me
.REG
[1] = once_value_5
;
859 fra
.me
.REG
[1] = fra
.me
.REG
[1];
860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
861 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
862 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
, fra
.me
.REG
[4]);
863 /* mmloader.nit:169 */
864 nit_abort("Aborted", NULL
, LOCATE_mmloader
, 169);
866 stack_frame_head
= fra
.me
.prev
;
867 return fra
.me
.REG
[3];
869 static const char LOCATE_mmloader___ToolContext___directory_for
[] = "mmloader::ToolContext::directory_for";
870 val_t
mmloader___ToolContext___directory_for(val_t p0
, val_t p1
){
871 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
875 fra
.me
.file
= LOCATE_mmloader
;
877 fra
.me
.meth
= LOCATE_mmloader___ToolContext___directory_for
;
878 fra
.me
.has_broke
= 0;
880 fra
.me
.nitni_local_ref_head
= NULL
;
881 fra
.me
.REG
[0] = NIT_NULL
;
882 fra
.me
.REG
[1] = NIT_NULL
;
883 fra
.me
.REG
[2] = NIT_NULL
;
884 fra
.me
.REG
[3] = NIT_NULL
;
887 /* mmloader.nit:175 */
888 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
889 if (UNTAG_Bool(REGB0
)) {
891 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 175);
893 fra
.me
.REG
[2] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
894 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
895 if (UNTAG_Bool(REGB0
)) {
896 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
897 if (UNTAG_Bool(REGB0
)) {
899 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 175);
901 fra
.me
.REG
[2] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
902 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
905 /* mmloader.nit:176 */
906 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
907 fra
.me
.REG
[3] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra
.me
.REG
[3], fra
.me
.REG
[1], NIT_NULL
);
908 /* mmloader.nit:177 */
909 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0])!=NIT_NULL
);
910 if (UNTAG_Bool(REGB0
)) {
912 nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader
, 177);
914 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____path_dirs(fra
.me
.REG
[0]);
915 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
916 /* mmloader.nit:178 */
917 fra
.me
.REG
[2] = fra
.me
.REG
[3];
920 stack_frame_head
= fra
.me
.prev
;
921 return fra
.me
.REG
[2];
923 static const char LOCATE_mmloader___ToolContext___register_loader
[] = "mmloader::ToolContext::register_loader";
924 void mmloader___ToolContext___register_loader(val_t p0
, val_t p1
){
925 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
928 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
929 fra
.me
.file
= LOCATE_mmloader
;
931 fra
.me
.meth
= LOCATE_mmloader___ToolContext___register_loader
;
932 fra
.me
.has_broke
= 0;
934 fra
.me
.nitni_local_ref_head
= NULL
;
935 fra
.me
.REG
[0] = NIT_NULL
;
936 fra
.me
.REG
[1] = NIT_NULL
;
939 /* mmloader.nit:185 */
940 REGB0
= TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0])!=NIT_NULL
);
941 if (UNTAG_Bool(REGB0
)) {
943 nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader
, 185);
945 fra
.me
.REG
[0] = ATTR_mmloader___ToolContext____loaders(fra
.me
.REG
[0]);
946 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
947 stack_frame_head
= fra
.me
.prev
;
950 static const char LOCATE_mmloader___ModuleLoader___file_type
[] = "mmloader::ModuleLoader::file_type";
951 val_t
mmloader___ModuleLoader___file_type(val_t p0
){
952 struct {struct stack_frame_t me
;} fra
;
954 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
955 fra
.me
.file
= LOCATE_mmloader
;
957 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___file_type
;
958 fra
.me
.has_broke
= 0;
960 fra
.me
.nitni_local_ref_head
= NULL
;
961 /* mmloader.nit:193 */
962 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 193);
963 stack_frame_head
= fra
.me
.prev
;
966 static const char LOCATE_mmloader___ModuleLoader___try_to_load_dir
[] = "mmloader::ModuleLoader::try_to_load_dir";
967 val_t
mmloader___ModuleLoader___try_to_load_dir(val_t p0
, val_t p1
, val_t p2
){
968 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
971 static val_t once_value_1
; /* Once value */
972 static val_t once_value_2
; /* Once value */
973 static val_t once_value_3
; /* Once value */
974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
975 fra
.me
.file
= LOCATE_mmloader
;
977 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___try_to_load_dir
;
978 fra
.me
.has_broke
= 0;
980 fra
.me
.nitni_local_ref_head
= NULL
;
981 fra
.me
.REG
[0] = NIT_NULL
;
982 fra
.me
.REG
[1] = NIT_NULL
;
983 fra
.me
.REG
[2] = NIT_NULL
;
984 fra
.me
.REG
[3] = NIT_NULL
;
988 /* mmloader.nit:199 */
990 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
992 fra
.me
.REG
[3] = BOX_NativeString("");
994 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
995 once_value_1
= fra
.me
.REG
[3];
996 register_static_object(&once_value_1
);
997 } else fra
.me
.REG
[3] = once_value_1
;
998 fra
.me
.REG
[3] = fra
.me
.REG
[3];
999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1000 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1002 if (!once_value_2
) {
1003 fra
.me
.REG
[3] = BOX_NativeString("/");
1005 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1006 once_value_2
= fra
.me
.REG
[3];
1007 register_static_object(&once_value_2
);
1008 } else fra
.me
.REG
[3] = once_value_2
;
1009 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1011 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1013 if (!once_value_3
) {
1014 fra
.me
.REG
[3] = BOX_NativeString("");
1016 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1017 once_value_3
= fra
.me
.REG
[3];
1018 register_static_object(&once_value_3
);
1019 } else fra
.me
.REG
[3] = once_value_3
;
1020 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1022 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1023 /* mmloader.nit:200 */
1024 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1025 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1026 if (UNTAG_Bool(REGB0
)) {
1027 fra
.me
.REG
[3] = NIT_NULL
;
1030 /* mmloader.nit:202 */
1031 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1032 fra
.me
.REG
[2] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1033 /* mmloader.nit:203 */
1034 fra
.me
.REG
[3] = fra
.me
.REG
[2];
1037 stack_frame_head
= fra
.me
.prev
;
1038 return fra
.me
.REG
[3];
1040 static const char LOCATE_mmloader___ModuleLoader___can_handle
[] = "mmloader::ModuleLoader::can_handle";
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(1);
1117 /* mmloader.nit:212 */
1118 REGB1
= TAG_Bool(0);
1122 stack_frame_head
= fra
.me
.prev
;
1125 static const char LOCATE_mmloader___ModuleLoader___load_and_process_module
[] = "mmloader::ModuleLoader::load_and_process_module";
1126 val_t
mmloader___ModuleLoader___load_and_process_module(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
1127 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1130 static val_t once_value_1
; /* Once value */
1131 static val_t once_value_2
; /* Once value */
1132 static val_t once_value_3
; /* Once value */
1133 static val_t once_value_4
; /* Once value */
1134 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1135 fra
.me
.file
= LOCATE_mmloader
;
1137 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___load_and_process_module
;
1138 fra
.me
.has_broke
= 0;
1139 fra
.me
.REG_size
= 6;
1140 fra
.me
.nitni_local_ref_head
= NULL
;
1141 fra
.me
.REG
[0] = NIT_NULL
;
1142 fra
.me
.REG
[1] = NIT_NULL
;
1143 fra
.me
.REG
[2] = NIT_NULL
;
1144 fra
.me
.REG
[3] = NIT_NULL
;
1145 fra
.me
.REG
[4] = NIT_NULL
;
1146 fra
.me
.REG
[5] = NIT_NULL
;
1151 /* mmloader.nit:219 */
1153 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1154 if (!once_value_1
) {
1155 fra
.me
.REG
[5] = BOX_NativeString("");
1157 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1158 once_value_1
= fra
.me
.REG
[5];
1159 register_static_object(&once_value_1
);
1160 } else fra
.me
.REG
[5] = once_value_1
;
1161 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1163 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMDirectory___path(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1165 if (!once_value_2
) {
1166 fra
.me
.REG
[5] = BOX_NativeString("/");
1168 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1169 once_value_2
= fra
.me
.REG
[5];
1170 register_static_object(&once_value_2
);
1171 } else fra
.me
.REG
[5] = once_value_2
;
1172 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1174 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1176 if (!once_value_3
) {
1177 fra
.me
.REG
[5] = BOX_NativeString(".");
1179 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1180 once_value_3
= fra
.me
.REG
[5];
1181 register_static_object(&once_value_3
);
1182 } else fra
.me
.REG
[5] = once_value_3
;
1183 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1185 fra
.me
.REG
[5] = CALL_mmloader___ModuleLoader___file_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1187 if (!once_value_4
) {
1188 fra
.me
.REG
[5] = BOX_NativeString("");
1190 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1191 once_value_4
= fra
.me
.REG
[5];
1192 register_static_object(&once_value_4
);
1193 } else fra
.me
.REG
[5] = once_value_4
;
1194 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1196 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1197 fra
.me
.REG
[4] = CALL_standard___file___String___simplify_path(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1198 /* mmloader.nit:220 */
1199 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]);
1200 /* mmloader.nit:221 */
1201 fra
.me
.REG
[3] = CALL_mmloader___ToolContext___opt_only_parse(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1202 fra
.me
.REG
[3] = CALL_opts___Option___value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1203 REGB0
= TAG_Bool(!UNTAG_Bool(fra
.me
.REG
[3]));
1204 if (UNTAG_Bool(REGB0
)) {
1205 CALL_mmloader___ModuleLoader___process_metamodel(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1207 /* mmloader.nit:222 */
1210 stack_frame_head
= fra
.me
.prev
;
1211 return fra
.me
.REG
[4];
1213 static const char LOCATE_mmloader___ModuleLoader___load_module
[] = "mmloader::ModuleLoader::load_module";
1214 val_t
mmloader___ModuleLoader___load_module(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1215 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1219 static val_t once_value_1
; /* Once value */
1220 static val_t once_value_2
; /* Once value */
1221 static val_t once_value_3
; /* Once value */
1222 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1223 fra
.me
.file
= LOCATE_mmloader
;
1225 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___load_module
;
1226 fra
.me
.has_broke
= 0;
1227 fra
.me
.REG_size
= 8;
1228 fra
.me
.nitni_local_ref_head
= NULL
;
1229 fra
.me
.REG
[0] = NIT_NULL
;
1230 fra
.me
.REG
[1] = NIT_NULL
;
1231 fra
.me
.REG
[2] = NIT_NULL
;
1232 fra
.me
.REG
[3] = NIT_NULL
;
1233 fra
.me
.REG
[4] = NIT_NULL
;
1234 fra
.me
.REG
[5] = NIT_NULL
;
1235 fra
.me
.REG
[6] = NIT_NULL
;
1236 fra
.me
.REG
[7] = NIT_NULL
;
1242 /* mmloader.nit:229 */
1243 if (!once_value_1
) {
1244 fra
.me
.REG
[5] = BOX_NativeString("-");
1246 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
1247 once_value_1
= fra
.me
.REG
[5];
1248 register_static_object(&once_value_1
);
1249 } else fra
.me
.REG
[5] = once_value_1
;
1250 fra
.me
.REG
[5] = fra
.me
.REG
[5];
1251 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[5]));
1252 if (UNTAG_Bool(REGB0
)) {
1254 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1257 if (UNTAG_Bool(REGB0
)) {
1258 /* mmloader.nit:230 */
1259 fra
.me
.REG
[5] = CALL_standard___file___Object___stdin(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1261 /* mmloader.nit:232 */
1262 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1263 fra
.me
.REG
[6] = NEW_IFStream_standard___file___IFStream___open(fra
.me
.REG
[6]);
1264 fra
.me
.REG
[5] = fra
.me
.REG
[6];
1266 /* mmloader.nit:235 */
1267 REGB0
= CALL_standard___stream___IStream___eof(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1268 if (UNTAG_Bool(REGB0
)) {
1269 /* mmloader.nit:236 */
1271 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1272 if (!once_value_2
) {
1273 fra
.me
.REG
[7] = BOX_NativeString("Error: Problem in opening file ");
1274 REGB0
= TAG_Int(31);
1275 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1276 once_value_2
= fra
.me
.REG
[7];
1277 register_static_object(&once_value_2
);
1278 } else fra
.me
.REG
[7] = once_value_2
;
1279 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
1282 if (!once_value_3
) {
1283 fra
.me
.REG
[7] = BOX_NativeString("");
1285 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
1286 once_value_3
= fra
.me
.REG
[7];
1287 register_static_object(&once_value_3
);
1288 } else fra
.me
.REG
[7] = once_value_3
;
1289 fra
.me
.REG
[7] = fra
.me
.REG
[7];
1290 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1291 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1292 CALL_toolcontext___ToolContext___fatal_error(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[6]);
1294 /* mmloader.nit:238 */
1295 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]);
1296 /* mmloader.nit:239 */
1297 fra
.me
.REG
[0] = CALL_standard___file___Object___stdin(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1298 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[0]));
1299 if (UNTAG_Bool(REGB0
)) {
1301 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
1304 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1305 if (UNTAG_Bool(REGB0
)) {
1306 CALL_standard___stream___IOS___close(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1308 /* mmloader.nit:240 */
1311 stack_frame_head
= fra
.me
.prev
;
1312 return fra
.me
.REG
[3];
1314 static const char LOCATE_mmloader___ModuleLoader___parse_file
[] = "mmloader::ModuleLoader::parse_file";
1315 val_t
mmloader___ModuleLoader___parse_file(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, val_t p5
){
1316 struct {struct stack_frame_t me
;} fra
;
1318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1319 fra
.me
.file
= LOCATE_mmloader
;
1321 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___parse_file
;
1322 fra
.me
.has_broke
= 0;
1323 fra
.me
.REG_size
= 0;
1324 fra
.me
.nitni_local_ref_head
= NULL
;
1325 /* mmloader.nit:243 */
1326 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 243);
1327 stack_frame_head
= fra
.me
.prev
;
1330 static const char LOCATE_mmloader___ModuleLoader___process_metamodel
[] = "mmloader::ModuleLoader::process_metamodel";
1331 void mmloader___ModuleLoader___process_metamodel(val_t p0
, val_t p1
, val_t p2
){
1332 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1335 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1336 fra
.me
.file
= LOCATE_mmloader
;
1338 fra
.me
.meth
= LOCATE_mmloader___ModuleLoader___process_metamodel
;
1339 fra
.me
.has_broke
= 0;
1340 fra
.me
.REG_size
= 2;
1341 fra
.me
.nitni_local_ref_head
= NULL
;
1342 fra
.me
.REG
[0] = NIT_NULL
;
1343 fra
.me
.REG
[1] = NIT_NULL
;
1346 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*/;
1347 if (UNTAG_Bool(REGB0
)) {
1349 nit_abort("Cast failed", NULL
, LOCATE_mmloader
, 0);
1351 /* mmloader.nit:246 */
1352 nit_abort("Deferred method called", NULL
, LOCATE_mmloader
, 246);
1353 stack_frame_head
= fra
.me
.prev
;