1 #include "nitg.sep.0.h"
2 /* method nitg#Sys#main for (self: Sys) */
3 void nitg__Sys__main(val
* self
) {
4 val
* var
/* : ToolContext */;
5 val
* var_toolcontext
/* var toolcontext: ToolContext */;
6 val
* var1
/* : OptionBool */;
8 val
* var2
/* : String */;
9 char* var3
/* : NativeString */;
10 long var4
/* : Int */;
11 val
* var5
/* : String */;
13 val
* var7
/* : String */;
14 char* var8
/* : NativeString */;
15 long var9
/* : Int */;
16 val
* var10
/* : String */;
17 val
* var11
/* : Array[String] */;
18 long var12
/* : Int */;
19 val
* var13
/* : NativeArray[String] */;
20 val
* var_opt_global
/* var opt_global: OptionBool */;
21 val
* var14
/* : OptionContext */;
22 val
* var15
/* : Array[Option] */;
23 long var16
/* : Int */;
24 val
* var17
/* : NativeArray[Option] */;
25 val
* var18
/* : OptionArray */;
26 static val
* varonce19
;
27 val
* var20
/* : String */;
28 char* var21
/* : NativeString */;
29 long var22
/* : Int */;
30 val
* var23
/* : String */;
31 static val
* varonce24
;
32 val
* var25
/* : String */;
33 char* var26
/* : NativeString */;
34 long var27
/* : Int */;
35 val
* var28
/* : String */;
36 val
* var29
/* : Array[String] */;
37 long var30
/* : Int */;
38 val
* var31
/* : NativeArray[String] */;
39 val
* var_opt_mixins
/* var opt_mixins: OptionArray */;
40 val
* var32
/* : OptionContext */;
41 val
* var33
/* : Array[Option] */;
42 long var34
/* : Int */;
43 val
* var35
/* : NativeArray[Option] */;
44 val
* var36
/* : Model */;
45 val
* var_model
/* var model: Model */;
46 val
* var37
/* : ModelBuilder */;
47 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
48 val
* var38
/* : OptionContext */;
49 val
* var39
/* : Array[String] */;
50 val
* var_arguments
/* var arguments: Array[String] */;
51 short int var40
/* : Bool */;
52 val
* var41
/* : OptionContext */;
53 long var42
/* : Int */;
54 long var43
/* : Int */;
55 short int var44
/* : Bool */;
56 short int var46
/* : Bool */;
59 short int var47
/* : Bool */;
60 static val
* varonce48
;
61 val
* var49
/* : String */;
62 char* var50
/* : NativeString */;
63 long var51
/* : Int */;
64 val
* var52
/* : String */;
65 static val
* varonce53
;
66 val
* var54
/* : String */;
67 char* var55
/* : NativeString */;
68 long var56
/* : Int */;
69 val
* var57
/* : String */;
70 val
* var58
/* : String */;
71 val
* var59
/* : Array[Object] */;
72 long var60
/* : Int */;
73 val
* var61
/* : NativeArray[Object] */;
74 val
* var62
/* : String */;
75 val
* var63
/* : OptionContext */;
76 val
* var64
/* : nullable Object */;
77 val
* var_progname
/* var progname: String */;
78 val
* var65
/* : Array[String] */;
79 long var66
/* : Int */;
80 val
* var67
/* : NativeArray[String] */;
81 val
* var68
/* : Array[MModule] */;
82 val
* var_mmodules
/* var mmodules: Array[MModule] */;
83 val
* var69
/* : nullable Object */;
84 val
* var70
/* : Array[MModule] */;
85 short int var71
/* : Bool */;
86 long var72
/* : Int */;
87 long var73
/* : Int */;
88 short int var74
/* : Bool */;
89 short int var76
/* : Bool */;
90 val
* var77
/* : nullable Object */;
91 val
* var_mainmodule
/* var mainmodule: nullable Object */;
92 val
* var78
/* : MModule */;
93 val
* var79
/* : null */;
94 val
* var80
/* : nullable Object */;
95 val
* var81
/* : String */;
96 val
* var82
/* : nullable Object */;
97 val
* var83
/* : Location */;
98 val
* var84
/* : RapidTypeAnalysis */;
99 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
100 val
* var85
/* : OptionBool */;
101 val
* var86
/* : nullable Object */;
102 short int var87
/* : Bool */;
103 val
* var88
/* : nullable Object */;
104 short int var89
/* : Bool */;
105 var
= NEW_toolcontext__ToolContext(&type_toolcontext__ToolContext
);
106 ((void (*)(val
*))(var
->class->vft
[COLOR_toolcontext__ToolContext__init
]))(var
) /* init on <var:ToolContext>*/;
107 CHECK_NEW_toolcontext__ToolContext(var
);
108 var_toolcontext
= var
;
109 var1
= NEW_opts__OptionBool(&type_opts__OptionBool
);
113 var3
= "Use global compilation";
115 var5
= string__NativeString__to_s_with_length(var3
, var4
);
124 var10
= string__NativeString__to_s_with_length(var8
, var9
);
128 var11
= NEW_array__Array(&type_array__Arraystring__String
);
129 { /* var11 = array_instance Array[String] */
131 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraystring__String
);
132 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var7
;
133 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[String]>*/;
134 CHECK_NEW_array__Array(var11
);
136 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_opts__OptionBool__init
]))(var1
, var2
, var11
) /* init on <var1:OptionBool>*/;
137 CHECK_NEW_opts__OptionBool(var1
);
138 var_opt_global
= var1
;
139 var14
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(var_toolcontext
) /* option_context on <var_toolcontext:ToolContext>*/;
140 var15
= NEW_array__Array(&type_array__Arrayopts__Option
);
141 { /* var15 = array_instance Array[Option] */
143 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArrayopts__Option
);
144 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var_opt_global
;
145 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Option]>*/;
146 CHECK_NEW_array__Array(var15
);
148 ((void (*)(val
*, val
*))(var14
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var14
, var15
) /* add_option on <var14:OptionContext>*/;
149 var18
= NEW_opts__OptionArray(&type_opts__OptionArray
);
153 var21
= "Additionals module to min-in";
155 var23
= string__NativeString__to_s_with_length(var21
, var22
);
164 var28
= string__NativeString__to_s_with_length(var26
, var27
);
168 var29
= NEW_array__Array(&type_array__Arraystring__String
);
169 { /* var29 = array_instance Array[String] */
171 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraystring__String
);
172 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var25
;
173 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[String]>*/;
174 CHECK_NEW_array__Array(var29
);
176 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_opts__OptionArray__init
]))(var18
, var20
, var29
) /* init on <var18:OptionArray>*/;
177 CHECK_NEW_opts__OptionArray(var18
);
178 var_opt_mixins
= var18
;
179 var32
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(var_toolcontext
) /* option_context on <var_toolcontext:ToolContext>*/;
180 var33
= NEW_array__Array(&type_array__Arrayopts__Option
);
181 { /* var33 = array_instance Array[Option] */
183 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArrayopts__Option
);
184 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_opt_mixins
;
185 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Option]>*/;
186 CHECK_NEW_array__Array(var33
);
188 ((void (*)(val
*, val
*))(var32
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var32
, var33
) /* add_option on <var32:OptionContext>*/;
189 ((void (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__process_options
]))(var_toolcontext
) /* process_options on <var_toolcontext:ToolContext>*/;
190 var36
= NEW_model_base__Model(&type_model_base__Model
);
191 ((void (*)(val
*))(var36
->class->vft
[COLOR_model_base__Model__init
]))(var36
) /* init on <var36:Model>*/;
192 CHECK_NEW_model_base__Model(var36
);
194 var37
= NEW_modelbuilder__ModelBuilder(&type_modelbuilder__ModelBuilder
);
195 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__init
]))(var37
, var_model
, var_toolcontext
) /* init on <var37:ModelBuilder>*/;
196 CHECK_NEW_modelbuilder__ModelBuilder(var37
);
197 var_modelbuilder
= var37
;
198 var38
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(var_toolcontext
) /* option_context on <var_toolcontext:ToolContext>*/;
199 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_opts__OptionContext__rest
]))(var38
) /* rest on <var38:OptionContext>*/;
200 var_arguments
= var39
;
201 var40
= ((short int (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_arguments
) /* is_empty on <var_arguments:Array[String]>*/;
203 var41
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(var_toolcontext
) /* option_context on <var_toolcontext:ToolContext>*/;
204 ((void (*)(val
*))(var41
->class->vft
[COLOR_opts__OptionContext__usage
]))(var41
) /* usage on <var41:OptionContext>*/;
208 var42
= ((long (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_arguments
) /* length on <var_arguments:Array[String]>*/;
210 { /* Inline kernel#Int#> (var42,var43) */
211 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
212 /* <var43:Int> isa OTHER */
213 var46
= 1; /* easy <var43:Int> isa OTHER*/
215 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
218 var47
= var42
> var43
;
227 var50
= "Too much arguments: ";
229 var52
= string__NativeString__to_s_with_length(var50
, var51
);
238 var57
= string__NativeString__to_s_with_length(var55
, var56
);
242 var58
= ((val
* (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_string__Collection__join
]))(var_arguments
, var54
) /* join on <var_arguments:Array[String]>*/;
243 var59
= NEW_array__Array(&type_array__Arraykernel__Object
);
244 { /* var59 = array_instance Array[Object] */
246 var61
= NEW_array__NativeArray(var60
, &type_array__NativeArraykernel__Object
);
247 ((struct instance_array__NativeArray
*)var61
)->values
[0] = (val
*) var49
;
248 ((struct instance_array__NativeArray
*)var61
)->values
[1] = (val
*) var58
;
249 ((void (*)(val
*, val
*, long))(var59
->class->vft
[COLOR_array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
250 CHECK_NEW_array__Array(var59
);
252 var62
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
253 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var62
) /* print on <self:Sys>*/;
254 var63
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(var_toolcontext
) /* option_context on <var_toolcontext:ToolContext>*/;
255 ((void (*)(val
*))(var63
->class->vft
[COLOR_opts__OptionContext__usage
]))(var63
) /* usage on <var63:OptionContext>*/;
259 var64
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[String]>*/;
260 var_progname
= var64
;
261 var65
= NEW_array__Array(&type_array__Arraystring__String
);
262 { /* var65 = array_instance Array[String] */
264 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraystring__String
);
265 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var_progname
;
266 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[String]>*/;
267 CHECK_NEW_array__Array(var65
);
269 var68
= ((val
* (*)(val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_modelbuilder__ModelBuilder__parse
]))(var_modelbuilder
, var65
) /* parse on <var_modelbuilder:ModelBuilder>*/;
270 var_mmodules
= var68
;
271 var69
= ((val
* (*)(val
*))(var_opt_mixins
->class->vft
[COLOR_opts__Option__value
]))(var_opt_mixins
) /* value on <var_opt_mixins:OptionArray>*/;
272 var70
= ((val
* (*)(val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_modelbuilder__ModelBuilder__parse
]))(var_modelbuilder
, var69
) /* parse on <var_modelbuilder:ModelBuilder>*/;
273 ((void (*)(val
*, val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mmodules
, var70
) /* add_all on <var_mmodules:Array[MModule]>*/;
274 var71
= ((short int (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_mmodules
) /* is_empty on <var_mmodules:Array[MModule]>*/;
279 ((void (*)(val
*))(var_modelbuilder
->class->vft
[COLOR_modelbuilder__ModelBuilder__run_phases
]))(var_modelbuilder
) /* run_phases on <var_modelbuilder:ModelBuilder>*/;
280 var72
= ((long (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mmodules
) /* length on <var_mmodules:Array[MModule]>*/;
282 { /* Inline kernel#Int#== (var72,var73) */
283 var76
= var72
== var73
;
289 var77
= ((val
* (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mmodules
) /* first on <var_mmodules:Array[MModule]>*/;
290 var_mainmodule
= var77
;
292 var78
= NEW_model_base__MModule(&type_model_base__MModule
);
294 var80
= ((val
* (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mmodules
) /* first on <var_mmodules:Array[MModule]>*/;
295 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model_base__MModule__name
]))(var80
) /* name on <var80:nullable Object(MModule)>*/;
296 var82
= ((val
* (*)(val
*))(var_mmodules
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mmodules
) /* first on <var_mmodules:Array[MModule]>*/;
297 var83
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_model_base__MModule__location
]))(var82
) /* location on <var82:nullable Object(MModule)>*/;
298 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var78
->class->vft
[COLOR_model_base__MModule__init
]))(var78
, var_model
, var79
, var81
, var83
) /* init on <var78:MModule>*/;
299 CHECK_NEW_model_base__MModule(var78
);
300 var_mainmodule
= var78
;
301 ((void (*)(val
*, val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__set_imported_mmodules
]))(var_mainmodule
, var_mmodules
) /* set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/;
303 var84
= ((val
* (*)(val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_rapid_type_analysis__ModelBuilder__do_rapid_type_analysis
]))(var_modelbuilder
, var_mainmodule
) /* do_rapid_type_analysis on <var_modelbuilder:ModelBuilder>*/;
304 var_analysis
= var84
;
305 var85
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__opt_erasure
]))(var_toolcontext
) /* opt_erasure on <var_toolcontext:ToolContext>*/;
306 var86
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_opts__Option__value
]))(var85
) /* value on <var85:OptionBool>*/;
307 var87
= ((struct instance_kernel__Bool
*)var86
)->value
; /* autounbox from nullable Object to Bool */;
309 ((void (*)(val
*, val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler
]))(var_modelbuilder
, var_mainmodule
, var_analysis
) /* run_separate_erasure_compiler on <var_modelbuilder:ModelBuilder>*/;
311 var88
= ((val
* (*)(val
*))(var_opt_global
->class->vft
[COLOR_opts__Option__value
]))(var_opt_global
) /* value on <var_opt_global:OptionBool>*/;
312 var89
= ((struct instance_kernel__Bool
*)var88
)->value
; /* autounbox from nullable Object to Bool */;
314 ((void (*)(val
*, val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_global_compiler__ModelBuilder__run_global_compiler
]))(var_modelbuilder
, var_mainmodule
, var_analysis
) /* run_global_compiler on <var_modelbuilder:ModelBuilder>*/;
316 ((void (*)(val
*, val
*, val
*))(var_modelbuilder
->class->vft
[COLOR_separate_compiler__ModelBuilder__run_separate_compiler
]))(var_modelbuilder
, var_mainmodule
, var_analysis
) /* run_separate_compiler on <var_modelbuilder:ModelBuilder>*/;
321 /* method nitg#Sys#main for (self: Object) */
322 void VIRTUAL_nitg__Sys__main(val
* self
) {
323 nitg__Sys__main(self
);