ee076d50d13a71698f782df8554685139ca4f76d
[nit.git] / c_src / nitg.sep.1.c
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 */;
7 static val* varonce;
8 val* var2 /* : String */;
9 char* var3 /* : NativeString */;
10 long var4 /* : Int */;
11 val* var5 /* : String */;
12 static val* varonce6;
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 */;
57 int cltype;
58 int idtype;
59 const char* var_class_name;
60 short int var47 /* : Bool */;
61 static val* varonce48;
62 val* var49 /* : String */;
63 char* var50 /* : NativeString */;
64 long var51 /* : Int */;
65 val* var52 /* : String */;
66 static val* varonce53;
67 val* var54 /* : String */;
68 char* var55 /* : NativeString */;
69 long var56 /* : Int */;
70 val* var57 /* : String */;
71 val* var58 /* : String */;
72 val* var59 /* : Array[Object] */;
73 long var60 /* : Int */;
74 val* var61 /* : NativeArray[Object] */;
75 val* var62 /* : String */;
76 val* var63 /* : OptionContext */;
77 val* var64 /* : nullable Object */;
78 val* var_progname /* var progname: String */;
79 val* var65 /* : Array[String] */;
80 long var66 /* : Int */;
81 val* var67 /* : NativeArray[String] */;
82 val* var68 /* : Array[MModule] */;
83 val* var_mmodules /* var mmodules: Array[MModule] */;
84 val* var69 /* : nullable Object */;
85 val* var70 /* : Array[MModule] */;
86 short int var71 /* : Bool */;
87 long var72 /* : Int */;
88 long var73 /* : Int */;
89 short int var74 /* : Bool */;
90 short int var76 /* : Bool */;
91 val* var77 /* : nullable Object */;
92 val* var_mainmodule /* var mainmodule: nullable Object */;
93 val* var78 /* : MModule */;
94 val* var79 /* : null */;
95 val* var80 /* : nullable Object */;
96 val* var81 /* : String */;
97 val* var82 /* : nullable Object */;
98 val* var83 /* : Location */;
99 val* var84 /* : OptionBool */;
100 val* var85 /* : nullable Object */;
101 short int var86 /* : Bool */;
102 val* var87 /* : null */;
103 val* var88 /* : nullable Object */;
104 short int var89 /* : Bool */;
105 val* var90 /* : RapidTypeAnalysis */;
106 val* var_analysis /* var analysis: RapidTypeAnalysis */;
107 val* var91 /* : RapidTypeAnalysis */;
108 val* var_analysis92 /* var analysis: RapidTypeAnalysis */;
109 var = NEW_toolcontext__ToolContext(&type_toolcontext__ToolContext);
110 ((void (*)(val*))(var->class->vft[COLOR_toolcontext__ToolContext__init]))(var) /* init on <var:ToolContext>*/;
111 var_toolcontext = var;
112 var1 = NEW_opts__OptionBool(&type_opts__OptionBool);
113 if (varonce) {
114 var2 = varonce;
115 } else {
116 var3 = "Use global compilation";
117 var4 = 22;
118 var5 = string__NativeString__to_s_with_length(var3, var4);
119 var2 = var5;
120 varonce = var2;
121 }
122 if (varonce6) {
123 var7 = varonce6;
124 } else {
125 var8 = "--global";
126 var9 = 8;
127 var10 = string__NativeString__to_s_with_length(var8, var9);
128 var7 = var10;
129 varonce6 = var7;
130 }
131 var11 = NEW_array__Array(&type_array__Arraystring__String);
132 { /* var11 = array_instance Array[String] */
133 var12 = 1;
134 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraystring__String);
135 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var7;
136 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[String]>*/;
137 }
138 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_opts__OptionBool__init]))(var1, var2, var11) /* init on <var1:OptionBool>*/;
139 var_opt_global = var1;
140 var14 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__option_context]))(var_toolcontext) /* option_context on <var_toolcontext:ToolContext>*/;
141 var15 = NEW_array__Array(&type_array__Arrayopts__Option);
142 { /* var15 = array_instance Array[Option] */
143 var16 = 1;
144 var17 = NEW_array__NativeArray(var16, &type_array__NativeArrayopts__Option);
145 ((struct instance_array__NativeArray*)var17)->values[0] = (val*) var_opt_global;
146 ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Option]>*/;
147 }
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);
150 if (varonce19) {
151 var20 = varonce19;
152 } else {
153 var21 = "Additionals module to min-in";
154 var22 = 28;
155 var23 = string__NativeString__to_s_with_length(var21, var22);
156 var20 = var23;
157 varonce19 = var20;
158 }
159 if (varonce24) {
160 var25 = varonce24;
161 } else {
162 var26 = "-m";
163 var27 = 2;
164 var28 = string__NativeString__to_s_with_length(var26, var27);
165 var25 = var28;
166 varonce24 = var25;
167 }
168 var29 = NEW_array__Array(&type_array__Arraystring__String);
169 { /* var29 = array_instance Array[String] */
170 var30 = 1;
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 }
175 ((void (*)(val*, val*, val*))(var18->class->vft[COLOR_opts__OptionArray__init]))(var18, var20, var29) /* init on <var18:OptionArray>*/;
176 var_opt_mixins = var18;
177 var32 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__option_context]))(var_toolcontext) /* option_context on <var_toolcontext:ToolContext>*/;
178 var33 = NEW_array__Array(&type_array__Arrayopts__Option);
179 { /* var33 = array_instance Array[Option] */
180 var34 = 1;
181 var35 = NEW_array__NativeArray(var34, &type_array__NativeArrayopts__Option);
182 ((struct instance_array__NativeArray*)var35)->values[0] = (val*) var_opt_mixins;
183 ((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on <var33:Array[Option]>*/;
184 }
185 ((void (*)(val*, val*))(var32->class->vft[COLOR_opts__OptionContext__add_option]))(var32, var33) /* add_option on <var32:OptionContext>*/;
186 ((void (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__process_options]))(var_toolcontext) /* process_options on <var_toolcontext:ToolContext>*/;
187 var36 = NEW_model_base__Model(&type_model_base__Model);
188 ((void (*)(val*))(var36->class->vft[COLOR_model_base__Model__init]))(var36) /* init on <var36:Model>*/;
189 var_model = var36;
190 var37 = NEW_modelbuilder__ModelBuilder(&type_modelbuilder__ModelBuilder);
191 ((void (*)(val*, val*, val*))(var37->class->vft[COLOR_modelbuilder__ModelBuilder__init]))(var37, var_model, var_toolcontext) /* init on <var37:ModelBuilder>*/;
192 var_modelbuilder = var37;
193 var38 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__option_context]))(var_toolcontext) /* option_context on <var_toolcontext:ToolContext>*/;
194 var39 = ((val* (*)(val*))(var38->class->vft[COLOR_opts__OptionContext__rest]))(var38) /* rest on <var38:OptionContext>*/;
195 var_arguments = var39;
196 var40 = ((short int (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_arguments) /* is_empty on <var_arguments:Array[String]>*/;
197 if (var40){
198 var41 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__option_context]))(var_toolcontext) /* option_context on <var_toolcontext:ToolContext>*/;
199 ((void (*)(val*))(var41->class->vft[COLOR_opts__OptionContext__usage]))(var41) /* usage on <var41:OptionContext>*/;
200 goto RET_LABEL;
201 } else {
202 }
203 var42 = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:Array[String]>*/;
204 var43 = 1;
205 { /* Inline kernel#Int#> (var42,var43) */
206 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
207 /* <var43:Int> isa OTHER */
208 var46 = 1; /* easy <var43:Int> isa OTHER*/
209 if (!var46) {
210 var_class_name = type_kernel__Int.name;
211 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
212 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
213 show_backtrace(1);
214 }
215 var47 = var42 > var43;
216 var44 = var47;
217 goto RET_LABEL45;
218 RET_LABEL45:(void)0;
219 }
220 if (var44){
221 if (varonce48) {
222 var49 = varonce48;
223 } else {
224 var50 = "Too much arguments: ";
225 var51 = 20;
226 var52 = string__NativeString__to_s_with_length(var50, var51);
227 var49 = var52;
228 varonce48 = var49;
229 }
230 if (varonce53) {
231 var54 = varonce53;
232 } else {
233 var55 = " ";
234 var56 = 1;
235 var57 = string__NativeString__to_s_with_length(var55, var56);
236 var54 = var57;
237 varonce53 = var54;
238 }
239 var58 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var54) /* join on <var_arguments:Array[String]>*/;
240 var59 = NEW_array__Array(&type_array__Arraykernel__Object);
241 { /* var59 = array_instance Array[Object] */
242 var60 = 2;
243 var61 = NEW_array__NativeArray(var60, &type_array__NativeArraykernel__Object);
244 ((struct instance_array__NativeArray*)var61)->values[0] = (val*) var49;
245 ((struct instance_array__NativeArray*)var61)->values[1] = (val*) var58;
246 ((void (*)(val*, val*, long))(var59->class->vft[COLOR_array__Array__with_native]))(var59, var61, var60) /* with_native on <var59:Array[Object]>*/;
247 }
248 var62 = ((val* (*)(val*))(var59->class->vft[COLOR_string__Object__to_s]))(var59) /* to_s on <var59:Array[Object]>*/;
249 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var62) /* print on <self:Sys>*/;
250 var63 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__option_context]))(var_toolcontext) /* option_context on <var_toolcontext:ToolContext>*/;
251 ((void (*)(val*))(var63->class->vft[COLOR_opts__OptionContext__usage]))(var63) /* usage on <var63:OptionContext>*/;
252 goto RET_LABEL;
253 } else {
254 }
255 var64 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[String]>*/;
256 var_progname = var64;
257 var65 = NEW_array__Array(&type_array__Arraystring__String);
258 { /* var65 = array_instance Array[String] */
259 var66 = 1;
260 var67 = NEW_array__NativeArray(var66, &type_array__NativeArraystring__String);
261 ((struct instance_array__NativeArray*)var67)->values[0] = (val*) var_progname;
262 ((void (*)(val*, val*, long))(var65->class->vft[COLOR_array__Array__with_native]))(var65, var67, var66) /* with_native on <var65:Array[String]>*/;
263 }
264 var68 = ((val* (*)(val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__parse]))(var_modelbuilder, var65) /* parse on <var_modelbuilder:ModelBuilder>*/;
265 var_mmodules = var68;
266 var69 = ((val* (*)(val*))(var_opt_mixins->class->vft[COLOR_opts__Option__value]))(var_opt_mixins) /* value on <var_opt_mixins:OptionArray>*/;
267 var70 = ((val* (*)(val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__parse]))(var_modelbuilder, var69) /* parse on <var_modelbuilder:ModelBuilder>*/;
268 ((void (*)(val*, val*))(var_mmodules->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_mmodules, var70) /* add_all on <var_mmodules:Array[MModule]>*/;
269 var71 = ((short int (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_mmodules) /* is_empty on <var_mmodules:Array[MModule]>*/;
270 if (var71){
271 goto RET_LABEL;
272 } else {
273 }
274 ((void (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__run_phases]))(var_modelbuilder) /* run_phases on <var_modelbuilder:ModelBuilder>*/;
275 var72 = ((long (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__length]))(var_mmodules) /* length on <var_mmodules:Array[MModule]>*/;
276 var73 = 1;
277 { /* Inline kernel#Int#== (var72,var73) */
278 var76 = var72 == var73;
279 var74 = var76;
280 goto RET_LABEL75;
281 RET_LABEL75:(void)0;
282 }
283 if (var74){
284 var77 = ((val* (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__first]))(var_mmodules) /* first on <var_mmodules:Array[MModule]>*/;
285 var_mainmodule = var77;
286 } else {
287 var78 = NEW_mmodule__MModule(&type_mmodule__MModule);
288 var79 = NULL;
289 var80 = ((val* (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__first]))(var_mmodules) /* first on <var_mmodules:Array[MModule]>*/;
290 var81 = ((val* (*)(val*))(var80->class->vft[COLOR_mmodule__MModule__name]))(var80) /* name on <var80:nullable Object(MModule)>*/;
291 var82 = ((val* (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__first]))(var_mmodules) /* first on <var_mmodules:Array[MModule]>*/;
292 var83 = ((val* (*)(val*))(var82->class->vft[COLOR_mmodule__MModule__location]))(var82) /* location on <var82:nullable Object(MModule)>*/;
293 ((void (*)(val*, val*, val*, val*, val*))(var78->class->vft[COLOR_mmodule__MModule__init]))(var78, var_model, var79, var81, var83) /* init on <var78:MModule>*/;
294 var_mainmodule = var78;
295 ((void (*)(val*, val*))(var_mainmodule->class->vft[COLOR_mmodule__MModule__set_imported_mmodules]))(var_mainmodule, var_mmodules) /* set_imported_mmodules on <var_mainmodule:nullable Object(MModule)>*/;
296 }
297 var84 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_separate_erasure_compiler__ToolContext__opt_erasure]))(var_toolcontext) /* opt_erasure on <var_toolcontext:ToolContext>*/;
298 var85 = ((val* (*)(val*))(var84->class->vft[COLOR_opts__Option__value]))(var84) /* value on <var84:OptionBool>*/;
299 var86 = ((struct instance_kernel__Bool*)var85)->value; /* autounbox from nullable Object to Bool */;
300 if (var86){
301 var87 = NULL;
302 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler]))(var_modelbuilder, var_mainmodule, var87) /* run_separate_erasure_compiler on <var_modelbuilder:ModelBuilder>*/;
303 } else {
304 var88 = ((val* (*)(val*))(var_opt_global->class->vft[COLOR_opts__Option__value]))(var_opt_global) /* value on <var_opt_global:OptionBool>*/;
305 var89 = ((struct instance_kernel__Bool*)var88)->value; /* autounbox from nullable Object to Bool */;
306 if (var89){
307 var90 = ((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>*/;
308 var_analysis = var90;
309 ((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>*/;
310 } else {
311 var91 = ((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>*/;
312 var_analysis92 = var91;
313 ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_separate_compiler__ModelBuilder__run_separate_compiler]))(var_modelbuilder, var_mainmodule, var_analysis92) /* run_separate_compiler on <var_modelbuilder:ModelBuilder>*/;
314 }
315 }
316 RET_LABEL:;
317 }
318 /* method nitg#Sys#main for (self: Object) */
319 void VIRTUAL_nitg__Sys__main(val* self) {
320 nitg__Sys__main(self);
321 RET_LABEL:;
322 }