1 #include "modelbuilder.sep.0.h"
2 /* method modelbuilder#ToolContext#opt_path for (self: ToolContext): OptionArray */
3 val
* modelbuilder__ToolContext__opt_path(val
* self
) {
4 val
* var
/* : OptionArray */;
5 val
* var1
/* : OptionArray */;
6 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_path
].val
; /* @opt_path on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_path");
9 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 37);
16 /* method modelbuilder#ToolContext#opt_path for (self: Object): OptionArray */
17 val
* VIRTUAL_modelbuilder__ToolContext__opt_path(val
* self
) {
18 val
* var
/* : OptionArray */;
19 val
* var1
/* : OptionArray */;
20 var1
= modelbuilder__ToolContext__opt_path(self
);
25 /* method modelbuilder#ToolContext#opt_path= for (self: ToolContext, OptionArray) */
26 void modelbuilder__ToolContext__opt_path_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_path
].val
= p0
; /* @opt_path on <self:ToolContext> */
30 /* method modelbuilder#ToolContext#opt_path= for (self: Object, OptionArray) */
31 void VIRTUAL_modelbuilder__ToolContext__opt_path_61d(val
* self
, val
* p0
) {
32 modelbuilder__ToolContext__opt_path_61d(self
, p0
);
35 /* method modelbuilder#ToolContext#opt_only_metamodel for (self: ToolContext): OptionBool */
36 val
* modelbuilder__ToolContext__opt_only_metamodel(val
* self
) {
37 val
* var
/* : OptionBool */;
38 val
* var1
/* : OptionBool */;
39 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel
].val
; /* @opt_only_metamodel on <self:ToolContext> */
41 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_only_metamodel");
42 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 40);
49 /* method modelbuilder#ToolContext#opt_only_metamodel for (self: Object): OptionBool */
50 val
* VIRTUAL_modelbuilder__ToolContext__opt_only_metamodel(val
* self
) {
51 val
* var
/* : OptionBool */;
52 val
* var1
/* : OptionBool */;
53 var1
= modelbuilder__ToolContext__opt_only_metamodel(self
);
58 /* method modelbuilder#ToolContext#opt_only_metamodel= for (self: ToolContext, OptionBool) */
59 void modelbuilder__ToolContext__opt_only_metamodel_61d(val
* self
, val
* p0
) {
60 self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel
].val
= p0
; /* @opt_only_metamodel on <self:ToolContext> */
63 /* method modelbuilder#ToolContext#opt_only_metamodel= for (self: Object, OptionBool) */
64 void VIRTUAL_modelbuilder__ToolContext__opt_only_metamodel_61d(val
* self
, val
* p0
) {
65 modelbuilder__ToolContext__opt_only_metamodel_61d(self
, p0
);
68 /* method modelbuilder#ToolContext#opt_only_parse for (self: ToolContext): OptionBool */
69 val
* modelbuilder__ToolContext__opt_only_parse(val
* self
) {
70 val
* var
/* : OptionBool */;
71 val
* var1
/* : OptionBool */;
72 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_only_parse
].val
; /* @opt_only_parse on <self:ToolContext> */
74 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_only_parse");
75 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 43);
82 /* method modelbuilder#ToolContext#opt_only_parse for (self: Object): OptionBool */
83 val
* VIRTUAL_modelbuilder__ToolContext__opt_only_parse(val
* self
) {
84 val
* var
/* : OptionBool */;
85 val
* var1
/* : OptionBool */;
86 var1
= modelbuilder__ToolContext__opt_only_parse(self
);
91 /* method modelbuilder#ToolContext#opt_only_parse= for (self: ToolContext, OptionBool) */
92 void modelbuilder__ToolContext__opt_only_parse_61d(val
* self
, val
* p0
) {
93 self
->attrs
[COLOR_modelbuilder__ToolContext___64dopt_only_parse
].val
= p0
; /* @opt_only_parse on <self:ToolContext> */
96 /* method modelbuilder#ToolContext#opt_only_parse= for (self: Object, OptionBool) */
97 void VIRTUAL_modelbuilder__ToolContext__opt_only_parse_61d(val
* self
, val
* p0
) {
98 modelbuilder__ToolContext__opt_only_parse_61d(self
, p0
);
101 /* method modelbuilder#ToolContext#init for (self: ToolContext) */
102 void modelbuilder__ToolContext__init(val
* self
) {
103 val
* var
/* : OptionContext */;
104 val
* var1
/* : OptionArray */;
105 val
* var2
/* : OptionBool */;
106 val
* var3
/* : OptionBool */;
107 val
* var4
/* : Array[Option] */;
108 long var5
/* : Int */;
109 val
* var6
/* : NativeArray[Option] */;
110 ((void (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
111 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
112 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__opt_path
]))(self
) /* opt_path on <self:ToolContext>*/;
113 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__opt_only_parse
]))(self
) /* opt_only_parse on <self:ToolContext>*/;
114 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__opt_only_metamodel
]))(self
) /* opt_only_metamodel on <self:ToolContext>*/;
115 var4
= NEW_array__Array(&type_array__Arrayopts__Option
);
116 { /* var4 = array_instance Array[Option] */
118 var6
= NEW_array__NativeArray(var5
, &type_array__NativeArrayopts__Option
);
119 ((struct instance_array__NativeArray
*)var6
)->values
[0] = (val
*) var1
;
120 ((struct instance_array__NativeArray
*)var6
)->values
[1] = (val
*) var2
;
121 ((struct instance_array__NativeArray
*)var6
)->values
[2] = (val
*) var3
;
122 ((void (*)(val
*, val
*, long))(var4
->class->vft
[COLOR_array__Array__with_native
]))(var4
, var6
, var5
) /* with_native on <var4:Array[Option]>*/;
123 CHECK_NEW_array__Array(var4
);
125 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var
, var4
) /* add_option on <var:OptionContext>*/;
128 /* method modelbuilder#ToolContext#init for (self: Object) */
129 void VIRTUAL_modelbuilder__ToolContext__init(val
* self
) {
130 modelbuilder__ToolContext__init(self
);
133 /* method modelbuilder#ToolContext#modelbuilder for (self: ToolContext): ModelBuilder */
134 val
* modelbuilder__ToolContext__modelbuilder(val
* self
) {
135 val
* var
/* : ModelBuilder */;
136 val
* var1
/* : nullable ModelBuilder */;
137 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder_real
]))(self
) /* modelbuilder_real on <self:ToolContext>*/;
139 fprintf(stderr
, "Runtime error: %s", "Cast failed");
140 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 52);
148 /* method modelbuilder#ToolContext#modelbuilder for (self: Object): ModelBuilder */
149 val
* VIRTUAL_modelbuilder__ToolContext__modelbuilder(val
* self
) {
150 val
* var
/* : ModelBuilder */;
151 val
* var1
/* : ModelBuilder */;
152 var1
= modelbuilder__ToolContext__modelbuilder(self
);
157 /* method modelbuilder#ToolContext#modelbuilder_real for (self: ToolContext): nullable ModelBuilder */
158 val
* modelbuilder__ToolContext__modelbuilder_real(val
* self
) {
159 val
* var
/* : nullable ModelBuilder */;
160 val
* var1
/* : nullable ModelBuilder */;
161 var1
= self
->attrs
[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real
].val
; /* @modelbuilder_real on <self:ToolContext> */
166 /* method modelbuilder#ToolContext#modelbuilder_real for (self: Object): nullable ModelBuilder */
167 val
* VIRTUAL_modelbuilder__ToolContext__modelbuilder_real(val
* self
) {
168 val
* var
/* : nullable ModelBuilder */;
169 val
* var1
/* : nullable ModelBuilder */;
170 var1
= modelbuilder__ToolContext__modelbuilder_real(self
);
175 /* method modelbuilder#ToolContext#modelbuilder_real= for (self: ToolContext, nullable ModelBuilder) */
176 void modelbuilder__ToolContext__modelbuilder_real_61d(val
* self
, val
* p0
) {
177 self
->attrs
[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real
].val
= p0
; /* @modelbuilder_real on <self:ToolContext> */
180 /* method modelbuilder#ToolContext#modelbuilder_real= for (self: Object, nullable ModelBuilder) */
181 void VIRTUAL_modelbuilder__ToolContext__modelbuilder_real_61d(val
* self
, val
* p0
) {
182 modelbuilder__ToolContext__modelbuilder_real_61d(self
, p0
);
185 /* method modelbuilder#ModelBuilder#model for (self: ModelBuilder): Model */
186 val
* modelbuilder__ModelBuilder__model(val
* self
) {
187 val
* var
/* : Model */;
188 val
* var1
/* : Model */;
189 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dmodel
].val
; /* @model on <self:ModelBuilder> */
191 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @model");
192 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 59);
199 /* method modelbuilder#ModelBuilder#model for (self: Object): Model */
200 val
* VIRTUAL_modelbuilder__ModelBuilder__model(val
* self
) {
201 val
* var
/* : Model */;
202 val
* var1
/* : Model */;
203 var1
= modelbuilder__ModelBuilder__model(self
);
208 /* method modelbuilder#ModelBuilder#model= for (self: ModelBuilder, Model) */
209 void modelbuilder__ModelBuilder__model_61d(val
* self
, val
* p0
) {
210 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dmodel
].val
= p0
; /* @model on <self:ModelBuilder> */
213 /* method modelbuilder#ModelBuilder#model= for (self: Object, Model) */
214 void VIRTUAL_modelbuilder__ModelBuilder__model_61d(val
* self
, val
* p0
) {
215 modelbuilder__ModelBuilder__model_61d(self
, p0
);
218 /* method modelbuilder#ModelBuilder#toolcontext for (self: ModelBuilder): ToolContext */
219 val
* modelbuilder__ModelBuilder__toolcontext(val
* self
) {
220 val
* var
/* : ToolContext */;
221 val
* var1
/* : ToolContext */;
222 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dtoolcontext
].val
; /* @toolcontext on <self:ModelBuilder> */
224 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
225 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 62);
232 /* method modelbuilder#ModelBuilder#toolcontext for (self: Object): ToolContext */
233 val
* VIRTUAL_modelbuilder__ModelBuilder__toolcontext(val
* self
) {
234 val
* var
/* : ToolContext */;
235 val
* var1
/* : ToolContext */;
236 var1
= modelbuilder__ModelBuilder__toolcontext(self
);
241 /* method modelbuilder#ModelBuilder#toolcontext= for (self: ModelBuilder, ToolContext) */
242 void modelbuilder__ModelBuilder__toolcontext_61d(val
* self
, val
* p0
) {
243 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:ModelBuilder> */
246 /* method modelbuilder#ModelBuilder#toolcontext= for (self: Object, ToolContext) */
247 void VIRTUAL_modelbuilder__ModelBuilder__toolcontext_61d(val
* self
, val
* p0
) {
248 modelbuilder__ModelBuilder__toolcontext_61d(self
, p0
);
251 /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */
252 void modelbuilder__ModelBuilder__run_phases(val
* self
) {
253 val
* var
/* : Model */;
254 val
* var1
/* : Array[MModule] */;
255 val
* var2
/* : Array[nullable Object] */;
256 val
* var_mmodules
/* var mmodules: Array[MModule] */;
257 val
* var3
/* : Model */;
258 val
* var4
/* : POSet[MModule] */;
259 val
* var5
/* : Array[AModule] */;
260 val
* var_nmodules
/* var nmodules: Array[AModule] */;
261 val
* var6
/* : Iterator[nullable Object] */;
262 short int var7
/* : Bool */;
263 val
* var8
/* : nullable Object */;
264 val
* var_mm
/* var mm: MModule */;
265 val
* var9
/* : HashMap[MModule, AModule] */;
266 val
* var10
/* : nullable Object */;
267 val
* var11
/* : ToolContext */;
268 val
* var12
/* : ToolContext */;
269 val
* var13
/* : OptionBool */;
270 val
* var14
/* : nullable Object */;
271 short int var15
/* : Bool */;
272 val
* var16
/* : ToolContext */;
274 val
* var17
/* : String */;
275 char* var18
/* : NativeString */;
276 long var19
/* : Int */;
277 val
* var20
/* : String */;
278 long var21
/* : Int */;
279 long var22
/* : Int */;
280 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
281 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model_base__Model__mmodules
]))(var
) /* mmodules on <var:Model>*/;
282 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:Array[MModule]>*/;
284 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
285 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model_base__Model__mmodule_importation_hierarchy
]))(var3
) /* mmodule_importation_hierarchy on <var3:Model>*/;
286 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var4
, var_mmodules
) /* sort on <var4:POSet[MModule]>*/;
287 var5
= NEW_array__Array(&type_array__Arrayparser_nodes__AModule
);
288 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[AModule]>*/;
289 CHECK_NEW_array__Array(var5
);
291 var6
= ((val
* (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mmodules
) /* iterator on <var_mmodules:Array[MModule]>*/;
293 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
295 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
297 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(self
) /* mmodule2nmodule on <self:ModelBuilder>*/;
298 var10
= ((val
* (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var9
, var_mm
) /* [] on <var9:HashMap[MModule, AModule]>*/;
299 ((void (*)(val
*, val
*))(var_nmodules
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_nmodules
, var10
) /* add on <var_nmodules:Array[AModule]>*/;
300 CONTINUE_label
: (void)0;
301 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
303 BREAK_label
: (void)0;
304 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
305 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_phase__ToolContext__run_phases
]))(var11
, var_nmodules
) /* run_phases on <var11:ToolContext>*/;
306 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
307 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelbuilder__ToolContext__opt_only_metamodel
]))(var12
) /* opt_only_metamodel on <var12:ToolContext>*/;
308 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_opts__Option__value
]))(var13
) /* value on <var13:OptionBool>*/;
309 var15
= ((struct instance_kernel__Bool
*)var14
)->value
; /* autounbox from nullable Object to Bool */;
311 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
315 var18
= "*** ONLY METAMODEL";
317 var20
= string__NativeString__to_s_with_length(var18
, var19
);
322 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var16
, var17
, var21
) /* info on <var16:ToolContext>*/;
324 ((void (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Object__exit
]))(self
, var22
) /* exit on <self:ModelBuilder>*/;
329 /* method modelbuilder#ModelBuilder#run_phases for (self: Object) */
330 void VIRTUAL_modelbuilder__ModelBuilder__run_phases(val
* self
) {
331 modelbuilder__ModelBuilder__run_phases(self
);
334 /* method modelbuilder#ModelBuilder#init for (self: ModelBuilder, Model, ToolContext) */
335 void modelbuilder__ModelBuilder__init(val
* self
, val
* p0
, val
* p1
) {
336 val
* var_model
/* var model: Model */;
337 val
* var_toolcontext
/* var toolcontext: ToolContext */;
338 val
* var
/* : nullable ModelBuilder */;
339 val
* var1
/* : null */;
340 short int var2
/* : Bool */;
341 val
* var3
/* : Array[String] */;
342 val
* var4
/* : OptionArray */;
343 val
* var5
/* : nullable Object */;
345 val
* var6
/* : String */;
346 char* var7
/* : NativeString */;
347 long var8
/* : Int */;
348 val
* var9
/* : String */;
349 val
* var10
/* : String */;
350 val
* var_path_env
/* var path_env: String */;
351 short int var11
/* : Bool */;
352 short int var12
/* : Bool */;
353 val
* var13
/* : Array[String] */;
354 char var14
/* : Char */;
355 val
* var15
/* : Array[String] */;
356 val
* var16
/* : Pattern */;
357 static val
* varonce17
;
358 val
* var18
/* : String */;
359 char* var19
/* : NativeString */;
360 long var20
/* : Int */;
361 val
* var21
/* : String */;
362 val
* var22
/* : String */;
363 short int var23
/* : Bool */;
364 short int var24
/* : Bool */;
365 val
* var25
/* : Array[Object] */;
366 long var26
/* : Int */;
367 val
* var_
/* var : Array[Object] */;
368 static val
* varonce27
;
369 val
* var28
/* : String */;
370 char* var29
/* : NativeString */;
371 long var30
/* : Int */;
372 val
* var31
/* : String */;
373 static val
* varonce32
;
374 val
* var33
/* : String */;
375 char* var34
/* : NativeString */;
376 long var35
/* : Int */;
377 val
* var36
/* : String */;
378 val
* var37
/* : String */;
379 val
* var_libname
/* var libname: String */;
380 short int var38
/* : Bool */;
381 val
* var39
/* : Array[String] */;
382 val
* var40
/* : Array[Object] */;
383 long var41
/* : Int */;
384 val
* var_42
/* var : Array[Object] */;
385 static val
* varonce43
;
386 val
* var44
/* : String */;
387 char* var45
/* : NativeString */;
388 long var46
/* : Int */;
389 val
* var47
/* : String */;
390 val
* var48
/* : Sys */;
391 val
* var49
/* : String */;
392 val
* var50
/* : String */;
393 static val
* varonce51
;
394 val
* var52
/* : String */;
395 char* var53
/* : NativeString */;
396 long var54
/* : Int */;
397 val
* var55
/* : String */;
398 val
* var56
/* : String */;
399 val
* var_libname57
/* var libname: String */;
400 short int var58
/* : Bool */;
401 val
* var59
/* : Array[String] */;
402 val
* var60
/* : String */;
404 var_toolcontext
= p1
;
405 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model_61d
]))(self
, var_model
) /* model= on <self:ModelBuilder>*/;
406 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:ModelBuilder>*/;
407 var
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder_real
]))(var_toolcontext
) /* modelbuilder_real on <var_toolcontext:ToolContext>*/;
410 var2
= 1; /* is null */
412 var2
= 0; /* arg is null but recv is not */
415 fprintf(stderr
, "Runtime error: %s", "Assert failed");
416 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 88);
419 ((void (*)(val
*, val
*))(var_toolcontext
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder_real_61d
]))(var_toolcontext
, self
) /* modelbuilder_real= on <var_toolcontext:ToolContext>*/;
420 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__paths
]))(self
) /* paths on <self:ModelBuilder>*/;
421 var4
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_modelbuilder__ToolContext__opt_path
]))(var_toolcontext
) /* opt_path on <var_toolcontext:ToolContext>*/;
422 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_opts__Option__value
]))(var4
) /* value on <var4:OptionArray>*/;
423 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var3
, var5
) /* append on <var3:Array[String]>*/;
429 var9
= string__NativeString__to_s_with_length(var7
, var8
);
433 var10
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_environ__String__environ
]))(var6
) /* environ on <var6:String>*/;
434 var_path_env
= var10
;
435 var11
= ((short int (*)(val
*))(var_path_env
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_path_env
) /* is_empty on <var_path_env:String>*/;
438 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__paths
]))(self
) /* paths on <self:ModelBuilder>*/;
440 var16
= BOX_kernel__Char(var14
); /* autobox from Char to Pattern */
441 var15
= ((val
* (*)(val
*, val
*))(var_path_env
->class->vft
[COLOR_string_search__String__split_with
]))(var_path_env
, var16
) /* split_with on <var_path_env:String>*/;
442 ((void (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var13
, var15
) /* append on <var13:Array[String]>*/;
450 var21
= string__NativeString__to_s_with_length(var19
, var20
);
454 var22
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_environ__String__environ
]))(var18
) /* environ on <var18:String>*/;
455 var_path_env
= var22
;
456 var23
= ((short int (*)(val
*))(var_path_env
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_path_env
) /* is_empty on <var_path_env:String>*/;
459 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
461 ((void (*)(val
*, long))(var25
->class->vft
[COLOR_array__Array__with_capacity
]))(var25
, var26
) /* with_capacity on <var25:Array[Object]>*/;
462 CHECK_NEW_array__Array(var25
);
469 var31
= string__NativeString__to_s_with_length(var29
, var30
);
473 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var28
) /* add on <var_:Array[Object]>*/;
474 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var_path_env
) /* add on <var_:Array[Object]>*/;
480 var36
= string__NativeString__to_s_with_length(var34
, var35
);
484 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var33
) /* add on <var_:Array[Object]>*/;
485 var37
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
487 var38
= ((short int (*)(val
*))(var_libname
->class->vft
[COLOR_file__String__file_exists
]))(var_libname
) /* file_exists on <var_libname:String>*/;
489 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__paths
]))(self
) /* paths on <self:ModelBuilder>*/;
490 ((void (*)(val
*, val
*))(var39
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var39
, var_libname
) /* add on <var39:Array[String]>*/;
495 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
497 ((void (*)(val
*, long))(var40
->class->vft
[COLOR_array__Array__with_capacity
]))(var40
, var41
) /* with_capacity on <var40:Array[Object]>*/;
498 CHECK_NEW_array__Array(var40
);
505 var47
= string__NativeString__to_s_with_length(var45
, var46
);
509 ((void (*)(val
*, val
*))(var_42
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_42
, var44
) /* add on <var_42:Array[Object]>*/;
510 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__sys
]))(self
) /* sys on <self:ModelBuilder>*/;
511 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Sys__program_name
]))(var48
) /* program_name on <var48:Sys>*/;
512 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_file__String__dirname
]))(var49
) /* dirname on <var49:String>*/;
513 ((void (*)(val
*, val
*))(var_42
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_42
, var50
) /* add on <var_42:Array[Object]>*/;
519 var55
= string__NativeString__to_s_with_length(var53
, var54
);
523 ((void (*)(val
*, val
*))(var_42
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_42
, var52
) /* add on <var_42:Array[Object]>*/;
524 var56
= ((val
* (*)(val
*))(var_42
->class->vft
[COLOR_string__Object__to_s
]))(var_42
) /* to_s on <var_42:Array[Object]>*/;
525 var_libname57
= var56
;
526 var58
= ((short int (*)(val
*))(var_libname57
->class->vft
[COLOR_file__String__file_exists
]))(var_libname57
) /* file_exists on <var_libname57:String>*/;
528 var59
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__paths
]))(self
) /* paths on <self:ModelBuilder>*/;
529 var60
= ((val
* (*)(val
*))(var_libname57
->class->vft
[COLOR_file__String__simplify_path
]))(var_libname57
) /* simplify_path on <var_libname57:String>*/;
530 ((void (*)(val
*, val
*))(var59
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var59
, var60
) /* add on <var59:Array[String]>*/;
535 /* method modelbuilder#ModelBuilder#init for (self: Object, Model, ToolContext) */
536 void VIRTUAL_modelbuilder__ModelBuilder__init(val
* self
, val
* p0
, val
* p1
) {
537 modelbuilder__ModelBuilder__init(self
, p0
, p1
);
540 /* method modelbuilder#ModelBuilder#parse for (self: ModelBuilder, Sequence[String]): Array[MModule] */
541 val
* modelbuilder__ModelBuilder__parse(val
* self
, val
* p0
) {
542 val
* var
/* : Array[MModule] */;
543 val
* var_modules
/* var modules: Sequence[String] */;
544 long var1
/* : Int */;
545 long var_time0
/* var time0: Int */;
546 val
* var2
/* : ToolContext */;
548 val
* var3
/* : String */;
549 char* var4
/* : NativeString */;
550 long var5
/* : Int */;
551 val
* var6
/* : String */;
552 long var7
/* : Int */;
553 val
* var8
/* : Array[MModule] */;
554 val
* var_mmodules
/* var mmodules: Array[MModule] */;
555 val
* var9
/* : Iterator[nullable Object] */;
556 short int var10
/* : Bool */;
557 val
* var11
/* : nullable Object */;
558 val
* var_a
/* var a: String */;
559 val
* var12
/* : null */;
560 val
* var13
/* : nullable AModule */;
561 val
* var_nmodule
/* var nmodule: nullable AModule */;
562 val
* var14
/* : null */;
563 short int var15
/* : Bool */;
564 val
* var16
/* : nullable MModule */;
565 long var17
/* : Int */;
566 long var_time1
/* var time1: Int */;
567 val
* var18
/* : ToolContext */;
568 static val
* varonce19
;
569 val
* var20
/* : String */;
570 char* var21
/* : NativeString */;
571 long var22
/* : Int */;
572 val
* var23
/* : String */;
573 long var24
/* : Int */;
574 long var26
/* : Int */;
575 static val
* varonce27
;
576 val
* var28
/* : String */;
577 char* var29
/* : NativeString */;
578 long var30
/* : Int */;
579 val
* var31
/* : String */;
580 val
* var32
/* : Array[Object] */;
581 long var33
/* : Int */;
582 val
* var34
/* : NativeArray[Object] */;
583 val
* var35
/* : Object */;
584 val
* var36
/* : String */;
585 long var37
/* : Int */;
586 val
* var38
/* : ToolContext */;
587 val
* var39
/* : ToolContext */;
588 val
* var40
/* : OptionBool */;
589 val
* var41
/* : nullable Object */;
590 short int var42
/* : Bool */;
591 val
* var43
/* : ToolContext */;
592 static val
* varonce44
;
593 val
* var45
/* : String */;
594 char* var46
/* : NativeString */;
595 long var47
/* : Int */;
596 val
* var48
/* : String */;
597 long var49
/* : Int */;
598 long var50
/* : Int */;
600 var1
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
602 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
606 var4
= "*** PARSE ***";
608 var6
= string__NativeString__to_s_with_length(var4
, var5
);
613 ((void (*)(val
*, val
*, long))(var2
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var2
, var3
, var7
) /* info on <var2:ToolContext>*/;
614 var8
= NEW_array__Array(&type_array__Arraymodel_base__MModule
);
615 ((void (*)(val
*))(var8
->class->vft
[COLOR_array__Array__init
]))(var8
) /* init on <var8:Array[MModule]>*/;
616 CHECK_NEW_array__Array(var8
);
618 var9
= ((val
* (*)(val
*))(var_modules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_modules
) /* iterator on <var_modules:Sequence[String]>*/;
620 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
622 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
625 var13
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__load_module
]))(self
, var12
, var_a
) /* load_module on <self:ModelBuilder>*/;
628 if (var_nmodule
== NULL
) {
629 var15
= 1; /* is null */
631 var15
= 0; /* arg is null but recv is not */
637 var16
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:nullable AModule(AModule)>*/;
639 fprintf(stderr
, "Runtime error: %s", "Cast failed");
640 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 125);
643 ((void (*)(val
*, val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mmodules
, var16
) /* add on <var_mmodules:Array[MModule]>*/;
644 CONTINUE_label
: (void)0;
645 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
647 BREAK_label
: (void)0;
648 var17
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
650 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
654 var21
= "*** END PARSE: ";
656 var23
= string__NativeString__to_s_with_length(var21
, var22
);
660 { /* Inline kernel#Int#- (var_time1,var_time0) */
661 var26
= var_time1
- var_time0
;
671 var31
= string__NativeString__to_s_with_length(var29
, var30
);
675 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
676 { /* var32 = array_instance Array[Object] */
678 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
679 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var20
;
680 var35
= BOX_kernel__Int(var24
); /* autobox from Int to Object */
681 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var35
;
682 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
683 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
684 CHECK_NEW_array__Array(var32
);
686 var36
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
688 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var18
, var36
, var37
) /* info on <var18:ToolContext>*/;
689 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
690 ((void (*)(val
*))(var38
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(var38
) /* check_errors on <var38:ToolContext>*/;
691 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
692 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_modelbuilder__ToolContext__opt_only_parse
]))(var39
) /* opt_only_parse on <var39:ToolContext>*/;
693 var41
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_opts__Option__value
]))(var40
) /* value on <var40:OptionBool>*/;
694 var42
= ((struct instance_kernel__Bool
*)var41
)->value
; /* autounbox from nullable Object to Bool */;
696 var43
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
700 var46
= "*** ONLY PARSE...";
702 var48
= string__NativeString__to_s_with_length(var46
, var47
);
707 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var43
, var45
, var49
) /* info on <var43:ToolContext>*/;
709 ((void (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Object__exit
]))(self
, var50
) /* exit on <self:ModelBuilder>*/;
717 /* method modelbuilder#ModelBuilder#parse for (self: Object, Sequence[String]): Array[MModule] */
718 val
* VIRTUAL_modelbuilder__ModelBuilder__parse(val
* self
, val
* p0
) {
719 val
* var
/* : Array[MModule] */;
720 val
* var1
/* : Array[MModule] */;
721 var1
= modelbuilder__ModelBuilder__parse(self
, p0
);
726 /* method modelbuilder#ModelBuilder#try_get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */
727 val
* modelbuilder__ModelBuilder__try_get_mclass_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
728 val
* var
/* : nullable MClass */;
729 val
* var_anode
/* var anode: ANode */;
730 val
* var_mmodule
/* var mmodule: MModule */;
731 val
* var_name
/* var name: String */;
732 val
* var1
/* : Model */;
733 val
* var2
/* : nullable Array[MClass] */;
734 val
* var_classes
/* var classes: nullable Array[MClass] */;
735 val
* var3
/* : null */;
736 short int var4
/* : Bool */;
737 val
* var5
/* : null */;
738 val
* var6
/* : null */;
739 val
* var_res
/* var res: nullable MClass */;
740 val
* var7
/* : Iterator[nullable Object] */;
741 short int var8
/* : Bool */;
742 val
* var9
/* : nullable Object */;
743 val
* var_mclass
/* var mclass: MClass */;
744 val
* var10
/* : POSetElement[MModule] */;
745 val
* var11
/* : MModule */;
746 short int var12
/* : Bool */;
747 short int var13
/* : Bool */;
748 val
* var14
/* : MModule */;
749 val
* var15
/* : MVisibility */;
750 short int var16
/* : Bool */;
751 short int var17
/* : Bool */;
752 val
* var18
/* : null */;
753 short int var19
/* : Bool */;
755 val
* var20
/* : String */;
756 char* var21
/* : NativeString */;
757 long var22
/* : Int */;
758 val
* var23
/* : String */;
759 static val
* varonce24
;
760 val
* var25
/* : String */;
761 char* var26
/* : NativeString */;
762 long var27
/* : Int */;
763 val
* var28
/* : String */;
764 val
* var29
/* : String */;
765 static val
* varonce30
;
766 val
* var31
/* : String */;
767 char* var32
/* : NativeString */;
768 long var33
/* : Int */;
769 val
* var34
/* : String */;
770 val
* var35
/* : String */;
771 val
* var36
/* : Array[Object] */;
772 long var37
/* : Int */;
773 val
* var38
/* : NativeArray[Object] */;
774 val
* var39
/* : String */;
775 val
* var40
/* : null */;
779 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
780 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var1
, var_name
) /* get_mclasses_by_name on <var1:Model>*/;
783 if (var_classes
== NULL
) {
784 var4
= 1; /* is null */
786 var4
= 0; /* arg is null but recv is not */
796 var7
= ((val
* (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_classes
) /* iterator on <var_classes:nullable Array[MClass](Array[MClass])>*/;
798 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
800 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
802 var10
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
803 var11
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
804 var12
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var10
, var11
) /* <= on <var10:POSetElement[MModule]>*/;
810 var14
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
811 var15
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__visibility
]))(var_mclass
) /* visibility on <var_mclass:MClass>*/;
812 var16
= ((short int (*)(val
*, val
*, val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__is_visible
]))(var_mmodule
, var14
, var15
) /* is_visible on <var_mmodule:MModule>*/;
819 if (var_res
== NULL
) {
820 var19
= 1; /* is null */
822 var19
= 0; /* arg is null but recv is not */
825 var_res
= var_mclass
;
830 var21
= "Ambigous class name \'";
832 var23
= string__NativeString__to_s_with_length(var21
, var22
);
839 var26
= "\'; conflict between ";
841 var28
= string__NativeString__to_s_with_length(var26
, var27
);
845 var29
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__full_name
]))(var_mclass
) /* full_name on <var_mclass:MClass>*/;
851 var34
= string__NativeString__to_s_with_length(var32
, var33
);
855 var35
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MClass__full_name
]))(var_res
) /* full_name on <var_res:nullable MClass(MClass)>*/;
856 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
857 { /* var36 = array_instance Array[Object] */
859 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
860 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var20
;
861 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
862 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var25
;
863 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var29
;
864 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var31
;
865 ((struct instance_array__NativeArray
*)var38
)->values
[5] = (val
*) var35
;
866 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
867 CHECK_NEW_array__Array(var36
);
869 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
870 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var39
) /* error on <self:ModelBuilder>*/;
875 CONTINUE_label
: (void)0;
876 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
878 BREAK_label
: (void)0;
884 /* method modelbuilder#ModelBuilder#try_get_mclass_by_name for (self: Object, ANode, MModule, String): nullable MClass */
885 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mclass_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
886 val
* var
/* : nullable MClass */;
887 val
* var1
/* : nullable MClass */;
888 var1
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, p0
, p1
, p2
);
893 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2 for (self: ModelBuilder, ANode, MModule, MType, String): nullable MProperty */
894 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
895 val
* var
/* : nullable MProperty */;
896 val
* var_anode
/* var anode: ANode */;
897 val
* var_mmodule
/* var mmodule: MModule */;
898 val
* var_mtype
/* var mtype: MType */;
899 val
* var_name
/* var name: String */;
900 val
* var1
/* : Model */;
901 val
* var2
/* : nullable Array[MProperty] */;
902 val
* var_props
/* var props: nullable Array[MProperty] */;
903 val
* var3
/* : null */;
904 short int var4
/* : Bool */;
905 val
* var5
/* : null */;
906 val
* var6
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
907 val
* var7
/* : nullable Object */;
908 val
* var_cache
/* var cache: nullable MProperty */;
909 val
* var8
/* : null */;
910 short int var9
/* : Bool */;
911 val
* var10
/* : null */;
912 val
* var_res
/* var res: nullable MProperty */;
913 val
* var11
/* : null */;
914 val
* var_ress
/* var ress: nullable Array[MProperty] */;
915 val
* var12
/* : Iterator[nullable Object] */;
916 short int var13
/* : Bool */;
917 val
* var14
/* : nullable Object */;
918 val
* var_mprop
/* var mprop: MProperty */;
919 short int var15
/* : Bool */;
920 short int var16
/* : Bool */;
921 val
* var17
/* : MClassDef */;
922 val
* var18
/* : MModule */;
923 val
* var19
/* : MVisibility */;
924 short int var20
/* : Bool */;
925 short int var21
/* : Bool */;
926 val
* var22
/* : null */;
927 short int var23
/* : Bool */;
928 val
* var24
/* : MClassDef */;
929 val
* var25
/* : MClassType */;
930 val
* var_restype
/* var restype: MClassType */;
931 val
* var26
/* : MClassDef */;
932 val
* var27
/* : MClassType */;
933 val
* var_mproptype
/* var mproptype: MClassType */;
934 val
* var28
/* : null */;
935 short int var29
/* : Bool */;
936 val
* var30
/* : null */;
937 short int var31
/* : Bool */;
938 val
* var32
/* : null */;
939 short int var33
/* : Bool */;
940 val
* var34
/* : Array[MProperty] */;
941 val
* var35
/* : null */;
942 short int var36
/* : Bool */;
943 val
* var37
/* : MClassDef */;
944 val
* var38
/* : MClassType */;
945 val
* var_restype39
/* var restype: MClassType */;
946 val
* var40
/* : Iterator[nullable Object] */;
947 short int var41
/* : Bool */;
948 val
* var42
/* : nullable Object */;
949 val
* var_mprop43
/* var mprop: MProperty */;
950 val
* var44
/* : MClassDef */;
951 val
* var45
/* : MClassType */;
952 val
* var_mproptype46
/* var mproptype: MClassType */;
953 val
* var47
/* : null */;
954 short int var48
/* : Bool */;
955 short int var49
/* : Bool */;
957 val
* var50
/* : String */;
958 char* var51
/* : NativeString */;
959 long var52
/* : Int */;
960 val
* var53
/* : String */;
961 static val
* varonce54
;
962 val
* var55
/* : String */;
963 char* var56
/* : NativeString */;
964 long var57
/* : Int */;
965 val
* var58
/* : String */;
966 static val
* varonce59
;
967 val
* var60
/* : String */;
968 char* var61
/* : NativeString */;
969 long var62
/* : Int */;
970 val
* var63
/* : String */;
971 val
* var64
/* : String */;
972 static val
* varonce65
;
973 val
* var66
/* : String */;
974 char* var67
/* : NativeString */;
975 long var68
/* : Int */;
976 val
* var69
/* : String */;
977 val
* var70
/* : String */;
978 val
* var71
/* : Array[Object] */;
979 long var72
/* : Int */;
980 val
* var73
/* : NativeArray[Object] */;
981 val
* var74
/* : String */;
982 val
* var75
/* : null */;
983 val
* var77
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
988 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
989 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mproperties_by_name
]))(var1
, var_name
) /* get_mproperties_by_name on <var1:Model>*/;
992 if (var_props
== NULL
) {
993 var4
= 1; /* is null */
995 var4
= 0; /* arg is null but recv is not */
1003 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache
]))(self
) /* try_get_mproperty_by_name2_cache on <self:ModelBuilder>*/;
1004 var7
= ((val
* (*)(val
*, val
*, val
*, val
*))(var6
->class->vft
[COLOR_more_collections__HashMap3___91d_93d
]))(var6
, var_mmodule
, var_mtype
, var_name
) /* [] on <var6:HashMap3[MModule, MType, String, nullable MProperty]>*/;
1007 if (var_cache
== NULL
) {
1008 var9
= 0; /* is null */
1010 var9
= 1; /* arg is null and recv is not */
1021 var12
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_props
) /* iterator on <var_props:nullable Array[MProperty](Array[MProperty])>*/;
1023 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var12
) /* is_ok on <var12:Iterator[nullable Object]>*/;
1025 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var12
) /* item on <var12:Iterator[nullable Object]>*/;
1027 var15
= ((short int (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__has_mproperty
]))(var_mtype
, var_mmodule
, var_mprop
) /* has_mproperty on <var_mtype:MType>*/;
1030 goto CONTINUE_label
;
1033 var17
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mprop
) /* intro_mclassdef on <var_mprop:MProperty>*/;
1034 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var17
) /* mmodule on <var17:MClassDef>*/;
1035 var19
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__visibility
]))(var_mprop
) /* visibility on <var_mprop:MProperty>*/;
1036 var20
= ((short int (*)(val
*, val
*, val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__is_visible
]))(var_mmodule
, var18
, var19
) /* is_visible on <var_mmodule:MModule>*/;
1039 goto CONTINUE_label
;
1043 if (var_res
== NULL
) {
1044 var23
= 1; /* is null */
1046 var23
= 0; /* arg is null but recv is not */
1049 var_res
= var_mprop
;
1051 var24
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_res
) /* intro_mclassdef on <var_res:nullable MProperty(MProperty)>*/;
1052 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var24
) /* bound_mtype on <var24:MClassDef>*/;
1053 var_restype
= var25
;
1054 var26
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mprop
) /* intro_mclassdef on <var_mprop:MProperty>*/;
1055 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var26
) /* bound_mtype on <var26:MClassDef>*/;
1056 var_mproptype
= var27
;
1058 var29
= ((short int (*)(val
*, val
*, val
*, val
*))(var_restype
->class->vft
[COLOR_model__MType__is_subtype
]))(var_restype
, var_mmodule
, var28
, var_mproptype
) /* is_subtype on <var_restype:MClassType>*/;
1062 var31
= ((short int (*)(val
*, val
*, val
*, val
*))(var_mproptype
->class->vft
[COLOR_model__MType__is_subtype
]))(var_mproptype
, var_mmodule
, var30
, var_restype
) /* is_subtype on <var_mproptype:MClassType>*/;
1064 var_res
= var_mprop
;
1067 if (var_ress
== NULL
) {
1068 var33
= 1; /* is null */
1070 var33
= 0; /* arg is null but recv is not */
1073 var34
= NEW_array__Array(&type_array__Arraymodel__MProperty
);
1074 ((void (*)(val
*))(var34
->class->vft
[COLOR_array__Array__init
]))(var34
) /* init on <var34:Array[MProperty]>*/;
1075 CHECK_NEW_array__Array(var34
);
1079 ((void (*)(val
*, val
*))(var_ress
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_ress
, var_mprop
) /* add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
1083 CONTINUE_label
: (void)0;
1084 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var12
) /* next on <var12:Iterator[nullable Object]>*/;
1086 BREAK_label
: (void)0;
1088 if (var_ress
== NULL
) {
1089 var36
= 0; /* is null */
1091 var36
= 1; /* arg is null and recv is not */
1094 if (var_res
== NULL
) {
1095 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1096 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 203);
1099 var37
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_res
) /* intro_mclassdef on <var_res:nullable MProperty>*/;
1101 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var37
) /* bound_mtype on <var37:MClassDef>*/;
1102 var_restype39
= var38
;
1103 var40
= ((val
* (*)(val
*))(var_ress
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_ress
) /* iterator on <var_ress:nullable Array[MProperty](Array[MProperty])>*/;
1105 var41
= ((short int (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var40
) /* is_ok on <var40:Iterator[nullable Object]>*/;
1107 var42
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var40
) /* item on <var40:Iterator[nullable Object]>*/;
1108 var_mprop43
= var42
;
1109 var44
= ((val
* (*)(val
*))(var_mprop43
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mprop43
) /* intro_mclassdef on <var_mprop43:MProperty>*/;
1110 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var44
) /* bound_mtype on <var44:MClassDef>*/;
1111 var_mproptype46
= var45
;
1113 var48
= ((short int (*)(val
*, val
*, val
*, val
*))(var_restype39
->class->vft
[COLOR_model__MType__is_subtype
]))(var_restype39
, var_mmodule
, var47
, var_mproptype46
) /* is_subtype on <var_restype39:MClassType>*/;
1119 var51
= "Ambigous property name \'";
1121 var53
= string__NativeString__to_s_with_length(var51
, var52
);
1130 var58
= string__NativeString__to_s_with_length(var56
, var57
);
1137 var61
= "; conflict between ";
1139 var63
= string__NativeString__to_s_with_length(var61
, var62
);
1143 var64
= ((val
* (*)(val
*))(var_mprop43
->class->vft
[COLOR_model__MProperty__full_name
]))(var_mprop43
) /* full_name on <var_mprop43:MProperty>*/;
1149 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1153 if (var_res
== NULL
) {
1154 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1155 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 207);
1158 var70
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MProperty__full_name
]))(var_res
) /* full_name on <var_res:nullable MProperty>*/;
1160 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
1161 { /* var71 = array_instance Array[Object] */
1163 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
1164 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var50
;
1165 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var_name
;
1166 ((struct instance_array__NativeArray
*)var73
)->values
[2] = (val
*) var55
;
1167 ((struct instance_array__NativeArray
*)var73
)->values
[3] = (val
*) var_mtype
;
1168 ((struct instance_array__NativeArray
*)var73
)->values
[4] = (val
*) var60
;
1169 ((struct instance_array__NativeArray
*)var73
)->values
[5] = (val
*) var64
;
1170 ((struct instance_array__NativeArray
*)var73
)->values
[6] = (val
*) var66
;
1171 ((struct instance_array__NativeArray
*)var73
)->values
[7] = (val
*) var70
;
1172 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
1173 CHECK_NEW_array__Array(var71
);
1175 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
1176 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var74
) /* error on <self:ModelBuilder>*/;
1182 CONTINUE_label76
: (void)0;
1183 ((void (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var40
) /* next on <var40:Iterator[nullable Object]>*/;
1185 BREAK_label76
: (void)0;
1188 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache
]))(self
) /* try_get_mproperty_by_name2_cache on <self:ModelBuilder>*/;
1189 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var77
->class->vft
[COLOR_more_collections__HashMap3___91d_93d_61d
]))(var77
, var_mmodule
, var_mtype
, var_name
, var_res
) /* []= on <var77:HashMap3[MModule, MType, String, nullable MProperty]>*/;
1195 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2 for (self: Object, ANode, MModule, MType, String): nullable MProperty */
1196 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1197 val
* var
/* : nullable MProperty */;
1198 val
* var1
/* : nullable MProperty */;
1199 var1
= modelbuilder__ModelBuilder__try_get_mproperty_by_name2(self
, p0
, p1
, p2
, p3
);
1204 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache for (self: ModelBuilder): HashMap3[MModule, MType, String, nullable MProperty] */
1205 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val
* self
) {
1206 val
* var
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1207 val
* var1
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1208 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dtry_get_mproperty_by_name2_cache
].val
; /* @try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1210 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @try_get_mproperty_by_name2_cache");
1211 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 217);
1218 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache for (self: Object): HashMap3[MModule, MType, String, nullable MProperty] */
1219 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val
* self
) {
1220 val
* var
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1221 val
* var1
/* : HashMap3[MModule, MType, String, nullable MProperty] */;
1222 var1
= modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(self
);
1227 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache= for (self: ModelBuilder, HashMap3[MModule, MType, String, nullable MProperty]) */
1228 void modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(val
* self
, val
* p0
) {
1229 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dtry_get_mproperty_by_name2_cache
].val
= p0
; /* @try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1232 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache= for (self: Object, HashMap3[MModule, MType, String, nullable MProperty]) */
1233 void VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(val
* self
, val
* p0
) {
1234 modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(self
, p0
);
1237 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name for (self: ModelBuilder, ANode, MClassDef, String): nullable MProperty */
1238 val
* modelbuilder__ModelBuilder__try_get_mproperty_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1239 val
* var
/* : nullable MProperty */;
1240 val
* var_anode
/* var anode: ANode */;
1241 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1242 val
* var_name
/* var name: String */;
1243 val
* var1
/* : MModule */;
1244 val
* var2
/* : MClassType */;
1245 val
* var3
/* : nullable MProperty */;
1249 var1
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_mclassdef
) /* mmodule on <var_mclassdef:MClassDef>*/;
1250 var2
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef
) /* bound_mtype on <var_mclassdef:MClassDef>*/;
1251 var3
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2
]))(self
, var_anode
, var1
, var2
, var_name
) /* try_get_mproperty_by_name2 on <self:ModelBuilder>*/;
1257 /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name for (self: Object, ANode, MClassDef, String): nullable MProperty */
1258 val
* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1259 val
* var
/* : nullable MProperty */;
1260 val
* var1
/* : nullable MProperty */;
1261 var1
= modelbuilder__ModelBuilder__try_get_mproperty_by_name(self
, p0
, p1
, p2
);
1266 /* method modelbuilder#ModelBuilder#paths for (self: ModelBuilder): Array[String] */
1267 val
* modelbuilder__ModelBuilder__paths(val
* self
) {
1268 val
* var
/* : Array[String] */;
1269 val
* var1
/* : Array[String] */;
1270 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dpaths
].val
; /* @paths on <self:ModelBuilder> */
1272 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @paths");
1273 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 226);
1280 /* method modelbuilder#ModelBuilder#paths for (self: Object): Array[String] */
1281 val
* VIRTUAL_modelbuilder__ModelBuilder__paths(val
* self
) {
1282 val
* var
/* : Array[String] */;
1283 val
* var1
/* : Array[String] */;
1284 var1
= modelbuilder__ModelBuilder__paths(self
);
1289 /* method modelbuilder#ModelBuilder#paths= for (self: ModelBuilder, Array[String]) */
1290 void modelbuilder__ModelBuilder__paths_61d(val
* self
, val
* p0
) {
1291 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dpaths
].val
= p0
; /* @paths on <self:ModelBuilder> */
1294 /* method modelbuilder#ModelBuilder#paths= for (self: Object, Array[String]) */
1295 void VIRTUAL_modelbuilder__ModelBuilder__paths_61d(val
* self
, val
* p0
) {
1296 modelbuilder__ModelBuilder__paths_61d(self
, p0
);
1299 /* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: ModelBuilder, ANode, nullable MModule, String): nullable MModule */
1300 val
* modelbuilder__ModelBuilder__get_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1301 val
* var
/* : nullable MModule */;
1302 val
* var_anode
/* var anode: ANode */;
1303 val
* var_mmodule
/* var mmodule: nullable MModule */;
1304 val
* var_name
/* var name: String */;
1305 val
* var_origmmodule
/* var origmmodule: nullable MModule */;
1306 val
* var1
/* : Model */;
1307 val
* var2
/* : nullable Array[MModule] */;
1308 val
* var_modules
/* var modules: nullable Array[MModule] */;
1309 val
* var3
/* : Array[String] */;
1310 val
* var_tries
/* var tries: Array[String] */;
1311 val
* var_lastmodule
/* var lastmodule: nullable MModule */;
1312 val
* var4
/* : null */;
1313 short int var5
/* : Bool */;
1314 val
* var6
/* : Location */;
1315 val
* var7
/* : nullable SourceFile */;
1316 val
* var8
/* : String */;
1317 val
* var9
/* : String */;
1318 val
* var_dirname
/* var dirname: String */;
1319 static val
* varonce
;
1320 val
* var10
/* : String */;
1321 char* var11
/* : NativeString */;
1322 long var12
/* : Int */;
1323 val
* var13
/* : String */;
1324 val
* var14
/* : String */;
1325 val
* var15
/* : String */;
1326 short int var16
/* : Bool */;
1327 val
* var17
/* : nullable MModule */;
1328 val
* var_owner
/* var owner: nullable MModule */;
1329 val
* var18
/* : null */;
1330 short int var19
/* : Bool */;
1331 val
* var20
/* : Iterator[nullable Object] */;
1332 short int var21
/* : Bool */;
1333 val
* var22
/* : nullable Object */;
1334 val
* var_candidate
/* var candidate: MModule */;
1335 val
* var23
/* : nullable MModule */;
1336 short int var24
/* : Bool */;
1337 static val
* varonce25
;
1338 val
* var26
/* : String */;
1339 char* var27
/* : NativeString */;
1340 long var28
/* : Int */;
1341 val
* var29
/* : String */;
1342 val
* var30
/* : String */;
1343 val
* var31
/* : String */;
1344 static val
* varonce32
;
1345 val
* var33
/* : String */;
1346 char* var34
/* : NativeString */;
1347 long var35
/* : Int */;
1348 val
* var36
/* : String */;
1349 val
* var37
/* : String */;
1350 val
* var_try_file
/* var try_file: String */;
1351 short int var38
/* : Bool */;
1352 val
* var39
/* : String */;
1353 val
* var40
/* : nullable AModule */;
1354 val
* var_res
/* var res: nullable AModule */;
1355 val
* var41
/* : null */;
1356 short int var42
/* : Bool */;
1357 val
* var43
/* : null */;
1358 val
* var44
/* : nullable MModule */;
1359 static val
* varonce45
;
1360 val
* var46
/* : String */;
1361 char* var47
/* : NativeString */;
1362 long var48
/* : Int */;
1363 val
* var49
/* : String */;
1364 val
* var50
/* : String */;
1365 val
* var51
/* : String */;
1366 static val
* varonce52
;
1367 val
* var53
/* : String */;
1368 char* var54
/* : NativeString */;
1369 long var55
/* : Int */;
1370 val
* var56
/* : String */;
1371 val
* var57
/* : String */;
1372 val
* var58
/* : String */;
1373 static val
* varonce59
;
1374 val
* var60
/* : String */;
1375 char* var61
/* : NativeString */;
1376 long var62
/* : Int */;
1377 val
* var63
/* : String */;
1378 val
* var64
/* : String */;
1379 short int var65
/* : Bool */;
1380 val
* var66
/* : String */;
1381 val
* var67
/* : nullable AModule */;
1382 val
* var_res68
/* var res: nullable AModule */;
1383 val
* var69
/* : null */;
1384 short int var70
/* : Bool */;
1385 val
* var71
/* : null */;
1386 val
* var72
/* : nullable MModule */;
1387 val
* var73
/* : nullable MModule */;
1388 val
* var75
/* : null */;
1389 short int var76
/* : Bool */;
1390 val
* var77
/* : Iterator[nullable Object] */;
1391 short int var78
/* : Bool */;
1392 val
* var79
/* : nullable Object */;
1393 val
* var_candidate80
/* var candidate: MModule */;
1394 val
* var81
/* : nullable MModule */;
1395 val
* var82
/* : null */;
1396 short int var83
/* : Bool */;
1397 val
* var85
/* : Array[String] */;
1398 val
* var_lookpaths
/* var lookpaths: Array[String] */;
1399 val
* var86
/* : null */;
1400 short int var87
/* : Bool */;
1401 val
* var88
/* : Location */;
1402 val
* var89
/* : nullable SourceFile */;
1403 val
* var90
/* : String */;
1404 val
* var91
/* : String */;
1405 val
* var_dirname92
/* var dirname: String */;
1406 static val
* varonce93
;
1407 val
* var94
/* : String */;
1408 char* var95
/* : NativeString */;
1409 long var96
/* : Int */;
1410 val
* var97
/* : String */;
1411 val
* var98
/* : String */;
1412 val
* var99
/* : String */;
1413 short int var100
/* : Bool */;
1414 val
* var101
/* : String */;
1415 short int var102
/* : Bool */;
1416 short int var103
/* : Bool */;
1417 val
* var104
/* : Array[nullable Object] */;
1418 val
* var105
/* : null */;
1419 val
* var_candidate106
/* var candidate: nullable String */;
1420 val
* var107
/* : Iterator[nullable Object] */;
1421 short int var108
/* : Bool */;
1422 val
* var109
/* : nullable Object */;
1423 val
* var_dirname110
/* var dirname: String */;
1424 static val
* varonce111
;
1425 val
* var112
/* : String */;
1426 char* var113
/* : NativeString */;
1427 long var114
/* : Int */;
1428 val
* var115
/* : String */;
1429 val
* var116
/* : String */;
1430 val
* var117
/* : String */;
1431 static val
* varonce118
;
1432 val
* var119
/* : String */;
1433 char* var120
/* : NativeString */;
1434 long var121
/* : Int */;
1435 val
* var122
/* : String */;
1436 val
* var123
/* : String */;
1437 val
* var124
/* : String */;
1438 val
* var_try_file125
/* var try_file: String */;
1439 short int var126
/* : Bool */;
1440 val
* var127
/* : null */;
1441 short int var128
/* : Bool */;
1442 short int var129
/* : Bool */;
1443 val
* var130
/* : String */;
1444 val
* var_abs_candidate
/* var abs_candidate: String */;
1445 val
* var131
/* : String */;
1446 val
* var_abs_try_file
/* var abs_try_file: String */;
1447 short int var132
/* : Bool */;
1448 static val
* varonce133
;
1449 val
* var134
/* : String */;
1450 char* var135
/* : NativeString */;
1451 long var136
/* : Int */;
1452 val
* var137
/* : String */;
1453 static val
* varonce138
;
1454 val
* var139
/* : String */;
1455 char* var140
/* : NativeString */;
1456 long var141
/* : Int */;
1457 val
* var142
/* : String */;
1458 static val
* varonce143
;
1459 val
* var144
/* : String */;
1460 char* var145
/* : NativeString */;
1461 long var146
/* : Int */;
1462 val
* var147
/* : String */;
1463 val
* var148
/* : Array[Object] */;
1464 long var149
/* : Int */;
1465 val
* var150
/* : NativeArray[Object] */;
1466 val
* var151
/* : String */;
1467 static val
* varonce152
;
1468 val
* var153
/* : String */;
1469 char* var154
/* : NativeString */;
1470 long var155
/* : Int */;
1471 val
* var156
/* : String */;
1472 val
* var157
/* : String */;
1473 val
* var158
/* : String */;
1474 static val
* varonce159
;
1475 val
* var160
/* : String */;
1476 char* var161
/* : NativeString */;
1477 long var162
/* : Int */;
1478 val
* var163
/* : String */;
1479 val
* var164
/* : String */;
1480 val
* var165
/* : String */;
1481 static val
* varonce166
;
1482 val
* var167
/* : String */;
1483 char* var168
/* : NativeString */;
1484 long var169
/* : Int */;
1485 val
* var170
/* : String */;
1486 val
* var171
/* : String */;
1487 val
* var172
/* : String */;
1488 short int var173
/* : Bool */;
1489 val
* var174
/* : null */;
1490 short int var175
/* : Bool */;
1491 short int var176
/* : Bool */;
1492 val
* var177
/* : String */;
1493 val
* var_abs_candidate178
/* var abs_candidate: String */;
1494 val
* var179
/* : String */;
1495 val
* var_abs_try_file180
/* var abs_try_file: String */;
1496 short int var181
/* : Bool */;
1497 static val
* varonce182
;
1498 val
* var183
/* : String */;
1499 char* var184
/* : NativeString */;
1500 long var185
/* : Int */;
1501 val
* var186
/* : String */;
1502 static val
* varonce187
;
1503 val
* var188
/* : String */;
1504 char* var189
/* : NativeString */;
1505 long var190
/* : Int */;
1506 val
* var191
/* : String */;
1507 static val
* varonce192
;
1508 val
* var193
/* : String */;
1509 char* var194
/* : NativeString */;
1510 long var195
/* : Int */;
1511 val
* var196
/* : String */;
1512 val
* var197
/* : Array[Object] */;
1513 long var198
/* : Int */;
1514 val
* var199
/* : NativeArray[Object] */;
1515 val
* var200
/* : String */;
1516 val
* var202
/* : null */;
1517 short int var203
/* : Bool */;
1518 val
* var204
/* : null */;
1519 short int var205
/* : Bool */;
1520 static val
* varonce206
;
1521 val
* var207
/* : String */;
1522 char* var208
/* : NativeString */;
1523 long var209
/* : Int */;
1524 val
* var210
/* : String */;
1525 static val
* varonce211
;
1526 val
* var212
/* : String */;
1527 char* var213
/* : NativeString */;
1528 long var214
/* : Int */;
1529 val
* var215
/* : String */;
1530 static val
* varonce216
;
1531 val
* var217
/* : String */;
1532 char* var218
/* : NativeString */;
1533 long var219
/* : Int */;
1534 val
* var220
/* : String */;
1535 static val
* varonce221
;
1536 val
* var222
/* : String */;
1537 char* var223
/* : NativeString */;
1538 long var224
/* : Int */;
1539 val
* var225
/* : String */;
1540 val
* var226
/* : String */;
1541 val
* var227
/* : Array[Object] */;
1542 long var228
/* : Int */;
1543 val
* var229
/* : NativeArray[Object] */;
1544 val
* var230
/* : String */;
1545 static val
* varonce231
;
1546 val
* var232
/* : String */;
1547 char* var233
/* : NativeString */;
1548 long var234
/* : Int */;
1549 val
* var235
/* : String */;
1550 static val
* varonce236
;
1551 val
* var237
/* : String */;
1552 char* var238
/* : NativeString */;
1553 long var239
/* : Int */;
1554 val
* var240
/* : String */;
1555 static val
* varonce241
;
1556 val
* var242
/* : String */;
1557 char* var243
/* : NativeString */;
1558 long var244
/* : Int */;
1559 val
* var245
/* : String */;
1560 val
* var246
/* : String */;
1561 val
* var247
/* : Array[Object] */;
1562 long var248
/* : Int */;
1563 val
* var249
/* : NativeArray[Object] */;
1564 val
* var250
/* : String */;
1565 val
* var251
/* : null */;
1566 val
* var252
/* : nullable AModule */;
1567 val
* var_res253
/* var res: nullable AModule */;
1568 val
* var254
/* : null */;
1569 short int var255
/* : Bool */;
1570 val
* var256
/* : null */;
1571 val
* var257
/* : nullable MModule */;
1575 var_origmmodule
= var_mmodule
;
1576 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
1577 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model_base__Model__get_mmodules_by_name
]))(var1
, var_name
) /* get_mmodules_by_name on <var1:Model>*/;
1579 var3
= NEW_array__Array(&type_array__Arraystring__String
);
1580 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[String]>*/;
1581 CHECK_NEW_array__Array(var3
);
1583 var_lastmodule
= var_mmodule
;
1586 if (var_mmodule
== NULL
) {
1587 var5
= 0; /* is null */
1589 var5
= 1; /* arg is null and recv is not */
1592 var6
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__location
]))(var_mmodule
) /* location on <var_mmodule:nullable MModule(MModule)>*/;
1593 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_location__Location__file
]))(var6
) /* file on <var6:Location>*/;
1595 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1596 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 248);
1599 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_location__SourceFile__filename
]))(var7
) /* filename on <var7:nullable SourceFile>*/;
1601 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_file__String__dirname
]))(var8
) /* dirname on <var8:String>*/;
1608 var13
= string__NativeString__to_s_with_length(var11
, var12
);
1612 var14
= ((val
* (*)(val
*, val
*))(var_dirname
->class->vft
[COLOR_file__String__basename
]))(var_dirname
, var10
) /* basename on <var_dirname:String>*/;
1613 var15
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mmodule
) /* name on <var_mmodule:nullable MModule(MModule)>*/;
1614 var16
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var14
, var15
) /* != on <var14:String>*/;
1616 var17
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__direct_owner
]))(var_mmodule
) /* direct_owner on <var_mmodule:nullable MModule(MModule)>*/;
1619 var_owner
= var_mmodule
;
1622 if (var_modules
== NULL
) {
1623 var19
= 0; /* is null */
1625 var19
= 1; /* arg is null and recv is not */
1628 var20
= ((val
* (*)(val
*))(var_modules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_modules
) /* iterator on <var_modules:nullable Array[MModule](Array[MModule])>*/;
1630 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
1632 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
1633 var_candidate
= var22
;
1634 var23
= ((val
* (*)(val
*))(var_candidate
->class->vft
[COLOR_model_base__MModule__direct_owner
]))(var_candidate
) /* direct_owner on <var_candidate:MModule>*/;
1635 if (var23
== NULL
) {
1636 var24
= (var_owner
== NULL
);
1638 var24
= ((short int (*)(val
*, val
*))(var23
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var23
, var_owner
) /* == on <var23:nullable MModule>*/;
1641 var
= var_candidate
;
1645 CONTINUE_label
: (void)0;
1646 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
1648 BREAK_label
: (void)0;
1656 var29
= string__NativeString__to_s_with_length(var27
, var28
);
1660 var30
= ((val
* (*)(val
*, val
*))(var_dirname
->class->vft
[COLOR_string__String___43d
]))(var_dirname
, var26
) /* + on <var_dirname:String>*/;
1661 var31
= ((val
* (*)(val
*, val
*))(var30
->class->vft
[COLOR_string__String___43d
]))(var30
, var_name
) /* + on <var30:String>*/;
1667 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1671 var37
= ((val
* (*)(val
*, val
*))(var31
->class->vft
[COLOR_string__String___43d
]))(var31
, var33
) /* + on <var31:String>*/;
1672 var_try_file
= var37
;
1673 ((void (*)(val
*, val
*))(var_tries
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_tries
, var_try_file
) /* add on <var_tries:Array[String]>*/;
1674 var38
= ((short int (*)(val
*))(var_try_file
->class->vft
[COLOR_file__String__file_exists
]))(var_try_file
) /* file_exists on <var_try_file:String>*/;
1676 var39
= ((val
* (*)(val
*))(var_try_file
->class->vft
[COLOR_file__String__simplify_path
]))(var_try_file
) /* simplify_path on <var_try_file:String>*/;
1677 var40
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__load_module
]))(self
, var_owner
, var39
) /* load_module on <self:ModelBuilder>*/;
1680 if (var_res
== NULL
) {
1681 var42
= 1; /* is null */
1683 var42
= 0; /* arg is null but recv is not */
1691 var44
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_res
) /* mmodule on <var_res:nullable AModule(AModule)>*/;
1692 if (var44
== NULL
) {
1693 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1694 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 273);
1706 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1710 var50
= ((val
* (*)(val
*, val
*))(var_dirname
->class->vft
[COLOR_string__String___43d
]))(var_dirname
, var46
) /* + on <var_dirname:String>*/;
1711 var51
= ((val
* (*)(val
*, val
*))(var50
->class->vft
[COLOR_string__String___43d
]))(var50
, var_name
) /* + on <var50:String>*/;
1717 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1721 var57
= ((val
* (*)(val
*, val
*))(var51
->class->vft
[COLOR_string__String___43d
]))(var51
, var53
) /* + on <var51:String>*/;
1722 var58
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_string__String___43d
]))(var57
, var_name
) /* + on <var57:String>*/;
1728 var63
= string__NativeString__to_s_with_length(var61
, var62
);
1732 var64
= ((val
* (*)(val
*, val
*))(var58
->class->vft
[COLOR_string__String___43d
]))(var58
, var60
) /* + on <var58:String>*/;
1733 var_try_file
= var64
;
1734 var65
= ((short int (*)(val
*))(var_try_file
->class->vft
[COLOR_file__String__file_exists
]))(var_try_file
) /* file_exists on <var_try_file:String>*/;
1736 var66
= ((val
* (*)(val
*))(var_try_file
->class->vft
[COLOR_file__String__simplify_path
]))(var_try_file
) /* simplify_path on <var_try_file:String>*/;
1737 var67
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__load_module
]))(self
, var_owner
, var66
) /* load_module on <self:ModelBuilder>*/;
1740 if (var_res68
== NULL
) {
1741 var70
= 1; /* is null */
1743 var70
= 0; /* arg is null but recv is not */
1751 var72
= ((val
* (*)(val
*))(var_res68
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_res68
) /* mmodule on <var_res68:nullable AModule(AModule)>*/;
1752 if (var72
== NULL
) {
1753 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1754 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 281);
1761 var_lastmodule
= var_mmodule
;
1762 var73
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__direct_owner
]))(var_mmodule
) /* direct_owner on <var_mmodule:nullable MModule(MModule)>*/;
1763 var_mmodule
= var73
;
1764 CONTINUE_label74
: (void)0;
1766 BREAK_label74
: (void)0;
1768 if (var_modules
== NULL
) {
1769 var76
= 0; /* is null */
1771 var76
= 1; /* arg is null and recv is not */
1774 var77
= ((val
* (*)(val
*))(var_modules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_modules
) /* iterator on <var_modules:nullable Array[MModule](Array[MModule])>*/;
1776 var78
= ((short int (*)(val
*))(var77
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var77
) /* is_ok on <var77:Iterator[nullable Object]>*/;
1778 var79
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var77
) /* item on <var77:Iterator[nullable Object]>*/;
1779 var_candidate80
= var79
;
1780 var81
= ((val
* (*)(val
*))(var_candidate80
->class->vft
[COLOR_model_base__MModule__direct_owner
]))(var_candidate80
) /* direct_owner on <var_candidate80:MModule>*/;
1782 if (var81
== NULL
) {
1783 var83
= 1; /* is null */
1785 var83
= 0; /* arg is null but recv is not */
1788 var
= var_candidate80
;
1792 CONTINUE_label84
: (void)0;
1793 ((void (*)(val
*))(var77
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var77
) /* next on <var77:Iterator[nullable Object]>*/;
1795 BREAK_label84
: (void)0;
1798 var85
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__paths
]))(self
) /* paths on <self:ModelBuilder>*/;
1799 var_lookpaths
= var85
;
1801 if (var_lastmodule
== NULL
) {
1802 var87
= 0; /* is null */
1804 var87
= 1; /* arg is null and recv is not */
1807 var88
= ((val
* (*)(val
*))(var_lastmodule
->class->vft
[COLOR_model_base__MModule__location
]))(var_lastmodule
) /* location on <var_lastmodule:nullable MModule(MModule)>*/;
1808 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_location__Location__file
]))(var88
) /* file on <var88:Location>*/;
1809 if (var89
== NULL
) {
1810 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1811 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 301);
1814 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_location__SourceFile__filename
]))(var89
) /* filename on <var89:nullable SourceFile>*/;
1816 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_file__String__dirname
]))(var90
) /* dirname on <var90:String>*/;
1817 var_dirname92
= var91
;
1823 var97
= string__NativeString__to_s_with_length(var95
, var96
);
1827 var98
= ((val
* (*)(val
*, val
*))(var_dirname92
->class->vft
[COLOR_file__String__basename
]))(var_dirname92
, var94
) /* basename on <var_dirname92:String>*/;
1828 var99
= ((val
* (*)(val
*))(var_lastmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_lastmodule
) /* name on <var_lastmodule:nullable MModule(MModule)>*/;
1829 var100
= ((short int (*)(val
*, val
*))(var98
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var98
, var99
) /* == on <var98:String>*/;
1831 var101
= ((val
* (*)(val
*))(var_dirname92
->class->vft
[COLOR_file__String__dirname
]))(var_dirname92
) /* dirname on <var_dirname92:String>*/;
1832 var_dirname92
= var101
;
1835 var102
= ((short int (*)(val
*, val
*))(var_lookpaths
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_lookpaths
, var_dirname92
) /* has on <var_lookpaths:Array[String]>*/;
1838 var104
= ((val
* (*)(val
*))(var_lookpaths
->class->vft
[COLOR_array__Collection__to_a
]))(var_lookpaths
) /* to_a on <var_lookpaths:Array[String]>*/;
1839 var_lookpaths
= var104
;
1840 ((void (*)(val
*, val
*))(var_lookpaths
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_lookpaths
, var_dirname92
) /* add on <var_lookpaths:Array[String]>*/;
1846 var_candidate106
= var105
;
1847 var107
= ((val
* (*)(val
*))(var_lookpaths
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lookpaths
) /* iterator on <var_lookpaths:Array[String]>*/;
1849 var108
= ((short int (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var107
) /* is_ok on <var107:Iterator[nullable Object]>*/;
1851 var109
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var107
) /* item on <var107:Iterator[nullable Object]>*/;
1852 var_dirname110
= var109
;
1854 var112
= varonce111
;
1858 var115
= string__NativeString__to_s_with_length(var113
, var114
);
1860 varonce111
= var112
;
1862 var116
= ((val
* (*)(val
*, val
*))(var_dirname110
->class->vft
[COLOR_string__String___43d
]))(var_dirname110
, var112
) /* + on <var_dirname110:String>*/;
1863 var117
= ((val
* (*)(val
*, val
*))(var116
->class->vft
[COLOR_string__String___43d
]))(var116
, var_name
) /* + on <var116:String>*/;
1865 var119
= varonce118
;
1869 var122
= string__NativeString__to_s_with_length(var120
, var121
);
1871 varonce118
= var119
;
1873 var123
= ((val
* (*)(val
*, val
*))(var117
->class->vft
[COLOR_string__String___43d
]))(var117
, var119
) /* + on <var117:String>*/;
1874 var124
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_file__String__simplify_path
]))(var123
) /* simplify_path on <var123:String>*/;
1875 var_try_file125
= var124
;
1876 ((void (*)(val
*, val
*))(var_tries
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_tries
, var_try_file125
) /* add on <var_tries:Array[String]>*/;
1877 var126
= ((short int (*)(val
*))(var_try_file125
->class->vft
[COLOR_file__String__file_exists
]))(var_try_file125
) /* file_exists on <var_try_file125:String>*/;
1880 if (var_candidate106
== NULL
) {
1881 var128
= 1; /* is null */
1883 var128
= 0; /* arg is null but recv is not */
1886 var_candidate106
= var_try_file125
;
1888 var129
= ((short int (*)(val
*, val
*))(var_candidate106
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_candidate106
, var_try_file125
) /* != on <var_candidate106:nullable String(String)>*/;
1890 var130
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__module_absolute_path
]))(self
, var_candidate106
) /* module_absolute_path on <self:ModelBuilder>*/;
1891 var_abs_candidate
= var130
;
1892 var131
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__module_absolute_path
]))(self
, var_try_file125
) /* module_absolute_path on <self:ModelBuilder>*/;
1893 var_abs_try_file
= var131
;
1894 var132
= ((short int (*)(val
*, val
*))(var_abs_candidate
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_abs_candidate
, var_abs_try_file
) /* != on <var_abs_candidate:String>*/;
1897 var134
= varonce133
;
1899 var135
= "Error: conflicting module file for ";
1901 var137
= string__NativeString__to_s_with_length(var135
, var136
);
1903 varonce133
= var134
;
1906 var139
= varonce138
;
1910 var142
= string__NativeString__to_s_with_length(var140
, var141
);
1912 varonce138
= var139
;
1915 var144
= varonce143
;
1919 var147
= string__NativeString__to_s_with_length(var145
, var146
);
1921 varonce143
= var144
;
1923 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
1924 { /* var148 = array_instance Array[Object] */
1926 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
1927 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var134
;
1928 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_name
;
1929 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var139
;
1930 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var_candidate106
;
1931 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var144
;
1932 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var_try_file125
;
1933 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
1934 CHECK_NEW_array__Array(var148
);
1936 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
1937 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var151
) /* error on <self:ModelBuilder>*/;
1946 var153
= varonce152
;
1950 var156
= string__NativeString__to_s_with_length(var154
, var155
);
1952 varonce152
= var153
;
1954 var157
= ((val
* (*)(val
*, val
*))(var_dirname110
->class->vft
[COLOR_string__String___43d
]))(var_dirname110
, var153
) /* + on <var_dirname110:String>*/;
1955 var158
= ((val
* (*)(val
*, val
*))(var157
->class->vft
[COLOR_string__String___43d
]))(var157
, var_name
) /* + on <var157:String>*/;
1957 var160
= varonce159
;
1961 var163
= string__NativeString__to_s_with_length(var161
, var162
);
1963 varonce159
= var160
;
1965 var164
= ((val
* (*)(val
*, val
*))(var158
->class->vft
[COLOR_string__String___43d
]))(var158
, var160
) /* + on <var158:String>*/;
1966 var165
= ((val
* (*)(val
*, val
*))(var164
->class->vft
[COLOR_string__String___43d
]))(var164
, var_name
) /* + on <var164:String>*/;
1968 var167
= varonce166
;
1972 var170
= string__NativeString__to_s_with_length(var168
, var169
);
1974 varonce166
= var167
;
1976 var171
= ((val
* (*)(val
*, val
*))(var165
->class->vft
[COLOR_string__String___43d
]))(var165
, var167
) /* + on <var165:String>*/;
1977 var172
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_file__String__simplify_path
]))(var171
) /* simplify_path on <var171:String>*/;
1978 var_try_file125
= var172
;
1979 var173
= ((short int (*)(val
*))(var_try_file125
->class->vft
[COLOR_file__String__file_exists
]))(var_try_file125
) /* file_exists on <var_try_file125:String>*/;
1982 if (var_candidate106
== NULL
) {
1983 var175
= 1; /* is null */
1985 var175
= 0; /* arg is null but recv is not */
1988 var_candidate106
= var_try_file125
;
1990 var176
= ((short int (*)(val
*, val
*))(var_candidate106
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_candidate106
, var_try_file125
) /* != on <var_candidate106:nullable String(String)>*/;
1992 var177
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__module_absolute_path
]))(self
, var_candidate106
) /* module_absolute_path on <self:ModelBuilder>*/;
1993 var_abs_candidate178
= var177
;
1994 var179
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__module_absolute_path
]))(self
, var_try_file125
) /* module_absolute_path on <self:ModelBuilder>*/;
1995 var_abs_try_file180
= var179
;
1996 var181
= ((short int (*)(val
*, val
*))(var_abs_candidate178
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_abs_candidate178
, var_abs_try_file180
) /* != on <var_abs_candidate178:String>*/;
1999 var183
= varonce182
;
2001 var184
= "Error: conflicting module file for ";
2003 var186
= string__NativeString__to_s_with_length(var184
, var185
);
2005 varonce182
= var183
;
2008 var188
= varonce187
;
2012 var191
= string__NativeString__to_s_with_length(var189
, var190
);
2014 varonce187
= var188
;
2017 var193
= varonce192
;
2021 var196
= string__NativeString__to_s_with_length(var194
, var195
);
2023 varonce192
= var193
;
2025 var197
= NEW_array__Array(&type_array__Arraykernel__Object
);
2026 { /* var197 = array_instance Array[Object] */
2028 var199
= NEW_array__NativeArray(var198
, &type_array__NativeArraykernel__Object
);
2029 ((struct instance_array__NativeArray
*)var199
)->values
[0] = (val
*) var183
;
2030 ((struct instance_array__NativeArray
*)var199
)->values
[1] = (val
*) var_name
;
2031 ((struct instance_array__NativeArray
*)var199
)->values
[2] = (val
*) var188
;
2032 ((struct instance_array__NativeArray
*)var199
)->values
[3] = (val
*) var_candidate106
;
2033 ((struct instance_array__NativeArray
*)var199
)->values
[4] = (val
*) var193
;
2034 ((struct instance_array__NativeArray
*)var199
)->values
[5] = (val
*) var_try_file125
;
2035 ((void (*)(val
*, val
*, long))(var197
->class->vft
[COLOR_array__Array__with_native
]))(var197
, var199
, var198
) /* with_native on <var197:Array[Object]>*/;
2036 CHECK_NEW_array__Array(var197
);
2038 var200
= ((val
* (*)(val
*))(var197
->class->vft
[COLOR_string__Object__to_s
]))(var197
) /* to_s on <var197:Array[Object]>*/;
2039 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var200
) /* error on <self:ModelBuilder>*/;
2047 CONTINUE_label201
: (void)0;
2048 ((void (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var107
) /* next on <var107:Iterator[nullable Object]>*/;
2050 BREAK_label201
: (void)0;
2052 if (var_candidate106
== NULL
) {
2053 var203
= 1; /* is null */
2055 var203
= 0; /* arg is null but recv is not */
2059 if (var_origmmodule
== NULL
) {
2060 var205
= 0; /* is null */
2062 var205
= 1; /* arg is null and recv is not */
2066 var207
= varonce206
;
2068 var208
= "Error: cannot find module ";
2070 var210
= string__NativeString__to_s_with_length(var208
, var209
);
2072 varonce206
= var207
;
2075 var212
= varonce211
;
2079 var215
= string__NativeString__to_s_with_length(var213
, var214
);
2081 varonce211
= var212
;
2084 var217
= varonce216
;
2086 var218
= ". tried ";
2088 var220
= string__NativeString__to_s_with_length(var218
, var219
);
2090 varonce216
= var217
;
2093 var222
= varonce221
;
2097 var225
= string__NativeString__to_s_with_length(var223
, var224
);
2099 varonce221
= var222
;
2101 var226
= ((val
* (*)(val
*, val
*))(var_tries
->class->vft
[COLOR_string__Collection__join
]))(var_tries
, var222
) /* join on <var_tries:Array[String]>*/;
2102 var227
= NEW_array__Array(&type_array__Arraykernel__Object
);
2103 { /* var227 = array_instance Array[Object] */
2105 var229
= NEW_array__NativeArray(var228
, &type_array__NativeArraykernel__Object
);
2106 ((struct instance_array__NativeArray
*)var229
)->values
[0] = (val
*) var207
;
2107 ((struct instance_array__NativeArray
*)var229
)->values
[1] = (val
*) var_name
;
2108 ((struct instance_array__NativeArray
*)var229
)->values
[2] = (val
*) var212
;
2109 ((struct instance_array__NativeArray
*)var229
)->values
[3] = (val
*) var_origmmodule
;
2110 ((struct instance_array__NativeArray
*)var229
)->values
[4] = (val
*) var217
;
2111 ((struct instance_array__NativeArray
*)var229
)->values
[5] = (val
*) var226
;
2112 ((void (*)(val
*, val
*, long))(var227
->class->vft
[COLOR_array__Array__with_native
]))(var227
, var229
, var228
) /* with_native on <var227:Array[Object]>*/;
2113 CHECK_NEW_array__Array(var227
);
2115 var230
= ((val
* (*)(val
*))(var227
->class->vft
[COLOR_string__Object__to_s
]))(var227
) /* to_s on <var227:Array[Object]>*/;
2116 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var230
) /* error on <self:ModelBuilder>*/;
2119 var232
= varonce231
;
2121 var233
= "Error: cannot find module ";
2123 var235
= string__NativeString__to_s_with_length(var233
, var234
);
2125 varonce231
= var232
;
2128 var237
= varonce236
;
2130 var238
= ". tried ";
2132 var240
= string__NativeString__to_s_with_length(var238
, var239
);
2134 varonce236
= var237
;
2137 var242
= varonce241
;
2141 var245
= string__NativeString__to_s_with_length(var243
, var244
);
2143 varonce241
= var242
;
2145 var246
= ((val
* (*)(val
*, val
*))(var_tries
->class->vft
[COLOR_string__Collection__join
]))(var_tries
, var242
) /* join on <var_tries:Array[String]>*/;
2146 var247
= NEW_array__Array(&type_array__Arraykernel__Object
);
2147 { /* var247 = array_instance Array[Object] */
2149 var249
= NEW_array__NativeArray(var248
, &type_array__NativeArraykernel__Object
);
2150 ((struct instance_array__NativeArray
*)var249
)->values
[0] = (val
*) var232
;
2151 ((struct instance_array__NativeArray
*)var249
)->values
[1] = (val
*) var_name
;
2152 ((struct instance_array__NativeArray
*)var249
)->values
[2] = (val
*) var237
;
2153 ((struct instance_array__NativeArray
*)var249
)->values
[3] = (val
*) var246
;
2154 ((void (*)(val
*, val
*, long))(var247
->class->vft
[COLOR_array__Array__with_native
]))(var247
, var249
, var248
) /* with_native on <var247:Array[Object]>*/;
2155 CHECK_NEW_array__Array(var247
);
2157 var250
= ((val
* (*)(val
*))(var247
->class->vft
[COLOR_string__Object__to_s
]))(var247
) /* to_s on <var247:Array[Object]>*/;
2158 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_anode
, var250
) /* error on <self:ModelBuilder>*/;
2165 var252
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__load_module
]))(self
, var_mmodule
, var_candidate106
) /* load_module on <self:ModelBuilder>*/;
2166 var_res253
= var252
;
2168 if (var_res253
== NULL
) {
2169 var255
= 1; /* is null */
2171 var255
= 0; /* arg is null but recv is not */
2179 var257
= ((val
* (*)(val
*))(var_res253
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_res253
) /* mmodule on <var_res253:nullable AModule(AModule)>*/;
2180 if (var257
== NULL
) {
2181 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2182 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 351);
2190 /* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: Object, ANode, nullable MModule, String): nullable MModule */
2191 val
* VIRTUAL_modelbuilder__ModelBuilder__get_mmodule_by_name(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2192 val
* var
/* : nullable MModule */;
2193 val
* var1
/* : nullable MModule */;
2194 var1
= modelbuilder__ModelBuilder__get_mmodule_by_name(self
, p0
, p1
, p2
);
2199 /* method modelbuilder#ModelBuilder#module_absolute_path for (self: ModelBuilder, String): String */
2200 val
* modelbuilder__ModelBuilder__module_absolute_path(val
* self
, val
* p0
) {
2201 val
* var
/* : String */;
2202 val
* var_path
/* var path: String */;
2203 static val
* varonce
;
2204 val
* var1
/* : String */;
2205 char* var2
/* : NativeString */;
2206 long var3
/* : Int */;
2207 val
* var4
/* : String */;
2208 short int var5
/* : Bool */;
2209 val
* var6
/* : String */;
2210 val
* var7
/* : String */;
2211 val
* var8
/* : String */;
2218 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2222 var5
= ((short int (*)(val
*, val
*))(var_path
->class->vft
[COLOR_string__AbstractString__has_prefix
]))(var_path
, var1
) /* has_prefix on <var_path:String>*/;
2224 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_file__Object__getcwd
]))(self
) /* getcwd on <self:ModelBuilder>*/;
2225 var7
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_file__String__join_path
]))(var6
, var_path
) /* join_path on <var6:String>*/;
2226 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_file__String__simplify_path
]))(var7
) /* simplify_path on <var7:String>*/;
2236 /* method modelbuilder#ModelBuilder#module_absolute_path for (self: Object, String): String */
2237 val
* VIRTUAL_modelbuilder__ModelBuilder__module_absolute_path(val
* self
, val
* p0
) {
2238 val
* var
/* : String */;
2239 val
* var1
/* : String */;
2240 var1
= modelbuilder__ModelBuilder__module_absolute_path(self
, p0
);
2245 /* method modelbuilder#ModelBuilder#loaded_nmodules for (self: ModelBuilder): HashMap[String, AModule] */
2246 val
* modelbuilder__ModelBuilder__loaded_nmodules(val
* self
) {
2247 val
* var
/* : HashMap[String, AModule] */;
2248 val
* var1
/* : HashMap[String, AModule] */;
2249 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dloaded_nmodules
].val
; /* @loaded_nmodules on <self:ModelBuilder> */
2251 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @loaded_nmodules");
2252 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 362);
2259 /* method modelbuilder#ModelBuilder#loaded_nmodules for (self: Object): HashMap[String, AModule] */
2260 val
* VIRTUAL_modelbuilder__ModelBuilder__loaded_nmodules(val
* self
) {
2261 val
* var
/* : HashMap[String, AModule] */;
2262 val
* var1
/* : HashMap[String, AModule] */;
2263 var1
= modelbuilder__ModelBuilder__loaded_nmodules(self
);
2268 /* method modelbuilder#ModelBuilder#loaded_nmodules= for (self: ModelBuilder, HashMap[String, AModule]) */
2269 void modelbuilder__ModelBuilder__loaded_nmodules_61d(val
* self
, val
* p0
) {
2270 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dloaded_nmodules
].val
= p0
; /* @loaded_nmodules on <self:ModelBuilder> */
2273 /* method modelbuilder#ModelBuilder#loaded_nmodules= for (self: Object, HashMap[String, AModule]) */
2274 void VIRTUAL_modelbuilder__ModelBuilder__loaded_nmodules_61d(val
* self
, val
* p0
) {
2275 modelbuilder__ModelBuilder__loaded_nmodules_61d(self
, p0
);
2278 /* method modelbuilder#ModelBuilder#load_module for (self: ModelBuilder, nullable MModule, String): nullable AModule */
2279 val
* modelbuilder__ModelBuilder__load_module(val
* self
, val
* p0
, val
* p1
) {
2280 val
* var
/* : nullable AModule */;
2281 val
* var_owner
/* var owner: nullable MModule */;
2282 val
* var_filename
/* var filename: String */;
2283 val
* var1
/* : nullable String */;
2284 static val
* varonce
;
2285 val
* var2
/* : String */;
2286 char* var3
/* : NativeString */;
2287 long var4
/* : Int */;
2288 val
* var5
/* : String */;
2289 short int var6
/* : Bool */;
2290 val
* var7
/* : ToolContext */;
2291 val
* var8
/* : null */;
2292 static val
* varonce9
;
2293 val
* var10
/* : String */;
2294 char* var11
/* : NativeString */;
2295 long var12
/* : Int */;
2296 val
* var13
/* : String */;
2297 static val
* varonce14
;
2298 val
* var15
/* : String */;
2299 char* var16
/* : NativeString */;
2300 long var17
/* : Int */;
2301 val
* var18
/* : String */;
2302 val
* var19
/* : Array[Object] */;
2303 long var20
/* : Int */;
2304 val
* var21
/* : NativeArray[Object] */;
2305 val
* var22
/* : String */;
2306 val
* var23
/* : null */;
2307 short int var24
/* : Bool */;
2308 short int var25
/* : Bool */;
2309 val
* var26
/* : ToolContext */;
2310 val
* var27
/* : null */;
2311 static val
* varonce28
;
2312 val
* var29
/* : String */;
2313 char* var30
/* : NativeString */;
2314 long var31
/* : Int */;
2315 val
* var32
/* : String */;
2316 static val
* varonce33
;
2317 val
* var34
/* : String */;
2318 char* var35
/* : NativeString */;
2319 long var36
/* : Int */;
2320 val
* var37
/* : String */;
2321 val
* var38
/* : Array[Object] */;
2322 long var39
/* : Int */;
2323 val
* var40
/* : NativeArray[Object] */;
2324 val
* var41
/* : String */;
2325 val
* var42
/* : null */;
2326 val
* var43
/* : String */;
2327 val
* var_module_path
/* var module_path: String */;
2328 val
* var44
/* : HashMap[String, AModule] */;
2329 val
* var45
/* : Collection[Object] */;
2330 short int var46
/* : Bool */;
2331 val
* var47
/* : HashMap[String, AModule] */;
2332 val
* var48
/* : nullable Object */;
2333 val
* var49
/* : String */;
2334 val
* var50
/* : null */;
2335 short int var51
/* : Bool */;
2336 val
* var52
/* : String */;
2337 static val
* varonce53
;
2338 val
* var54
/* : String */;
2339 char* var55
/* : NativeString */;
2340 long var56
/* : Int */;
2341 val
* var57
/* : String */;
2342 val
* var_x
/* var x: String */;
2343 val
* var58
/* : ToolContext */;
2344 static val
* varonce59
;
2345 val
* var60
/* : String */;
2346 char* var61
/* : NativeString */;
2347 long var62
/* : Int */;
2348 val
* var63
/* : String */;
2349 static val
* varonce64
;
2350 val
* var65
/* : String */;
2351 char* var66
/* : NativeString */;
2352 long var67
/* : Int */;
2353 val
* var68
/* : String */;
2354 val
* var69
/* : Array[Object] */;
2355 long var70
/* : Int */;
2356 val
* var71
/* : NativeArray[Object] */;
2357 val
* var72
/* : String */;
2358 long var73
/* : Int */;
2359 val
* var74
/* : IFStream */;
2360 val
* var_file
/* var file: IFStream */;
2361 val
* var75
/* : Lexer */;
2362 val
* var76
/* : SourceFile */;
2363 val
* var_lexer
/* var lexer: Lexer */;
2364 val
* var77
/* : Parser */;
2365 val
* var_parser
/* var parser: Parser */;
2366 val
* var78
/* : Start */;
2367 val
* var_tree
/* var tree: Start */;
2368 val
* var79
/* : nullable AModule */;
2369 val
* var_nmodule
/* var nmodule: nullable AModule */;
2370 val
* var80
/* : null */;
2371 short int var81
/* : Bool */;
2372 val
* var82
/* : EOF */;
2373 val
* var_neof
/* var neof: EOF */;
2374 short int var83
/* : Bool */;
2377 val
* var84
/* : String */;
2378 val
* var85
/* : null */;
2379 static val
* varonce86
;
2380 val
* var87
/* : String */;
2381 char* var88
/* : NativeString */;
2382 long var89
/* : Int */;
2383 val
* var90
/* : String */;
2384 val
* var91
/* : String */;
2385 val
* var_mod_name
/* var mod_name: String */;
2386 val
* var92
/* : nullable AModuledecl */;
2387 val
* var_decl
/* var decl: nullable AModuledecl */;
2388 val
* var93
/* : null */;
2389 short int var94
/* : Bool */;
2390 val
* var95
/* : AModuleName */;
2391 val
* var96
/* : TId */;
2392 val
* var97
/* : String */;
2393 val
* var_decl_name
/* var decl_name: String */;
2394 short int var98
/* : Bool */;
2395 val
* var99
/* : AModuleName */;
2396 static val
* varonce100
;
2397 val
* var101
/* : String */;
2398 char* var102
/* : NativeString */;
2399 long var103
/* : Int */;
2400 val
* var104
/* : String */;
2401 static val
* varonce105
;
2402 val
* var106
/* : String */;
2403 char* var107
/* : NativeString */;
2404 long var108
/* : Int */;
2405 val
* var109
/* : String */;
2406 val
* var110
/* : Array[Object] */;
2407 long var111
/* : Int */;
2408 val
* var112
/* : NativeArray[Object] */;
2409 val
* var113
/* : String */;
2410 val
* var114
/* : MModule */;
2411 val
* var115
/* : Model */;
2412 val
* var116
/* : Location */;
2413 val
* var_mmodule
/* var mmodule: MModule */;
2414 val
* var117
/* : Array[AModule] */;
2415 val
* var118
/* : HashMap[MModule, AModule] */;
2416 val
* var119
/* : HashMap[String, AModule] */;
2419 var1
= ((val
* (*)(val
*))(var_filename
->class->vft
[COLOR_file__String__file_extension
]))(var_filename
) /* file_extension on <var_filename:String>*/;
2425 var5
= string__NativeString__to_s_with_length(var3
, var4
);
2430 var6
= 1; /* <var2:String> cannot be null */
2432 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var1
, var2
) /* != on <var1:nullable String>*/;
2435 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2440 var11
= "Error: file ";
2442 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2449 var16
= " is not a valid nit module.";
2451 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2455 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2456 { /* var19 = array_instance Array[Object] */
2458 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2459 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var10
;
2460 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_filename
;
2461 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2462 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2463 CHECK_NEW_array__Array(var19
);
2465 var22
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2466 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var7
, var8
, var22
) /* error on <var7:ToolContext>*/;
2472 var24
= ((short int (*)(val
*))(var_filename
->class->vft
[COLOR_file__String__file_exists
]))(var_filename
) /* file_exists on <var_filename:String>*/;
2475 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2480 var30
= "Error: file ";
2482 var32
= string__NativeString__to_s_with_length(var30
, var31
);
2489 var35
= " not found.";
2491 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2495 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
2496 { /* var38 = array_instance Array[Object] */
2498 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
2499 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
2500 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_filename
;
2501 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
2502 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
2503 CHECK_NEW_array__Array(var38
);
2505 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
2506 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var26
, var27
, var41
) /* error on <var26:ToolContext>*/;
2512 var43
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__module_absolute_path
]))(self
, var_filename
) /* module_absolute_path on <self:ModelBuilder>*/;
2513 var_module_path
= var43
;
2514 var44
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__loaded_nmodules
]))(self
) /* loaded_nmodules on <self:ModelBuilder>*/;
2515 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var44
) /* keys on <var44:HashMap[String, AModule]>*/;
2516 var46
= ((short int (*)(val
*, val
*))(var45
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var45
, var_module_path
) /* has on <var45:Collection[Object](HashMapKeys[String, AModule])>*/;
2518 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__loaded_nmodules
]))(self
) /* loaded_nmodules on <self:ModelBuilder>*/;
2519 var48
= ((val
* (*)(val
*, val
*))(var47
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var47
, var_module_path
) /* [] on <var47:HashMap[String, AModule]>*/;
2525 if (var_owner
== NULL
) {
2526 var51
= 0; /* is null */
2528 var51
= 1; /* arg is null and recv is not */
2531 var52
= ((val
* (*)(val
*))(var_owner
->class->vft
[COLOR_string__Object__to_s
]))(var_owner
) /* to_s on <var_owner:nullable MModule(MModule)>*/;
2539 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2546 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2550 var61
= "load module ";
2552 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2561 var68
= string__NativeString__to_s_with_length(var66
, var67
);
2565 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
2566 { /* var69 = array_instance Array[Object] */
2568 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
2569 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var60
;
2570 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var_filename
;
2571 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var65
;
2572 ((struct instance_array__NativeArray
*)var71
)->values
[3] = (val
*) var_x
;
2573 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
2574 CHECK_NEW_array__Array(var69
);
2576 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
2578 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var58
, var72
, var73
) /* info on <var58:ToolContext>*/;
2579 var74
= NEW_file__IFStream(&type_file__IFStream
);
2580 ((void (*)(val
*, val
*))(var74
->class->vft
[COLOR_file__IFStream__open
]))(var74
, var_filename
) /* open on <var74:IFStream>*/;
2581 CHECK_NEW_file__IFStream(var74
);
2583 var75
= NEW_lexer__Lexer(&type_lexer__Lexer
);
2584 var76
= NEW_location__SourceFile(&type_location__SourceFile
);
2585 ((void (*)(val
*, val
*, val
*))(var76
->class->vft
[COLOR_location__SourceFile__init
]))(var76
, var_filename
, var_file
) /* init on <var76:SourceFile>*/;
2586 CHECK_NEW_location__SourceFile(var76
);
2587 ((void (*)(val
*, val
*))(var75
->class->vft
[COLOR_lexer__Lexer__init
]))(var75
, var76
) /* init on <var75:Lexer>*/;
2588 CHECK_NEW_lexer__Lexer(var75
);
2590 var77
= NEW_parser__Parser(&type_parser__Parser
);
2591 ((void (*)(val
*, val
*))(var77
->class->vft
[COLOR_parser__Parser__init
]))(var77
, var_lexer
) /* init on <var77:Parser>*/;
2592 CHECK_NEW_parser__Parser(var77
);
2594 var78
= ((val
* (*)(val
*))(var_parser
->class->vft
[COLOR_parser__Parser__parse
]))(var_parser
) /* parse on <var_parser:Parser>*/;
2596 ((void (*)(val
*))(var_file
->class->vft
[COLOR_stream__IOS__close
]))(var_file
) /* close on <var_file:IFStream>*/;
2597 var79
= ((val
* (*)(val
*))(var_tree
->class->vft
[COLOR_parser_nodes__Start__n_base
]))(var_tree
) /* n_base on <var_tree:Start>*/;
2598 var_nmodule
= var79
;
2600 if (var_nmodule
== NULL
) {
2601 var81
= 1; /* is null */
2603 var81
= 0; /* arg is null but recv is not */
2606 var82
= ((val
* (*)(val
*))(var_tree
->class->vft
[COLOR_parser_nodes__Start__n_eof
]))(var_tree
) /* n_eof on <var_tree:Start>*/;
2608 /* <var_neof:EOF> isa AError */
2609 cltype
= type_parser_nodes__AError
.color
;
2610 idtype
= type_parser_nodes__AError
.id
;
2611 if(cltype
>= var_neof
->type
->table_size
) {
2614 var83
= var_neof
->type
->type_table
[cltype
] == idtype
;
2617 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2618 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 398);
2621 var84
= ((val
* (*)(val
*))(var_neof
->class->vft
[COLOR_lexer__AError__message
]))(var_neof
) /* message on <var_neof:EOF(AError)>*/;
2622 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_neof
, var84
) /* error on <self:ModelBuilder>*/;
2633 var90
= string__NativeString__to_s_with_length(var88
, var89
);
2637 var91
= ((val
* (*)(val
*, val
*))(var_filename
->class->vft
[COLOR_file__String__basename
]))(var_filename
, var87
) /* basename on <var_filename:String>*/;
2638 var_mod_name
= var91
;
2639 var92
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_moduledecl
]))(var_nmodule
) /* n_moduledecl on <var_nmodule:nullable AModule(AModule)>*/;
2642 if (var_decl
== NULL
) {
2643 var94
= 1; /* is null */
2645 var94
= 0; /* arg is null but recv is not */
2649 var95
= ((val
* (*)(val
*))(var_decl
->class->vft
[COLOR_parser_nodes__AModuledecl__n_name
]))(var_decl
) /* n_name on <var_decl:nullable AModuledecl(AModuledecl)>*/;
2650 var96
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_parser_nodes__AModuleName__n_id
]))(var95
) /* n_id on <var95:AModuleName>*/;
2651 var97
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_parser_nodes__Token__text
]))(var96
) /* text on <var96:TId>*/;
2652 var_decl_name
= var97
;
2653 var98
= ((short int (*)(val
*, val
*))(var_decl_name
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_decl_name
, var_mod_name
) /* != on <var_decl_name:String>*/;
2655 var99
= ((val
* (*)(val
*))(var_decl
->class->vft
[COLOR_parser_nodes__AModuledecl__n_name
]))(var_decl
) /* n_name on <var_decl:nullable AModuledecl(AModuledecl)>*/;
2657 var101
= varonce100
;
2659 var102
= "Error: module name missmatch; declared ";
2661 var104
= string__NativeString__to_s_with_length(var102
, var103
);
2663 varonce100
= var101
;
2666 var106
= varonce105
;
2668 var107
= " file named ";
2670 var109
= string__NativeString__to_s_with_length(var107
, var108
);
2672 varonce105
= var106
;
2674 var110
= NEW_array__Array(&type_array__Arraykernel__Object
);
2675 { /* var110 = array_instance Array[Object] */
2677 var112
= NEW_array__NativeArray(var111
, &type_array__NativeArraykernel__Object
);
2678 ((struct instance_array__NativeArray
*)var112
)->values
[0] = (val
*) var101
;
2679 ((struct instance_array__NativeArray
*)var112
)->values
[1] = (val
*) var_decl_name
;
2680 ((struct instance_array__NativeArray
*)var112
)->values
[2] = (val
*) var106
;
2681 ((struct instance_array__NativeArray
*)var112
)->values
[3] = (val
*) var_mod_name
;
2682 ((void (*)(val
*, val
*, long))(var110
->class->vft
[COLOR_array__Array__with_native
]))(var110
, var112
, var111
) /* with_native on <var110:Array[Object]>*/;
2683 CHECK_NEW_array__Array(var110
);
2685 var113
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_string__Object__to_s
]))(var110
) /* to_s on <var110:Array[Object]>*/;
2686 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var99
, var113
) /* error on <self:ModelBuilder>*/;
2690 var114
= NEW_model_base__MModule(&type_model_base__MModule
);
2691 var115
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(self
) /* model on <self:ModelBuilder>*/;
2692 var116
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nmodule
) /* location on <var_nmodule:nullable AModule(AModule)>*/;
2693 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var114
->class->vft
[COLOR_model_base__MModule__init
]))(var114
, var115
, var_owner
, var_mod_name
, var116
) /* init on <var114:MModule>*/;
2694 CHECK_NEW_model_base__MModule(var114
);
2695 var_mmodule
= var114
;
2696 ((void (*)(val
*, val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule_61d
]))(var_nmodule
, var_mmodule
) /* mmodule= on <var_nmodule:nullable AModule(AModule)>*/;
2697 var117
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__nmodules
]))(self
) /* nmodules on <self:ModelBuilder>*/;
2698 ((void (*)(val
*, val
*))(var117
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var117
, var_nmodule
) /* add on <var117:Array[AModule]>*/;
2699 var118
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(self
) /* mmodule2nmodule on <self:ModelBuilder>*/;
2700 ((void (*)(val
*, val
*, val
*))(var118
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var118
, var_mmodule
, var_nmodule
) /* []= on <var118:HashMap[MModule, AModule]>*/;
2701 var119
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__loaded_nmodules
]))(self
) /* loaded_nmodules on <self:ModelBuilder>*/;
2702 ((void (*)(val
*, val
*, val
*))(var119
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var119
, var_module_path
, var_nmodule
) /* []= on <var119:HashMap[String, AModule]>*/;
2703 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__build_module_importation
]))(self
, var_nmodule
) /* build_module_importation on <self:ModelBuilder>*/;
2709 /* method modelbuilder#ModelBuilder#load_module for (self: Object, nullable MModule, String): nullable AModule */
2710 val
* VIRTUAL_modelbuilder__ModelBuilder__load_module(val
* self
, val
* p0
, val
* p1
) {
2711 val
* var
/* : nullable AModule */;
2712 val
* var1
/* : nullable AModule */;
2713 var1
= modelbuilder__ModelBuilder__load_module(self
, p0
, p1
);
2718 /* method modelbuilder#ModelBuilder#build_module_importation for (self: ModelBuilder, AModule) */
2719 void modelbuilder__ModelBuilder__build_module_importation(val
* self
, val
* p0
) {
2720 val
* var_nmodule
/* var nmodule: AModule */;
2721 short int var
/* : Bool */;
2722 short int var1
/* : Bool */;
2723 val
* var2
/* : nullable MModule */;
2724 val
* var_mmodule
/* var mmodule: MModule */;
2725 short int var3
/* : Bool */;
2726 short int var_stdimport
/* var stdimport: Bool */;
2727 val
* var4
/* : Array[MModule] */;
2728 val
* var_imported_modules
/* var imported_modules: Array[MModule] */;
2729 val
* var5
/* : ANodes[AImport] */;
2730 val
* var6
/* : Iterator[nullable Object] */;
2731 short int var7
/* : Bool */;
2732 val
* var8
/* : nullable Object */;
2733 val
* var_aimport
/* var aimport: AImport */;
2734 short int var9
/* : Bool */;
2735 short int var10
/* : Bool */;
2738 short int var11
/* : Bool */;
2739 val
* var12
/* : AModuleName */;
2740 val
* var13
/* : TId */;
2741 val
* var14
/* : String */;
2742 val
* var_mod_name
/* var mod_name: String */;
2743 val
* var15
/* : AModuleName */;
2744 val
* var16
/* : nullable MModule */;
2745 val
* var_sup
/* var sup: nullable MModule */;
2746 val
* var17
/* : null */;
2747 short int var18
/* : Bool */;
2748 val
* var19
/* : AVisibility */;
2749 val
* var20
/* : MVisibility */;
2750 val
* var_mvisibility
/* var mvisibility: MVisibility */;
2751 val
* var21
/* : MVisibility */;
2752 short int var22
/* : Bool */;
2753 val
* var23
/* : AVisibility */;
2754 static val
* varonce
;
2755 val
* var24
/* : String */;
2756 char* var25
/* : NativeString */;
2757 long var26
/* : Int */;
2758 val
* var27
/* : String */;
2759 static val
* varonce28
;
2760 val
* var29
/* : String */;
2761 char* var30
/* : NativeString */;
2762 long var31
/* : Int */;
2763 val
* var32
/* : String */;
2764 val
* var_mod_name33
/* var mod_name: String */;
2765 val
* var34
/* : null */;
2766 val
* var35
/* : nullable MModule */;
2767 val
* var_sup36
/* var sup: nullable MModule */;
2768 val
* var37
/* : null */;
2769 short int var38
/* : Bool */;
2770 val
* var39
/* : MVisibility */;
2771 val
* var40
/* : ToolContext */;
2772 static val
* varonce41
;
2773 val
* var42
/* : String */;
2774 char* var43
/* : NativeString */;
2775 long var44
/* : Int */;
2776 val
* var45
/* : String */;
2777 static val
* varonce46
;
2778 val
* var47
/* : String */;
2779 char* var48
/* : NativeString */;
2780 long var49
/* : Int */;
2781 val
* var50
/* : String */;
2782 val
* var51
/* : String */;
2783 val
* var52
/* : Array[Object] */;
2784 long var53
/* : Int */;
2785 val
* var54
/* : NativeArray[Object] */;
2786 val
* var55
/* : String */;
2787 long var56
/* : Int */;
2789 var
= ((short int (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__is_importation_done
]))(var_nmodule
) /* is_importation_done on <var_nmodule:AModule>*/;
2795 ((void (*)(val
*, short int))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__is_importation_done_61d
]))(var_nmodule
, var1
) /* is_importation_done= on <var_nmodule:AModule>*/;
2796 var2
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
2798 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2799 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 432);
2804 var_stdimport
= var3
;
2805 var4
= NEW_array__Array(&type_array__Arraymodel_base__MModule
);
2806 ((void (*)(val
*))(var4
->class->vft
[COLOR_array__Array__init
]))(var4
) /* init on <var4:Array[MModule]>*/;
2807 CHECK_NEW_array__Array(var4
);
2808 var_imported_modules
= var4
;
2809 var5
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_imports
]))(var_nmodule
) /* n_imports on <var_nmodule:AModule>*/;
2810 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:ANodes[AImport]>*/;
2812 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
2814 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
2817 var_stdimport
= var9
;
2818 /* <var_aimport:AImport> isa AStdImport */
2819 cltype
= type_parser_nodes__AStdImport
.color
;
2820 idtype
= type_parser_nodes__AStdImport
.id
;
2821 if(cltype
>= var_aimport
->type
->table_size
) {
2824 var10
= var_aimport
->type
->type_table
[cltype
] == idtype
;
2828 goto CONTINUE_label
;
2831 var12
= ((val
* (*)(val
*))(var_aimport
->class->vft
[COLOR_parser_nodes__AStdImport__n_name
]))(var_aimport
) /* n_name on <var_aimport:AImport(AStdImport)>*/;
2832 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_parser_nodes__AModuleName__n_id
]))(var12
) /* n_id on <var12:AModuleName>*/;
2833 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_parser_nodes__Token__text
]))(var13
) /* text on <var13:TId>*/;
2834 var_mod_name
= var14
;
2835 var15
= ((val
* (*)(val
*))(var_aimport
->class->vft
[COLOR_parser_nodes__AStdImport__n_name
]))(var_aimport
) /* n_name on <var_aimport:AImport(AStdImport)>*/;
2836 var16
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__get_mmodule_by_name
]))(self
, var15
, var_mmodule
, var_mod_name
) /* get_mmodule_by_name on <self:ModelBuilder>*/;
2839 if (var_sup
== NULL
) {
2840 var18
= 1; /* is null */
2842 var18
= 0; /* arg is null but recv is not */
2845 goto CONTINUE_label
;
2848 ((void (*)(val
*, val
*))(var_aimport
->class->vft
[COLOR_modelbuilder__AStdImport__mmodule_61d
]))(var_aimport
, var_sup
) /* mmodule= on <var_aimport:AImport(AStdImport)>*/;
2849 ((void (*)(val
*, val
*))(var_imported_modules
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_imported_modules
, var_sup
) /* add on <var_imported_modules:Array[MModule]>*/;
2850 var19
= ((val
* (*)(val
*))(var_aimport
->class->vft
[COLOR_parser_nodes__AStdImport__n_visibility
]))(var_aimport
) /* n_visibility on <var_aimport:AImport(AStdImport)>*/;
2851 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_modelbuilder__AVisibility__mvisibility
]))(var19
) /* mvisibility on <var19:AVisibility>*/;
2852 var_mvisibility
= var20
;
2853 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:ModelBuilder>*/;
2854 var22
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mvisibility
, var21
) /* == on <var_mvisibility:MVisibility>*/;
2856 var23
= ((val
* (*)(val
*))(var_aimport
->class->vft
[COLOR_parser_nodes__AStdImport__n_visibility
]))(var_aimport
) /* n_visibility on <var_aimport:AImport(AStdImport)>*/;
2860 var25
= "Error: only properties can be protected.";
2862 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2866 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var23
, var24
) /* error on <self:ModelBuilder>*/;
2870 ((void (*)(val
*, val
*, val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__set_visibility_for
]))(var_mmodule
, var_sup
, var_mvisibility
) /* set_visibility_for on <var_mmodule:MModule>*/;
2871 CONTINUE_label
: (void)0;
2872 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
2874 BREAK_label
: (void)0;
2881 var32
= string__NativeString__to_s_with_length(var30
, var31
);
2885 var_mod_name33
= var29
;
2887 var35
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__get_mmodule_by_name
]))(self
, var_nmodule
, var34
, var_mod_name33
) /* get_mmodule_by_name on <self:ModelBuilder>*/;
2890 if (var_sup36
== NULL
) {
2891 var38
= 0; /* is null */
2893 var38
= 1; /* arg is null and recv is not */
2896 ((void (*)(val
*, val
*))(var_imported_modules
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_imported_modules
, var_sup36
) /* add on <var_imported_modules:Array[MModule]>*/;
2897 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:ModelBuilder>*/;
2898 ((void (*)(val
*, val
*, val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__set_visibility_for
]))(var_mmodule
, var_sup36
, var39
) /* set_visibility_for on <var_mmodule:MModule>*/;
2903 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2907 var43
= " imports ";
2909 var45
= string__NativeString__to_s_with_length(var43
, var44
);
2918 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2922 var51
= ((val
* (*)(val
*, val
*))(var_imported_modules
->class->vft
[COLOR_string__Collection__join
]))(var_imported_modules
, var47
) /* join on <var_imported_modules:Array[MModule]>*/;
2923 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
2924 { /* var52 = array_instance Array[Object] */
2926 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
2927 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var_mmodule
;
2928 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var42
;
2929 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var51
;
2930 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
2931 CHECK_NEW_array__Array(var52
);
2933 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
2935 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var40
, var55
, var56
) /* info on <var40:ToolContext>*/;
2936 ((void (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__set_imported_mmodules
]))(var_mmodule
, var_imported_modules
) /* set_imported_mmodules on <var_mmodule:MModule>*/;
2939 /* method modelbuilder#ModelBuilder#build_module_importation for (self: Object, AModule) */
2940 void VIRTUAL_modelbuilder__ModelBuilder__build_module_importation(val
* self
, val
* p0
) {
2941 modelbuilder__ModelBuilder__build_module_importation(self
, p0
);
2944 /* method modelbuilder#ModelBuilder#nmodules for (self: ModelBuilder): Array[AModule] */
2945 val
* modelbuilder__ModelBuilder__nmodules(val
* self
) {
2946 val
* var
/* : Array[AModule] */;
2947 val
* var1
/* : Array[AModule] */;
2948 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dnmodules
].val
; /* @nmodules on <self:ModelBuilder> */
2950 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @nmodules");
2951 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 464);
2958 /* method modelbuilder#ModelBuilder#nmodules for (self: Object): Array[AModule] */
2959 val
* VIRTUAL_modelbuilder__ModelBuilder__nmodules(val
* self
) {
2960 val
* var
/* : Array[AModule] */;
2961 val
* var1
/* : Array[AModule] */;
2962 var1
= modelbuilder__ModelBuilder__nmodules(self
);
2967 /* method modelbuilder#ModelBuilder#nmodules= for (self: ModelBuilder, Array[AModule]) */
2968 void modelbuilder__ModelBuilder__nmodules_61d(val
* self
, val
* p0
) {
2969 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dnmodules
].val
= p0
; /* @nmodules on <self:ModelBuilder> */
2972 /* method modelbuilder#ModelBuilder#nmodules= for (self: Object, Array[AModule]) */
2973 void VIRTUAL_modelbuilder__ModelBuilder__nmodules_61d(val
* self
, val
* p0
) {
2974 modelbuilder__ModelBuilder__nmodules_61d(self
, p0
);
2977 /* method modelbuilder#ModelBuilder#mmodule2nmodule for (self: ModelBuilder): HashMap[MModule, AModule] */
2978 val
* modelbuilder__ModelBuilder__mmodule2nmodule(val
* self
) {
2979 val
* var
/* : HashMap[MModule, AModule] */;
2980 val
* var1
/* : HashMap[MModule, AModule] */;
2981 var1
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dmmodule2nmodule
].val
; /* @mmodule2nmodule on <self:ModelBuilder> */
2983 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule2nmodule");
2984 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 467);
2991 /* method modelbuilder#ModelBuilder#mmodule2nmodule for (self: Object): HashMap[MModule, AModule] */
2992 val
* VIRTUAL_modelbuilder__ModelBuilder__mmodule2nmodule(val
* self
) {
2993 val
* var
/* : HashMap[MModule, AModule] */;
2994 val
* var1
/* : HashMap[MModule, AModule] */;
2995 var1
= modelbuilder__ModelBuilder__mmodule2nmodule(self
);
3000 /* method modelbuilder#ModelBuilder#mmodule2nmodule= for (self: ModelBuilder, HashMap[MModule, AModule]) */
3001 void modelbuilder__ModelBuilder__mmodule2nmodule_61d(val
* self
, val
* p0
) {
3002 self
->attrs
[COLOR_modelbuilder__ModelBuilder___64dmmodule2nmodule
].val
= p0
; /* @mmodule2nmodule on <self:ModelBuilder> */
3005 /* method modelbuilder#ModelBuilder#mmodule2nmodule= for (self: Object, HashMap[MModule, AModule]) */
3006 void VIRTUAL_modelbuilder__ModelBuilder__mmodule2nmodule_61d(val
* self
, val
* p0
) {
3007 modelbuilder__ModelBuilder__mmodule2nmodule_61d(self
, p0
);
3010 /* method modelbuilder#ModelBuilder#error for (self: ModelBuilder, ANode, String) */
3011 void modelbuilder__ModelBuilder__error(val
* self
, val
* p0
, val
* p1
) {
3012 val
* var_n
/* var n: ANode */;
3013 val
* var_text
/* var text: String */;
3014 val
* var
/* : ToolContext */;
3015 val
* var1
/* : Location */;
3018 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
3019 var1
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
3020 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var
, var1
, var_text
) /* error on <var:ToolContext>*/;
3023 /* method modelbuilder#ModelBuilder#error for (self: Object, ANode, String) */
3024 void VIRTUAL_modelbuilder__ModelBuilder__error(val
* self
, val
* p0
, val
* p1
) {
3025 modelbuilder__ModelBuilder__error(self
, p0
, p1
);
3028 /* method modelbuilder#ModelBuilder#warning for (self: ModelBuilder, ANode, String) */
3029 void modelbuilder__ModelBuilder__warning(val
* self
, val
* p0
, val
* p1
) {
3030 val
* var_n
/* var n: ANode */;
3031 val
* var_text
/* var text: String */;
3032 val
* var
/* : ToolContext */;
3033 val
* var1
/* : Location */;
3036 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
3037 var1
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
3038 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_toolcontext__ToolContext__warning
]))(var
, var1
, var_text
) /* warning on <var:ToolContext>*/;
3041 /* method modelbuilder#ModelBuilder#warning for (self: Object, ANode, String) */
3042 void VIRTUAL_modelbuilder__ModelBuilder__warning(val
* self
, val
* p0
, val
* p1
) {
3043 modelbuilder__ModelBuilder__warning(self
, p0
, p1
);
3046 /* method modelbuilder#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, ANode, String, MClass, MModule): MMethod */
3047 val
* modelbuilder__ModelBuilder__force_get_primitive_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
3048 val
* var
/* : MMethod */;
3049 val
* var_n
/* var n: ANode */;
3050 val
* var_name
/* var name: String */;
3051 val
* var_recv
/* var recv: MClass */;
3052 val
* var_mmodule
/* var mmodule: MModule */;
3053 val
* var1
/* : nullable MMethod */;
3054 val
* var_res
/* var res: nullable MMethod */;
3055 val
* var2
/* : null */;
3056 short int var3
/* : Bool */;
3057 val
* var4
/* : ToolContext */;
3058 val
* var5
/* : Location */;
3059 static val
* varonce
;
3060 val
* var6
/* : String */;
3061 char* var7
/* : NativeString */;
3062 long var8
/* : Int */;
3063 val
* var9
/* : String */;
3064 static val
* varonce10
;
3065 val
* var11
/* : String */;
3066 char* var12
/* : NativeString */;
3067 long var13
/* : Int */;
3068 val
* var14
/* : String */;
3069 static val
* varonce15
;
3070 val
* var16
/* : String */;
3071 char* var17
/* : NativeString */;
3072 long var18
/* : Int */;
3073 val
* var19
/* : String */;
3074 val
* var20
/* : Array[Object] */;
3075 long var21
/* : Int */;
3076 val
* var22
/* : NativeArray[Object] */;
3077 val
* var23
/* : String */;
3082 var1
= ((val
* (*)(val
*, val
*, val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__try_get_primitive_method
]))(var_mmodule
, var_name
, var_recv
) /* try_get_primitive_method on <var_mmodule:MModule>*/;
3085 if (var_res
== NULL
) {
3086 var3
= 1; /* is null */
3088 var3
= 0; /* arg is null but recv is not */
3091 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
3092 var5
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_n
) /* hot_location on <var_n:ANode>*/;
3096 var7
= "Fatal Error: ";
3098 var9
= string__NativeString__to_s_with_length(var7
, var8
);
3105 var12
= " must have a property named ";
3107 var14
= string__NativeString__to_s_with_length(var12
, var13
);
3116 var19
= string__NativeString__to_s_with_length(var17
, var18
);
3120 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
3121 { /* var20 = array_instance Array[Object] */
3123 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
3124 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var6
;
3125 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_recv
;
3126 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var11
;
3127 ((struct instance_array__NativeArray
*)var22
)->values
[3] = (val
*) var_name
;
3128 ((struct instance_array__NativeArray
*)var22
)->values
[4] = (val
*) var16
;
3129 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
3130 CHECK_NEW_array__Array(var20
);
3132 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
3133 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_toolcontext__ToolContext__fatal_error
]))(var4
, var5
, var23
) /* fatal_error on <var4:ToolContext>*/;
3134 fprintf(stderr
, "Runtime error: %s", "Aborted");
3135 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 491);
3144 /* method modelbuilder#ModelBuilder#force_get_primitive_method for (self: Object, ANode, String, MClass, MModule): MMethod */
3145 val
* VIRTUAL_modelbuilder__ModelBuilder__force_get_primitive_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
3146 val
* var
/* : MMethod */;
3147 val
* var1
/* : MMethod */;
3148 var1
= modelbuilder__ModelBuilder__force_get_primitive_method(self
, p0
, p1
, p2
, p3
);
3153 /* method modelbuilder#AStdImport#mmodule for (self: AStdImport): nullable MModule */
3154 val
* modelbuilder__AStdImport__mmodule(val
* self
) {
3155 val
* var
/* : nullable MModule */;
3156 val
* var1
/* : nullable MModule */;
3157 var1
= self
->attrs
[COLOR_modelbuilder__AStdImport___64dmmodule
].val
; /* @mmodule on <self:AStdImport> */
3162 /* method modelbuilder#AStdImport#mmodule for (self: Object): nullable MModule */
3163 val
* VIRTUAL_modelbuilder__AStdImport__mmodule(val
* self
) {
3164 val
* var
/* : nullable MModule */;
3165 val
* var1
/* : nullable MModule */;
3166 var1
= modelbuilder__AStdImport__mmodule(self
);
3171 /* method modelbuilder#AStdImport#mmodule= for (self: AStdImport, nullable MModule) */
3172 void modelbuilder__AStdImport__mmodule_61d(val
* self
, val
* p0
) {
3173 self
->attrs
[COLOR_modelbuilder__AStdImport___64dmmodule
].val
= p0
; /* @mmodule on <self:AStdImport> */
3176 /* method modelbuilder#AStdImport#mmodule= for (self: Object, nullable MModule) */
3177 void VIRTUAL_modelbuilder__AStdImport__mmodule_61d(val
* self
, val
* p0
) {
3178 modelbuilder__AStdImport__mmodule_61d(self
, p0
);
3181 /* method modelbuilder#AModule#mmodule for (self: AModule): nullable MModule */
3182 val
* modelbuilder__AModule__mmodule(val
* self
) {
3183 val
* var
/* : nullable MModule */;
3184 val
* var1
/* : nullable MModule */;
3185 var1
= self
->attrs
[COLOR_modelbuilder__AModule___64dmmodule
].val
; /* @mmodule on <self:AModule> */
3190 /* method modelbuilder#AModule#mmodule for (self: Object): nullable MModule */
3191 val
* VIRTUAL_modelbuilder__AModule__mmodule(val
* self
) {
3192 val
* var
/* : nullable MModule */;
3193 val
* var1
/* : nullable MModule */;
3194 var1
= modelbuilder__AModule__mmodule(self
);
3199 /* method modelbuilder#AModule#mmodule= for (self: AModule, nullable MModule) */
3200 void modelbuilder__AModule__mmodule_61d(val
* self
, val
* p0
) {
3201 self
->attrs
[COLOR_modelbuilder__AModule___64dmmodule
].val
= p0
; /* @mmodule on <self:AModule> */
3204 /* method modelbuilder#AModule#mmodule= for (self: Object, nullable MModule) */
3205 void VIRTUAL_modelbuilder__AModule__mmodule_61d(val
* self
, val
* p0
) {
3206 modelbuilder__AModule__mmodule_61d(self
, p0
);
3209 /* method modelbuilder#AModule#is_importation_done for (self: AModule): Bool */
3210 short int modelbuilder__AModule__is_importation_done(val
* self
) {
3211 short int var
/* : Bool */;
3212 short int var1
/* : Bool */;
3213 var1
= self
->attrs
[COLOR_modelbuilder__AModule___64dis_importation_done
].s
; /* @is_importation_done on <self:AModule> */
3218 /* method modelbuilder#AModule#is_importation_done for (self: Object): Bool */
3219 short int VIRTUAL_modelbuilder__AModule__is_importation_done(val
* self
) {
3220 short int var
/* : Bool */;
3221 short int var1
/* : Bool */;
3222 var1
= modelbuilder__AModule__is_importation_done(self
);
3227 /* method modelbuilder#AModule#is_importation_done= for (self: AModule, Bool) */
3228 void modelbuilder__AModule__is_importation_done_61d(val
* self
, short int p0
) {
3229 self
->attrs
[COLOR_modelbuilder__AModule___64dis_importation_done
].s
= p0
; /* @is_importation_done on <self:AModule> */
3232 /* method modelbuilder#AModule#is_importation_done= for (self: Object, Bool) */
3233 void VIRTUAL_modelbuilder__AModule__is_importation_done_61d(val
* self
, short int p0
) {
3234 modelbuilder__AModule__is_importation_done_61d(self
, p0
);
3237 /* method modelbuilder#AVisibility#mvisibility for (self: AVisibility): MVisibility */
3238 val
* modelbuilder__AVisibility__mvisibility(val
* self
) {
3239 val
* var
/* : MVisibility */;
3240 const char* var_class_name
;
3241 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3242 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "mvisibility", var_class_name
);
3243 fprintf(stderr
, " (%s:%d)\n", "src/modelbuilder.nit", 510);
3248 /* method modelbuilder#AVisibility#mvisibility for (self: Object): MVisibility */
3249 val
* VIRTUAL_modelbuilder__AVisibility__mvisibility(val
* self
) {
3250 val
* var
/* : MVisibility */;
3251 val
* var1
/* : MVisibility */;
3252 var1
= modelbuilder__AVisibility__mvisibility(self
);
3257 /* method modelbuilder#AIntrudeVisibility#mvisibility for (self: AIntrudeVisibility): MVisibility */
3258 val
* modelbuilder__AIntrudeVisibility__mvisibility(val
* self
) {
3259 val
* var
/* : MVisibility */;
3260 val
* var1
/* : MVisibility */;
3261 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:AIntrudeVisibility>*/;
3267 /* method modelbuilder#AIntrudeVisibility#mvisibility for (self: Object): MVisibility */
3268 val
* VIRTUAL_modelbuilder__AIntrudeVisibility__mvisibility(val
* self
) {
3269 val
* var
/* : MVisibility */;
3270 val
* var1
/* : MVisibility */;
3271 var1
= modelbuilder__AIntrudeVisibility__mvisibility(self
);
3276 /* method modelbuilder#APublicVisibility#mvisibility for (self: APublicVisibility): MVisibility */
3277 val
* modelbuilder__APublicVisibility__mvisibility(val
* self
) {
3278 val
* var
/* : MVisibility */;
3279 val
* var1
/* : MVisibility */;
3280 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:APublicVisibility>*/;
3286 /* method modelbuilder#APublicVisibility#mvisibility for (self: Object): MVisibility */
3287 val
* VIRTUAL_modelbuilder__APublicVisibility__mvisibility(val
* self
) {
3288 val
* var
/* : MVisibility */;
3289 val
* var1
/* : MVisibility */;
3290 var1
= modelbuilder__APublicVisibility__mvisibility(self
);
3295 /* method modelbuilder#AProtectedVisibility#mvisibility for (self: AProtectedVisibility): MVisibility */
3296 val
* modelbuilder__AProtectedVisibility__mvisibility(val
* self
) {
3297 val
* var
/* : MVisibility */;
3298 val
* var1
/* : MVisibility */;
3299 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:AProtectedVisibility>*/;
3305 /* method modelbuilder#AProtectedVisibility#mvisibility for (self: Object): MVisibility */
3306 val
* VIRTUAL_modelbuilder__AProtectedVisibility__mvisibility(val
* self
) {
3307 val
* var
/* : MVisibility */;
3308 val
* var1
/* : MVisibility */;
3309 var1
= modelbuilder__AProtectedVisibility__mvisibility(self
);
3314 /* method modelbuilder#APrivateVisibility#mvisibility for (self: APrivateVisibility): MVisibility */
3315 val
* modelbuilder__APrivateVisibility__mvisibility(val
* self
) {
3316 val
* var
/* : MVisibility */;
3317 val
* var1
/* : MVisibility */;
3318 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__private_visibility
]))(self
) /* private_visibility on <self:APrivateVisibility>*/;
3324 /* method modelbuilder#APrivateVisibility#mvisibility for (self: Object): MVisibility */
3325 val
* VIRTUAL_modelbuilder__APrivateVisibility__mvisibility(val
* self
) {
3326 val
* var
/* : MVisibility */;
3327 val
* var1
/* : MVisibility */;
3328 var1
= modelbuilder__APrivateVisibility__mvisibility(self
);