ordered_tree: make OrderedTree a subclass of Collection and implements missing methods
[nit.git] / c_src / android_platform.sep.1.c
1 #include "android_platform.sep.0.h"
2 /* method android_platform#ToolContext#platform_from_name for (self: ToolContext, String): nullable Platform */
3 val* android_platform__ToolContext__platform_from_name(val* self, val* p0) {
4 val* var /* : nullable Platform */;
5 val* var_name /* var name: String */;
6 static val* varonce;
7 val* var1 /* : String */;
8 char* var2 /* : NativeString */;
9 long var3 /* : Int */;
10 val* var4 /* : String */;
11 short int var5 /* : Bool */;
12 val* var6 /* : AndroidPlatform */;
13 val* var7 /* : nullable Platform */;
14 var_name = p0;
15 if (varonce) {
16 var1 = varonce;
17 } else {
18 var2 = "android";
19 var3 = 7;
20 var4 = string__NativeString__to_s_with_length(var2, var3);
21 var1 = var4;
22 varonce = var1;
23 }
24 var5 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var1) /* == on <var_name:String>*/;
25 if (var5){
26 var6 = NEW_android_platform__AndroidPlatform(&type_android_platform__AndroidPlatform);
27 ((void (*)(val*))(var6->class->vft[COLOR_android_platform__AndroidPlatform__init]))(var6) /* init on <var6:AndroidPlatform>*/;
28 var = var6;
29 goto RET_LABEL;
30 } else {
31 }
32 var7 = ((val* (*)(val*, val*))(self->class->vft[COLOR_android_platform__ToolContext__platform_from_name]))(self, p0) /* platform_from_name on <self:ToolContext>*/;
33 var = var7;
34 goto RET_LABEL;
35 RET_LABEL:;
36 return var;
37 }
38 /* method android_platform#ToolContext#platform_from_name for (self: Object, String): nullable Platform */
39 val* VIRTUAL_android_platform__ToolContext__platform_from_name(val* self, val* p0) {
40 val* var /* : nullable Platform */;
41 val* var1 /* : nullable Platform */;
42 var1 = android_platform__ToolContext__platform_from_name(self, p0);
43 var = var1;
44 RET_LABEL:;
45 return var;
46 }
47 /* method android_platform#ToolContext#exec_and_check for (self: ToolContext, Array[String]) */
48 void android_platform__ToolContext__exec_and_check(val* self, val* p0) {
49 val* var_args /* var args: Array[String] */;
50 val* var /* : nullable Object */;
51 val* var_prog /* var prog: String */;
52 long var1 /* : Int */;
53 val* var2 /* : IProcess */;
54 static val* varonce;
55 val* var3 /* : String */;
56 char* var4 /* : NativeString */;
57 long var5 /* : Int */;
58 val* var6 /* : String */;
59 val* var7 /* : Array[String] */;
60 long var8 /* : Int */;
61 val* var_ /* var : Array[String] */;
62 val* var_proc_which /* var proc_which: IProcess */;
63 long var9 /* : Int */;
64 long var_res /* var res: Int */;
65 long var10 /* : Int */;
66 short int var11 /* : Bool */;
67 short int var13 /* : Bool */;
68 short int var14 /* : Bool */;
69 static val* varonce15;
70 val* var16 /* : String */;
71 char* var17 /* : NativeString */;
72 long var18 /* : Int */;
73 val* var19 /* : String */;
74 static val* varonce20;
75 val* var21 /* : String */;
76 char* var22 /* : NativeString */;
77 long var23 /* : Int */;
78 val* var24 /* : String */;
79 val* var25 /* : Array[Object] */;
80 long var26 /* : Int */;
81 val* var27 /* : NativeArray[Object] */;
82 val* var28 /* : String */;
83 long var29 /* : Int */;
84 val* var30 /* : Process */;
85 val* var_proc /* var proc: Process */;
86 long var31 /* : Int */;
87 long var32 /* : Int */;
88 short int var33 /* : Bool */;
89 short int var35 /* : Bool */;
90 short int var36 /* : Bool */;
91 static val* varonce37;
92 val* var38 /* : String */;
93 char* var39 /* : NativeString */;
94 long var40 /* : Int */;
95 val* var41 /* : String */;
96 static val* varonce42;
97 val* var43 /* : String */;
98 char* var44 /* : NativeString */;
99 long var45 /* : Int */;
100 val* var46 /* : String */;
101 static val* varonce47;
102 val* var48 /* : String */;
103 char* var49 /* : NativeString */;
104 long var50 /* : Int */;
105 val* var51 /* : String */;
106 val* var52 /* : String */;
107 static val* varonce53;
108 val* var54 /* : String */;
109 char* var55 /* : NativeString */;
110 long var56 /* : Int */;
111 val* var57 /* : String */;
112 val* var58 /* : Array[Object] */;
113 long var59 /* : Int */;
114 val* var60 /* : NativeArray[Object] */;
115 val* var61 /* : String */;
116 long var62 /* : Int */;
117 var_args = p0;
118 var = ((val* (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__first]))(var_args) /* first on <var_args:Array[String]>*/;
119 var_prog = var;
120 var1 = 0;
121 ((void (*)(val*, long))(var_args->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var_args, var1) /* remove_at on <var_args:Array[String]>*/;
122 var2 = NEW_exec__IProcess(&type_exec__IProcess);
123 if (varonce) {
124 var3 = varonce;
125 } else {
126 var4 = "which";
127 var5 = 5;
128 var6 = string__NativeString__to_s_with_length(var4, var5);
129 var3 = var6;
130 varonce = var3;
131 }
132 var7 = NEW_array__Array(&type_array__Arraystring__String);
133 var8 = 1;
134 ((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on <var7:Array[String]>*/;
135 var_ = var7;
136 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_prog) /* push on <var_:Array[String]>*/;
137 ((void (*)(val*, val*, val*))(var2->class->vft[COLOR_exec__IProcess__from_a]))(var2, var3, var_) /* from_a on <var2:IProcess>*/;
138 var_proc_which = var2;
139 ((void (*)(val*))(var_proc_which->class->vft[COLOR_exec__Process__wait]))(var_proc_which) /* wait on <var_proc_which:IProcess>*/;
140 var9 = ((long (*)(val*))(var_proc_which->class->vft[COLOR_exec__Process__status]))(var_proc_which) /* status on <var_proc_which:IProcess>*/;
141 var_res = var9;
142 var10 = 0;
143 { /* Inline kernel#Int#!= (var_res,var10) */
144 var13 = var_res == var10;
145 var14 = !var13;
146 var11 = var14;
147 goto RET_LABEL12;
148 RET_LABEL12:(void)0;
149 }
150 if (var11){
151 if (varonce15) {
152 var16 = varonce15;
153 } else {
154 var17 = "Android project error: executable \"";
155 var18 = 35;
156 var19 = string__NativeString__to_s_with_length(var17, var18);
157 var16 = var19;
158 varonce15 = var16;
159 }
160 if (varonce20) {
161 var21 = varonce20;
162 } else {
163 var22 = "\" not found";
164 var23 = 11;
165 var24 = string__NativeString__to_s_with_length(var22, var23);
166 var21 = var24;
167 varonce20 = var21;
168 }
169 var25 = NEW_array__Array(&type_array__Arraykernel__Object);
170 { /* var25 = array_instance Array[Object] */
171 var26 = 3;
172 var27 = NEW_array__NativeArray(var26, &type_array__NativeArraykernel__Object);
173 ((struct instance_array__NativeArray*)var27)->values[0] = (val*) var16;
174 ((struct instance_array__NativeArray*)var27)->values[1] = (val*) var_prog;
175 ((struct instance_array__NativeArray*)var27)->values[2] = (val*) var21;
176 ((void (*)(val*, val*, long))(var25->class->vft[COLOR_array__Array__with_native]))(var25, var27, var26) /* with_native on <var25:Array[Object]>*/;
177 }
178 var28 = ((val* (*)(val*))(var25->class->vft[COLOR_string__Object__to_s]))(var25) /* to_s on <var25:Array[Object]>*/;
179 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var28) /* print on <self:ToolContext>*/;
180 var29 = 1;
181 ((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var29) /* exit on <self:ToolContext>*/;
182 } else {
183 }
184 var30 = NEW_exec__Process(&type_exec__Process);
185 ((void (*)(val*, val*, val*))(var30->class->vft[COLOR_exec__Process__from_a]))(var30, var_prog, var_args) /* from_a on <var30:Process>*/;
186 var_proc = var30;
187 ((void (*)(val*))(var_proc->class->vft[COLOR_exec__Process__wait]))(var_proc) /* wait on <var_proc:Process>*/;
188 var31 = ((long (*)(val*))(var_proc->class->vft[COLOR_exec__Process__status]))(var_proc) /* status on <var_proc:Process>*/;
189 var_res = var31;
190 var32 = 0;
191 { /* Inline kernel#Int#!= (var_res,var32) */
192 var35 = var_res == var32;
193 var36 = !var35;
194 var33 = var36;
195 goto RET_LABEL34;
196 RET_LABEL34:(void)0;
197 }
198 if (var33){
199 if (varonce37) {
200 var38 = varonce37;
201 } else {
202 var39 = "Android project error: execution of \"";
203 var40 = 37;
204 var41 = string__NativeString__to_s_with_length(var39, var40);
205 var38 = var41;
206 varonce37 = var38;
207 }
208 if (varonce42) {
209 var43 = varonce42;
210 } else {
211 var44 = " ";
212 var45 = 1;
213 var46 = string__NativeString__to_s_with_length(var44, var45);
214 var43 = var46;
215 varonce42 = var43;
216 }
217 if (varonce47) {
218 var48 = varonce47;
219 } else {
220 var49 = " ";
221 var50 = 1;
222 var51 = string__NativeString__to_s_with_length(var49, var50);
223 var48 = var51;
224 varonce47 = var48;
225 }
226 var52 = ((val* (*)(val*, val*))(var_args->class->vft[COLOR_string__Collection__join]))(var_args, var48) /* join on <var_args:Array[String]>*/;
227 if (varonce53) {
228 var54 = varonce53;
229 } else {
230 var55 = "\" failed";
231 var56 = 8;
232 var57 = string__NativeString__to_s_with_length(var55, var56);
233 var54 = var57;
234 varonce53 = var54;
235 }
236 var58 = NEW_array__Array(&type_array__Arraykernel__Object);
237 { /* var58 = array_instance Array[Object] */
238 var59 = 5;
239 var60 = NEW_array__NativeArray(var59, &type_array__NativeArraykernel__Object);
240 ((struct instance_array__NativeArray*)var60)->values[0] = (val*) var38;
241 ((struct instance_array__NativeArray*)var60)->values[1] = (val*) var_prog;
242 ((struct instance_array__NativeArray*)var60)->values[2] = (val*) var43;
243 ((struct instance_array__NativeArray*)var60)->values[3] = (val*) var52;
244 ((struct instance_array__NativeArray*)var60)->values[4] = (val*) var54;
245 ((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
246 }
247 var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
248 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var61) /* print on <self:ToolContext>*/;
249 var62 = 1;
250 ((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var62) /* exit on <self:ToolContext>*/;
251 } else {
252 }
253 RET_LABEL:;
254 }
255 /* method android_platform#ToolContext#exec_and_check for (self: Object, Array[String]) */
256 void VIRTUAL_android_platform__ToolContext__exec_and_check(val* self, val* p0) {
257 android_platform__ToolContext__exec_and_check(self, p0);
258 RET_LABEL:;
259 }
260 /* method android_platform#AndroidPlatform#supports_libunwind for (self: AndroidPlatform): Bool */
261 short int android_platform__AndroidPlatform__supports_libunwind(val* self) {
262 short int var /* : Bool */;
263 short int var1 /* : Bool */;
264 var1 = 0;
265 var = var1;
266 goto RET_LABEL;
267 RET_LABEL:;
268 return var;
269 }
270 /* method android_platform#AndroidPlatform#supports_libunwind for (self: Object): Bool */
271 short int VIRTUAL_android_platform__AndroidPlatform__supports_libunwind(val* self) {
272 short int var /* : Bool */;
273 short int var1 /* : Bool */;
274 var1 = android_platform__AndroidPlatform__supports_libunwind(self);
275 var = var1;
276 RET_LABEL:;
277 return var;
278 }
279 /* method android_platform#AndroidPlatform#toolchain for (self: AndroidPlatform, ToolContext): Toolchain */
280 val* android_platform__AndroidPlatform__toolchain(val* self, val* p0) {
281 val* var /* : Toolchain */;
282 val* var_toolcontext /* var toolcontext: ToolContext */;
283 val* var1 /* : AndroidToolchain */;
284 var_toolcontext = p0;
285 var1 = NEW_android_platform__AndroidToolchain(&type_android_platform__AndroidToolchain);
286 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_compiler__Toolchain__init]))(var1, var_toolcontext) /* init on <var1:AndroidToolchain>*/;
287 var = var1;
288 goto RET_LABEL;
289 RET_LABEL:;
290 return var;
291 }
292 /* method android_platform#AndroidPlatform#toolchain for (self: Object, ToolContext): Toolchain */
293 val* VIRTUAL_android_platform__AndroidPlatform__toolchain(val* self, val* p0) {
294 val* var /* : Toolchain */;
295 val* var1 /* : Toolchain */;
296 var1 = android_platform__AndroidPlatform__toolchain(self, p0);
297 var = var1;
298 RET_LABEL:;
299 return var;
300 }
301 /* method android_platform#AndroidPlatform#init for (self: AndroidPlatform) */
302 void android_platform__AndroidPlatform__init(val* self) {
303 ((void (*)(val*))(self->class->vft[COLOR_platform__Platform__init]))(self) /* init on <self:AndroidPlatform>*/;
304 RET_LABEL:;
305 }
306 /* method android_platform#AndroidPlatform#init for (self: Object) */
307 void VIRTUAL_android_platform__AndroidPlatform__init(val* self) {
308 android_platform__AndroidPlatform__init(self);
309 RET_LABEL:;
310 }
311 /* method android_platform#AndroidToolchain#android_project_root for (self: AndroidToolchain): String */
312 val* android_platform__AndroidToolchain__android_project_root(val* self) {
313 val* var /* : String */;
314 val* var1 /* : String */;
315 var1 = self->attrs[COLOR_android_platform__AndroidToolchain___64dandroid_project_root].val; /* @android_project_root on <self:AndroidToolchain> */
316 if (var1 == NULL) {
317 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @android_project_root");
318 fprintf(stderr, " (%s:%d)\n", "src/android_platform.nit", 66);
319 show_backtrace(1);
320 }
321 var = var1;
322 RET_LABEL:;
323 return var;
324 }
325 /* method android_platform#AndroidToolchain#android_project_root for (self: Object): String */
326 val* VIRTUAL_android_platform__AndroidToolchain__android_project_root(val* self) {
327 val* var /* : String */;
328 val* var1 /* : String */;
329 var1 = android_platform__AndroidToolchain__android_project_root(self);
330 var = var1;
331 RET_LABEL:;
332 return var;
333 }
334 /* method android_platform#AndroidToolchain#android_project_root= for (self: AndroidToolchain, String) */
335 void android_platform__AndroidToolchain__android_project_root_61d(val* self, val* p0) {
336 self->attrs[COLOR_android_platform__AndroidToolchain___64dandroid_project_root].val = p0; /* @android_project_root on <self:AndroidToolchain> */
337 RET_LABEL:;
338 }
339 /* method android_platform#AndroidToolchain#android_project_root= for (self: Object, String) */
340 void VIRTUAL_android_platform__AndroidToolchain__android_project_root_61d(val* self, val* p0) {
341 android_platform__AndroidToolchain__android_project_root_61d(self, p0);
342 RET_LABEL:;
343 }
344 /* method android_platform#AndroidToolchain#compile_dir for (self: AndroidToolchain): String */
345 val* android_platform__AndroidToolchain__compile_dir(val* self) {
346 val* var /* : String */;
347 val* var1 /* : String */;
348 val* var_normal_compile_dir /* var normal_compile_dir: String */;
349 val* var2 /* : Array[Object] */;
350 long var3 /* : Int */;
351 val* var_ /* var : Array[Object] */;
352 static val* varonce;
353 val* var4 /* : String */;
354 char* var5 /* : NativeString */;
355 long var6 /* : Int */;
356 val* var7 /* : String */;
357 static val* varonce8;
358 val* var9 /* : String */;
359 char* var10 /* : NativeString */;
360 long var11 /* : Int */;
361 val* var12 /* : String */;
362 val* var13 /* : String */;
363 var1 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__compile_dir]))(self) /* compile_dir on <self:AndroidToolchain>*/;
364 var_normal_compile_dir = var1;
365 ((void (*)(val*, val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root_61d]))(self, var_normal_compile_dir) /* android_project_root= on <self:AndroidToolchain>*/;
366 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
367 var3 = 3;
368 ((void (*)(val*, long))(var2->class->vft[COLOR_array__Array__with_capacity]))(var2, var3) /* with_capacity on <var2:Array[Object]>*/;
369 var_ = var2;
370 if (varonce) {
371 var4 = varonce;
372 } else {
373 var5 = "";
374 var6 = 0;
375 var7 = string__NativeString__to_s_with_length(var5, var6);
376 var4 = var7;
377 varonce = var4;
378 }
379 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var4) /* add on <var_:Array[Object]>*/;
380 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_normal_compile_dir) /* add on <var_:Array[Object]>*/;
381 if (varonce8) {
382 var9 = varonce8;
383 } else {
384 var10 = "/jni/nit_compile/";
385 var11 = 17;
386 var12 = string__NativeString__to_s_with_length(var10, var11);
387 var9 = var12;
388 varonce8 = var9;
389 }
390 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on <var_:Array[Object]>*/;
391 var13 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
392 var = var13;
393 goto RET_LABEL;
394 RET_LABEL:;
395 return var;
396 }
397 /* method android_platform#AndroidToolchain#compile_dir for (self: Object): String */
398 val* VIRTUAL_android_platform__AndroidToolchain__compile_dir(val* self) {
399 val* var /* : String */;
400 val* var1 /* : String */;
401 var1 = android_platform__AndroidToolchain__compile_dir(self);
402 var = var1;
403 RET_LABEL:;
404 return var;
405 }
406 /* method android_platform#AndroidToolchain#write_files for (self: AndroidToolchain, AbstractCompiler, String, Array[String]) */
407 void android_platform__AndroidToolchain__write_files(val* self, val* p0, val* p1, val* p2) {
408 val* var_compiler /* var compiler: AbstractCompiler */;
409 val* var_compile_dir /* var compile_dir: String */;
410 val* var_cfiles /* var cfiles: Array[String] */;
411 val* var /* : MModule */;
412 val* var1 /* : String */;
413 val* var_app_name /* var app_name: String */;
414 val* var2 /* : Array[Object] */;
415 long var3 /* : Int */;
416 val* var_ /* var : Array[Object] */;
417 static val* varonce;
418 val* var4 /* : String */;
419 char* var5 /* : NativeString */;
420 long var6 /* : Int */;
421 val* var7 /* : String */;
422 static val* varonce8;
423 val* var9 /* : String */;
424 char* var10 /* : NativeString */;
425 long var11 /* : Int */;
426 val* var12 /* : String */;
427 val* var13 /* : String */;
428 val* var_app_package /* var app_package: String */;
429 static val* varonce14;
430 val* var15 /* : String */;
431 char* var16 /* : NativeString */;
432 long var17 /* : Int */;
433 val* var18 /* : String */;
434 val* var_app_version /* var app_version: String */;
435 val* var19 /* : Array[String] */;
436 long var20 /* : Int */;
437 val* var_21 /* var : Array[String] */;
438 static val* varonce22;
439 val* var23 /* : String */;
440 char* var24 /* : NativeString */;
441 long var25 /* : Int */;
442 val* var26 /* : String */;
443 static val* varonce27;
444 val* var28 /* : String */;
445 char* var29 /* : NativeString */;
446 long var30 /* : Int */;
447 val* var31 /* : String */;
448 static val* varonce32;
449 val* var33 /* : String */;
450 char* var34 /* : NativeString */;
451 long var35 /* : Int */;
452 val* var36 /* : String */;
453 static val* varonce37;
454 val* var38 /* : String */;
455 char* var39 /* : NativeString */;
456 long var40 /* : Int */;
457 val* var41 /* : String */;
458 static val* varonce42;
459 val* var43 /* : String */;
460 char* var44 /* : NativeString */;
461 long var45 /* : Int */;
462 val* var46 /* : String */;
463 static val* varonce47;
464 val* var48 /* : String */;
465 char* var49 /* : NativeString */;
466 long var50 /* : Int */;
467 val* var51 /* : String */;
468 static val* varonce52;
469 val* var53 /* : String */;
470 char* var54 /* : NativeString */;
471 long var55 /* : Int */;
472 val* var56 /* : String */;
473 static val* varonce57;
474 val* var58 /* : String */;
475 char* var59 /* : NativeString */;
476 long var60 /* : Int */;
477 val* var61 /* : String */;
478 val* var62 /* : String */;
479 static val* varonce63;
480 val* var64 /* : String */;
481 char* var65 /* : NativeString */;
482 long var66 /* : Int */;
483 val* var67 /* : String */;
484 static val* varonce68;
485 val* var69 /* : String */;
486 char* var70 /* : NativeString */;
487 long var71 /* : Int */;
488 val* var72 /* : String */;
489 val* var_args /* var args: Array[String] */;
490 val* var73 /* : ToolContext */;
491 val* var74 /* : Array[Object] */;
492 long var75 /* : Int */;
493 val* var_76 /* var : Array[Object] */;
494 static val* varonce77;
495 val* var78 /* : String */;
496 char* var79 /* : NativeString */;
497 long var80 /* : Int */;
498 val* var81 /* : String */;
499 val* var82 /* : String */;
500 static val* varonce83;
501 val* var84 /* : String */;
502 char* var85 /* : NativeString */;
503 long var86 /* : Int */;
504 val* var87 /* : String */;
505 val* var88 /* : String */;
506 val* var_dir /* var dir: String */;
507 short int var89 /* : Bool */;
508 short int var90 /* : Bool */;
509 short int var91 /* : Bool */;
510 short int var92 /* : Bool */;
511 val* var93 /* : Array[ExternFile] */;
512 val* var94 /* : Iterator[nullable Object] */;
513 short int var95 /* : Bool */;
514 val* var96 /* : nullable Object */;
515 val* var_f /* var f: ExternFile */;
516 short int var97 /* : Bool */;
517 int cltype;
518 int idtype;
519 val* var98 /* : String */;
520 static val* varonce99;
521 val* var100 /* : String */;
522 char* var101 /* : NativeString */;
523 long var102 /* : Int */;
524 val* var103 /* : String */;
525 val* var104 /* : String */;
526 val* var105 /* : Array[Object] */;
527 long var106 /* : Int */;
528 val* var_107 /* var : Array[Object] */;
529 static val* varonce108;
530 val* var109 /* : String */;
531 char* var110 /* : NativeString */;
532 long var111 /* : Int */;
533 val* var112 /* : String */;
534 val* var113 /* : String */;
535 static val* varonce114;
536 val* var115 /* : String */;
537 char* var116 /* : NativeString */;
538 long var117 /* : Int */;
539 val* var118 /* : String */;
540 val* var119 /* : String */;
541 val* var120 /* : OFStream */;
542 val* var121 /* : Array[Object] */;
543 long var122 /* : Int */;
544 val* var_123 /* var : Array[Object] */;
545 static val* varonce124;
546 val* var125 /* : String */;
547 char* var126 /* : NativeString */;
548 long var127 /* : Int */;
549 val* var128 /* : String */;
550 static val* varonce129;
551 val* var130 /* : String */;
552 char* var131 /* : NativeString */;
553 long var132 /* : Int */;
554 val* var133 /* : String */;
555 val* var134 /* : String */;
556 val* var_file /* var file: OFStream */;
557 static val* varonce135;
558 val* var136 /* : String */;
559 char* var137 /* : NativeString */;
560 long var138 /* : Int */;
561 val* var139 /* : String */;
562 val* var140 /* : OFStream */;
563 val* var141 /* : Array[Object] */;
564 long var142 /* : Int */;
565 val* var_143 /* var : Array[Object] */;
566 static val* varonce144;
567 val* var145 /* : String */;
568 char* var146 /* : NativeString */;
569 long var147 /* : Int */;
570 val* var148 /* : String */;
571 static val* varonce149;
572 val* var150 /* : String */;
573 char* var151 /* : NativeString */;
574 long var152 /* : Int */;
575 val* var153 /* : String */;
576 val* var154 /* : String */;
577 static val* varonce155;
578 val* var156 /* : String */;
579 char* var157 /* : NativeString */;
580 long var158 /* : Int */;
581 val* var159 /* : String */;
582 static val* varonce160;
583 val* var161 /* : String */;
584 char* var162 /* : NativeString */;
585 long var163 /* : Int */;
586 val* var164 /* : String */;
587 val* var165 /* : String */;
588 static val* varonce166;
589 val* var167 /* : String */;
590 char* var168 /* : NativeString */;
591 long var169 /* : Int */;
592 val* var170 /* : String */;
593 val* var171 /* : Array[Object] */;
594 long var172 /* : Int */;
595 val* var173 /* : NativeArray[Object] */;
596 val* var174 /* : String */;
597 val* var175 /* : String */;
598 val* var176 /* : OFStream */;
599 val* var177 /* : Array[Object] */;
600 long var178 /* : Int */;
601 val* var_179 /* var : Array[Object] */;
602 static val* varonce180;
603 val* var181 /* : String */;
604 char* var182 /* : NativeString */;
605 long var183 /* : Int */;
606 val* var184 /* : String */;
607 static val* varonce185;
608 val* var186 /* : String */;
609 char* var187 /* : NativeString */;
610 long var188 /* : Int */;
611 val* var189 /* : String */;
612 val* var190 /* : String */;
613 static val* varonce191;
614 val* var192 /* : String */;
615 char* var193 /* : NativeString */;
616 long var194 /* : Int */;
617 val* var195 /* : String */;
618 static val* varonce196;
619 val* var197 /* : String */;
620 char* var198 /* : NativeString */;
621 long var199 /* : Int */;
622 val* var200 /* : String */;
623 static val* varonce201;
624 val* var202 /* : String */;
625 char* var203 /* : NativeString */;
626 long var204 /* : Int */;
627 val* var205 /* : String */;
628 static val* varonce206;
629 val* var207 /* : String */;
630 char* var208 /* : NativeString */;
631 long var209 /* : Int */;
632 val* var210 /* : String */;
633 static val* varonce211;
634 val* var212 /* : String */;
635 char* var213 /* : NativeString */;
636 long var214 /* : Int */;
637 val* var215 /* : String */;
638 val* var216 /* : Array[Object] */;
639 long var217 /* : Int */;
640 val* var218 /* : NativeArray[Object] */;
641 val* var219 /* : String */;
642 val* var220 /* : Array[Object] */;
643 long var221 /* : Int */;
644 val* var_222 /* var : Array[Object] */;
645 static val* varonce223;
646 val* var224 /* : String */;
647 char* var225 /* : NativeString */;
648 long var226 /* : Int */;
649 val* var227 /* : String */;
650 val* var228 /* : String */;
651 static val* varonce229;
652 val* var230 /* : String */;
653 char* var231 /* : NativeString */;
654 long var232 /* : Int */;
655 val* var233 /* : String */;
656 val* var234 /* : String */;
657 short int var235 /* : Bool */;
658 short int var236 /* : Bool */;
659 val* var237 /* : Array[Object] */;
660 long var238 /* : Int */;
661 val* var_239 /* var : Array[Object] */;
662 static val* varonce240;
663 val* var241 /* : String */;
664 char* var242 /* : NativeString */;
665 long var243 /* : Int */;
666 val* var244 /* : String */;
667 static val* varonce245;
668 val* var246 /* : String */;
669 char* var247 /* : NativeString */;
670 long var248 /* : Int */;
671 val* var249 /* : String */;
672 val* var250 /* : String */;
673 short int var251 /* : Bool */;
674 short int var252 /* : Bool */;
675 val* var253 /* : OFStream */;
676 val* var254 /* : Array[Object] */;
677 long var255 /* : Int */;
678 val* var_256 /* var : Array[Object] */;
679 static val* varonce257;
680 val* var258 /* : String */;
681 char* var259 /* : NativeString */;
682 long var260 /* : Int */;
683 val* var261 /* : String */;
684 static val* varonce262;
685 val* var263 /* : String */;
686 char* var264 /* : NativeString */;
687 long var265 /* : Int */;
688 val* var266 /* : String */;
689 val* var267 /* : String */;
690 static val* varonce268;
691 val* var269 /* : String */;
692 char* var270 /* : NativeString */;
693 long var271 /* : Int */;
694 val* var272 /* : String */;
695 static val* varonce273;
696 val* var274 /* : String */;
697 char* var275 /* : NativeString */;
698 long var276 /* : Int */;
699 val* var277 /* : String */;
700 val* var278 /* : Array[Object] */;
701 long var279 /* : Int */;
702 val* var280 /* : NativeArray[Object] */;
703 val* var281 /* : String */;
704 static val* varonce282;
705 val* var283 /* : String */;
706 char* var284 /* : NativeString */;
707 long var285 /* : Int */;
708 val* var286 /* : String */;
709 val* var287 /* : String */;
710 val* var_nit_dir /* var nit_dir: String */;
711 short int var288 /* : Bool */;
712 short int var289 /* : Bool */;
713 static val* varonce290;
714 val* var291 /* : String */;
715 char* var292 /* : NativeString */;
716 long var293 /* : Int */;
717 val* var294 /* : String */;
718 val* var295 /* : Array[Object] */;
719 long var296 /* : Int */;
720 val* var297 /* : NativeArray[Object] */;
721 val* var298 /* : String */;
722 val* var_share_dir /* var share_dir: nullable Object */;
723 val* var299 /* : Sys */;
724 val* var300 /* : String */;
725 val* var301 /* : String */;
726 static val* varonce302;
727 val* var303 /* : String */;
728 char* var304 /* : NativeString */;
729 long var305 /* : Int */;
730 val* var306 /* : String */;
731 val* var307 /* : Array[Object] */;
732 long var308 /* : Int */;
733 val* var309 /* : NativeArray[Object] */;
734 val* var310 /* : String */;
735 short int var311 /* : Bool */;
736 short int var312 /* : Bool */;
737 static val* varonce313;
738 val* var314 /* : String */;
739 char* var315 /* : NativeString */;
740 long var316 /* : Int */;
741 val* var317 /* : String */;
742 long var318 /* : Int */;
743 val* var319 /* : String */;
744 val* var320 /* : Array[Object] */;
745 long var321 /* : Int */;
746 val* var_322 /* var : Array[Object] */;
747 static val* varonce323;
748 val* var324 /* : String */;
749 char* var325 /* : NativeString */;
750 long var326 /* : Int */;
751 val* var327 /* : String */;
752 val* var328 /* : String */;
753 static val* varonce329;
754 val* var330 /* : String */;
755 char* var331 /* : NativeString */;
756 long var332 /* : Int */;
757 val* var333 /* : String */;
758 val* var334 /* : String */;
759 val* var_target_png_dir /* var target_png_dir: String */;
760 short int var335 /* : Bool */;
761 short int var336 /* : Bool */;
762 val* var337 /* : ToolContext */;
763 static val* varonce338;
764 val* var339 /* : String */;
765 char* var340 /* : NativeString */;
766 long var341 /* : Int */;
767 val* var342 /* : String */;
768 static val* varonce343;
769 val* var344 /* : String */;
770 char* var345 /* : NativeString */;
771 long var346 /* : Int */;
772 val* var347 /* : String */;
773 val* var348 /* : Array[Object] */;
774 long var349 /* : Int */;
775 val* var_350 /* var : Array[Object] */;
776 static val* varonce351;
777 val* var352 /* : String */;
778 char* var353 /* : NativeString */;
779 long var354 /* : Int */;
780 val* var355 /* : String */;
781 static val* varonce356;
782 val* var357 /* : String */;
783 char* var358 /* : NativeString */;
784 long var359 /* : Int */;
785 val* var360 /* : String */;
786 val* var361 /* : String */;
787 val* var362 /* : Array[String] */;
788 long var363 /* : Int */;
789 val* var364 /* : NativeArray[String] */;
790 val* var365 /* : MModule */;
791 val* var366 /* : Location */;
792 val* var367 /* : nullable SourceFile */;
793 val* var368 /* : String */;
794 val* var369 /* : String */;
795 val* var_mainmodule_dir /* var mainmodule_dir: String */;
796 val* var370 /* : Array[Object] */;
797 long var371 /* : Int */;
798 val* var_372 /* var : Array[Object] */;
799 static val* varonce373;
800 val* var374 /* : String */;
801 char* var375 /* : NativeString */;
802 long var376 /* : Int */;
803 val* var377 /* : String */;
804 static val* varonce378;
805 val* var379 /* : String */;
806 char* var380 /* : NativeString */;
807 long var381 /* : Int */;
808 val* var382 /* : String */;
809 val* var383 /* : String */;
810 val* var_assets_dir /* var assets_dir: String */;
811 short int var384 /* : Bool */;
812 short int var385 /* : Bool */;
813 val* var386 /* : Array[Object] */;
814 long var387 /* : Int */;
815 val* var_388 /* var : Array[Object] */;
816 static val* varonce389;
817 val* var390 /* : String */;
818 char* var391 /* : NativeString */;
819 long var392 /* : Int */;
820 val* var393 /* : String */;
821 static val* varonce394;
822 val* var395 /* : String */;
823 char* var396 /* : NativeString */;
824 long var397 /* : Int */;
825 val* var398 /* : String */;
826 val* var399 /* : String */;
827 short int var400 /* : Bool */;
828 val* var401 /* : String */;
829 val* var402 /* : Array[Object] */;
830 long var403 /* : Int */;
831 val* var_404 /* var : Array[Object] */;
832 static val* varonce405;
833 val* var406 /* : String */;
834 char* var407 /* : NativeString */;
835 long var408 /* : Int */;
836 val* var409 /* : String */;
837 val* var410 /* : String */;
838 static val* varonce411;
839 val* var412 /* : String */;
840 char* var413 /* : NativeString */;
841 long var414 /* : Int */;
842 val* var415 /* : String */;
843 val* var416 /* : String */;
844 val* var_target_assets_dir /* var target_assets_dir: String */;
845 short int var417 /* : Bool */;
846 short int var418 /* : Bool */;
847 val* var419 /* : ToolContext */;
848 static val* varonce420;
849 val* var421 /* : String */;
850 char* var422 /* : NativeString */;
851 long var423 /* : Int */;
852 val* var424 /* : String */;
853 static val* varonce425;
854 val* var426 /* : String */;
855 char* var427 /* : NativeString */;
856 long var428 /* : Int */;
857 val* var429 /* : String */;
858 val* var430 /* : Array[String] */;
859 long var431 /* : Int */;
860 val* var432 /* : NativeArray[String] */;
861 var_compiler = p0;
862 var_compile_dir = p1;
863 var_cfiles = p2;
864 var = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__mainmodule]))(var_compiler) /* mainmodule on <var_compiler:AbstractCompiler>*/;
865 var1 = ((val* (*)(val*))(var->class->vft[COLOR_mmodule__MModule__name]))(var) /* name on <var:MModule>*/;
866 var_app_name = var1;
867 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
868 var3 = 3;
869 ((void (*)(val*, long))(var2->class->vft[COLOR_array__Array__with_capacity]))(var2, var3) /* with_capacity on <var2:Array[Object]>*/;
870 var_ = var2;
871 if (varonce) {
872 var4 = varonce;
873 } else {
874 var5 = "org.nitlanguage.";
875 var6 = 16;
876 var7 = string__NativeString__to_s_with_length(var5, var6);
877 var4 = var7;
878 varonce = var4;
879 }
880 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var4) /* add on <var_:Array[Object]>*/;
881 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_app_name) /* add on <var_:Array[Object]>*/;
882 if (varonce8) {
883 var9 = varonce8;
884 } else {
885 var10 = "";
886 var11 = 0;
887 var12 = string__NativeString__to_s_with_length(var10, var11);
888 var9 = var12;
889 varonce8 = var9;
890 }
891 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on <var_:Array[Object]>*/;
892 var13 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
893 var_app_package = var13;
894 if (varonce14) {
895 var15 = varonce14;
896 } else {
897 var16 = "0.1";
898 var17 = 3;
899 var18 = string__NativeString__to_s_with_length(var16, var17);
900 var15 = var18;
901 varonce14 = var15;
902 }
903 var_app_version = var15;
904 var19 = NEW_array__Array(&type_array__Arraystring__String);
905 var20 = 14;
906 ((void (*)(val*, long))(var19->class->vft[COLOR_array__Array__with_capacity]))(var19, var20) /* with_capacity on <var19:Array[String]>*/;
907 var_21 = var19;
908 if (varonce22) {
909 var23 = varonce22;
910 } else {
911 var24 = "android";
912 var25 = 7;
913 var26 = string__NativeString__to_s_with_length(var24, var25);
914 var23 = var26;
915 varonce22 = var23;
916 }
917 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var23) /* push on <var_21:Array[String]>*/;
918 if (varonce27) {
919 var28 = varonce27;
920 } else {
921 var29 = "-s";
922 var30 = 2;
923 var31 = string__NativeString__to_s_with_length(var29, var30);
924 var28 = var31;
925 varonce27 = var28;
926 }
927 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var28) /* push on <var_21:Array[String]>*/;
928 if (varonce32) {
929 var33 = varonce32;
930 } else {
931 var34 = "create";
932 var35 = 6;
933 var36 = string__NativeString__to_s_with_length(var34, var35);
934 var33 = var36;
935 varonce32 = var33;
936 }
937 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var33) /* push on <var_21:Array[String]>*/;
938 if (varonce37) {
939 var38 = varonce37;
940 } else {
941 var39 = "project";
942 var40 = 7;
943 var41 = string__NativeString__to_s_with_length(var39, var40);
944 var38 = var41;
945 varonce37 = var38;
946 }
947 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var38) /* push on <var_21:Array[String]>*/;
948 if (varonce42) {
949 var43 = varonce42;
950 } else {
951 var44 = "--name";
952 var45 = 6;
953 var46 = string__NativeString__to_s_with_length(var44, var45);
954 var43 = var46;
955 varonce42 = var43;
956 }
957 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var43) /* push on <var_21:Array[String]>*/;
958 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var_app_name) /* push on <var_21:Array[String]>*/;
959 if (varonce47) {
960 var48 = varonce47;
961 } else {
962 var49 = "--target";
963 var50 = 8;
964 var51 = string__NativeString__to_s_with_length(var49, var50);
965 var48 = var51;
966 varonce47 = var48;
967 }
968 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var48) /* push on <var_21:Array[String]>*/;
969 if (varonce52) {
970 var53 = varonce52;
971 } else {
972 var54 = "android-10";
973 var55 = 10;
974 var56 = string__NativeString__to_s_with_length(var54, var55);
975 var53 = var56;
976 varonce52 = var53;
977 }
978 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var53) /* push on <var_21:Array[String]>*/;
979 if (varonce57) {
980 var58 = varonce57;
981 } else {
982 var59 = "--path";
983 var60 = 6;
984 var61 = string__NativeString__to_s_with_length(var59, var60);
985 var58 = var61;
986 varonce57 = var58;
987 }
988 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var58) /* push on <var_21:Array[String]>*/;
989 var62 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
990 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var62) /* push on <var_21:Array[String]>*/;
991 if (varonce63) {
992 var64 = varonce63;
993 } else {
994 var65 = "--package";
995 var66 = 9;
996 var67 = string__NativeString__to_s_with_length(var65, var66);
997 var64 = var67;
998 varonce63 = var64;
999 }
1000 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var64) /* push on <var_21:Array[String]>*/;
1001 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var_app_package) /* push on <var_21:Array[String]>*/;
1002 if (varonce68) {
1003 var69 = varonce68;
1004 } else {
1005 var70 = "--activity";
1006 var71 = 10;
1007 var72 = string__NativeString__to_s_with_length(var70, var71);
1008 var69 = var72;
1009 varonce68 = var69;
1010 }
1011 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var69) /* push on <var_21:Array[String]>*/;
1012 ((void (*)(val*, val*))(var_21->class->vft[COLOR_abstract_collection__Sequence__push]))(var_21, var_app_name) /* push on <var_21:Array[String]>*/;
1013 var_args = var_21;
1014 var73 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
1015 ((void (*)(val*, val*))(var73->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var73, var_args) /* exec_and_check on <var73:ToolContext>*/;
1016 var74 = NEW_array__Array(&type_array__Arraykernel__Object);
1017 var75 = 3;
1018 ((void (*)(val*, long))(var74->class->vft[COLOR_array__Array__with_capacity]))(var74, var75) /* with_capacity on <var74:Array[Object]>*/;
1019 var_76 = var74;
1020 if (varonce77) {
1021 var78 = varonce77;
1022 } else {
1023 var79 = "";
1024 var80 = 0;
1025 var81 = string__NativeString__to_s_with_length(var79, var80);
1026 var78 = var81;
1027 varonce77 = var78;
1028 }
1029 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var78) /* add on <var_76:Array[Object]>*/;
1030 var82 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1031 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var82) /* add on <var_76:Array[Object]>*/;
1032 if (varonce83) {
1033 var84 = varonce83;
1034 } else {
1035 var85 = "/jni/";
1036 var86 = 5;
1037 var87 = string__NativeString__to_s_with_length(var85, var86);
1038 var84 = var87;
1039 varonce83 = var84;
1040 }
1041 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var84) /* add on <var_76:Array[Object]>*/;
1042 var88 = ((val* (*)(val*))(var_76->class->vft[COLOR_string__Object__to_s]))(var_76) /* to_s on <var_76:Array[Object]>*/;
1043 var_dir = var88;
1044 var89 = ((short int (*)(val*))(var_dir->class->vft[COLOR_file__String__file_exists]))(var_dir) /* file_exists on <var_dir:String>*/;
1045 var90 = !var89;
1046 if (var90){
1047 ((void (*)(val*))(var_dir->class->vft[COLOR_file__String__mkdir]))(var_dir) /* mkdir on <var_dir:String>*/;
1048 } else {
1049 }
1050 var_dir = var_compile_dir;
1051 var91 = ((short int (*)(val*))(var_dir->class->vft[COLOR_file__String__file_exists]))(var_dir) /* file_exists on <var_dir:String>*/;
1052 var92 = !var91;
1053 if (var92){
1054 ((void (*)(val*))(var_dir->class->vft[COLOR_file__String__mkdir]))(var_dir) /* mkdir on <var_dir:String>*/;
1055 } else {
1056 }
1057 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__write_files]))(self, var_compiler, var_compile_dir, var_cfiles) /* write_files on <self:AndroidToolchain>*/;
1058 var93 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__extern_bodies]))(var_compiler) /* extern_bodies on <var_compiler:AbstractCompiler>*/;
1059 var94 = ((val* (*)(val*))(var93->class->vft[COLOR_abstract_collection__Collection__iterator]))(var93) /* iterator on <var93:Array[ExternFile]>*/;
1060 for(;;) {
1061 var95 = ((short int (*)(val*))(var94->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var94) /* is_ok on <var94:Iterator[nullable Object]>*/;
1062 if(!var95) break;
1063 var96 = ((val* (*)(val*))(var94->class->vft[COLOR_abstract_collection__Iterator__item]))(var94) /* item on <var94:Iterator[nullable Object]>*/;
1064 var_f = var96;
1065 /* <var_f:ExternFile> isa ExternCFile */
1066 cltype = type_c__ExternCFile.color;
1067 idtype = type_c__ExternCFile.id;
1068 if(cltype >= var_f->type->table_size) {
1069 var97 = 0;
1070 } else {
1071 var97 = var_f->type->type_table[cltype] == idtype;
1072 }
1073 if (var97){
1074 var98 = ((val* (*)(val*))(var_f->class->vft[COLOR_ffi_base__ExternFile__filename]))(var_f) /* filename on <var_f:ExternFile(ExternCFile)>*/;
1075 if (varonce99) {
1076 var100 = varonce99;
1077 } else {
1078 var101 = "";
1079 var102 = 0;
1080 var103 = string__NativeString__to_s_with_length(var101, var102);
1081 var100 = var103;
1082 varonce99 = var100;
1083 }
1084 var104 = ((val* (*)(val*, val*))(var98->class->vft[COLOR_file__String__basename]))(var98, var100) /* basename on <var98:String>*/;
1085 ((void (*)(val*, val*))(var_cfiles->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cfiles, var104) /* add on <var_cfiles:Array[String]>*/;
1086 } else {
1087 }
1088 CONTINUE_label: (void)0;
1089 ((void (*)(val*))(var94->class->vft[COLOR_abstract_collection__Iterator__next]))(var94) /* next on <var94:Iterator[nullable Object]>*/;
1090 }
1091 BREAK_label: (void)0;
1092 var105 = NEW_array__Array(&type_array__Arraykernel__Object);
1093 var106 = 3;
1094 ((void (*)(val*, long))(var105->class->vft[COLOR_array__Array__with_capacity]))(var105, var106) /* with_capacity on <var105:Array[Object]>*/;
1095 var_107 = var105;
1096 if (varonce108) {
1097 var109 = varonce108;
1098 } else {
1099 var110 = "";
1100 var111 = 0;
1101 var112 = string__NativeString__to_s_with_length(var110, var111);
1102 var109 = var112;
1103 varonce108 = var109;
1104 }
1105 ((void (*)(val*, val*))(var_107->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_107, var109) /* add on <var_107:Array[Object]>*/;
1106 var113 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1107 ((void (*)(val*, val*))(var_107->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_107, var113) /* add on <var_107:Array[Object]>*/;
1108 if (varonce114) {
1109 var115 = varonce114;
1110 } else {
1111 var116 = "/jni/";
1112 var117 = 5;
1113 var118 = string__NativeString__to_s_with_length(var116, var117);
1114 var115 = var118;
1115 varonce114 = var115;
1116 }
1117 ((void (*)(val*, val*))(var_107->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_107, var115) /* add on <var_107:Array[Object]>*/;
1118 var119 = ((val* (*)(val*))(var_107->class->vft[COLOR_string__Object__to_s]))(var_107) /* to_s on <var_107:Array[Object]>*/;
1119 var_dir = var119;
1120 var120 = NEW_file__OFStream(&type_file__OFStream);
1121 var121 = NEW_array__Array(&type_array__Arraykernel__Object);
1122 var122 = 3;
1123 ((void (*)(val*, long))(var121->class->vft[COLOR_array__Array__with_capacity]))(var121, var122) /* with_capacity on <var121:Array[Object]>*/;
1124 var_123 = var121;
1125 if (varonce124) {
1126 var125 = varonce124;
1127 } else {
1128 var126 = "";
1129 var127 = 0;
1130 var128 = string__NativeString__to_s_with_length(var126, var127);
1131 var125 = var128;
1132 varonce124 = var125;
1133 }
1134 ((void (*)(val*, val*))(var_123->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_123, var125) /* add on <var_123:Array[Object]>*/;
1135 ((void (*)(val*, val*))(var_123->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_123, var_dir) /* add on <var_123:Array[Object]>*/;
1136 if (varonce129) {
1137 var130 = varonce129;
1138 } else {
1139 var131 = "/Android.mk";
1140 var132 = 11;
1141 var133 = string__NativeString__to_s_with_length(var131, var132);
1142 var130 = var133;
1143 varonce129 = var130;
1144 }
1145 ((void (*)(val*, val*))(var_123->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_123, var130) /* add on <var_123:Array[Object]>*/;
1146 var134 = ((val* (*)(val*))(var_123->class->vft[COLOR_string__Object__to_s]))(var_123) /* to_s on <var_123:Array[Object]>*/;
1147 ((void (*)(val*, val*))(var120->class->vft[COLOR_file__OFStream__open]))(var120, var134) /* open on <var120:OFStream>*/;
1148 var_file = var120;
1149 if (varonce135) {
1150 var136 = varonce135;
1151 } else {
1152 var137 = "include $(call all-subdir-makefiles)\n";
1153 var138 = 37;
1154 var139 = string__NativeString__to_s_with_length(var137, var138);
1155 var136 = var139;
1156 varonce135 = var136;
1157 }
1158 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var136) /* write on <var_file:OFStream>*/;
1159 ((void (*)(val*))(var_file->class->vft[COLOR_stream__IOS__close]))(var_file) /* close on <var_file:OFStream>*/;
1160 var_dir = var_compile_dir;
1161 var140 = NEW_file__OFStream(&type_file__OFStream);
1162 var141 = NEW_array__Array(&type_array__Arraykernel__Object);
1163 var142 = 3;
1164 ((void (*)(val*, long))(var141->class->vft[COLOR_array__Array__with_capacity]))(var141, var142) /* with_capacity on <var141:Array[Object]>*/;
1165 var_143 = var141;
1166 if (varonce144) {
1167 var145 = varonce144;
1168 } else {
1169 var146 = "";
1170 var147 = 0;
1171 var148 = string__NativeString__to_s_with_length(var146, var147);
1172 var145 = var148;
1173 varonce144 = var145;
1174 }
1175 ((void (*)(val*, val*))(var_143->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_143, var145) /* add on <var_143:Array[Object]>*/;
1176 ((void (*)(val*, val*))(var_143->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_143, var_dir) /* add on <var_143:Array[Object]>*/;
1177 if (varonce149) {
1178 var150 = varonce149;
1179 } else {
1180 var151 = "/Android.mk";
1181 var152 = 11;
1182 var153 = string__NativeString__to_s_with_length(var151, var152);
1183 var150 = var153;
1184 varonce149 = var150;
1185 }
1186 ((void (*)(val*, val*))(var_143->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_143, var150) /* add on <var_143:Array[Object]>*/;
1187 var154 = ((val* (*)(val*))(var_143->class->vft[COLOR_string__Object__to_s]))(var_143) /* to_s on <var_143:Array[Object]>*/;
1188 ((void (*)(val*, val*))(var140->class->vft[COLOR_file__OFStream__open]))(var140, var154) /* open on <var140:OFStream>*/;
1189 var_file = var140;
1190 if (varonce155) {
1191 var156 = varonce155;
1192 } else {
1193 var157 = "LOCAL_PATH := $(call my-dir)\ninclude $(CLEAR_VARS)\n\nLOCAL_CFLAGS\11:= -D ANDROID\nLOCAL_MODULE := main\nLOCAL_SRC_FILES := \\\n";
1194 var158 = 124;
1195 var159 = string__NativeString__to_s_with_length(var157, var158);
1196 var156 = var159;
1197 varonce155 = var156;
1198 }
1199 if (varonce160) {
1200 var161 = varonce160;
1201 } else {
1202 var162 = " \\\n";
1203 var163 = 3;
1204 var164 = string__NativeString__to_s_with_length(var162, var163);
1205 var161 = var164;
1206 varonce160 = var161;
1207 }
1208 var165 = ((val* (*)(val*, val*))(var_cfiles->class->vft[COLOR_string__Collection__join]))(var_cfiles, var161) /* join on <var_cfiles:Array[String]>*/;
1209 if (varonce166) {
1210 var167 = varonce166;
1211 } else {
1212 var168 = "\nLOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lz\nLOCAL_STATIC_LIBRARIES := android_native_app_glue png\n\ninclude $(BUILD_SHARED_LIBRARY)\n\n$(call import-module,android/native_app_glue)\n";
1213 var169 = 192;
1214 var170 = string__NativeString__to_s_with_length(var168, var169);
1215 var167 = var170;
1216 varonce166 = var167;
1217 }
1218 var171 = NEW_array__Array(&type_array__Arraykernel__Object);
1219 { /* var171 = array_instance Array[Object] */
1220 var172 = 3;
1221 var173 = NEW_array__NativeArray(var172, &type_array__NativeArraykernel__Object);
1222 ((struct instance_array__NativeArray*)var173)->values[0] = (val*) var156;
1223 ((struct instance_array__NativeArray*)var173)->values[1] = (val*) var165;
1224 ((struct instance_array__NativeArray*)var173)->values[2] = (val*) var167;
1225 ((void (*)(val*, val*, long))(var171->class->vft[COLOR_array__Array__with_native]))(var171, var173, var172) /* with_native on <var171:Array[Object]>*/;
1226 }
1227 var174 = ((val* (*)(val*))(var171->class->vft[COLOR_string__Object__to_s]))(var171) /* to_s on <var171:Array[Object]>*/;
1228 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var174) /* write on <var_file:OFStream>*/;
1229 ((void (*)(val*))(var_file->class->vft[COLOR_stream__IOS__close]))(var_file) /* close on <var_file:OFStream>*/;
1230 var175 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1231 var_dir = var175;
1232 var176 = NEW_file__OFStream(&type_file__OFStream);
1233 var177 = NEW_array__Array(&type_array__Arraykernel__Object);
1234 var178 = 3;
1235 ((void (*)(val*, long))(var177->class->vft[COLOR_array__Array__with_capacity]))(var177, var178) /* with_capacity on <var177:Array[Object]>*/;
1236 var_179 = var177;
1237 if (varonce180) {
1238 var181 = varonce180;
1239 } else {
1240 var182 = "";
1241 var183 = 0;
1242 var184 = string__NativeString__to_s_with_length(var182, var183);
1243 var181 = var184;
1244 varonce180 = var181;
1245 }
1246 ((void (*)(val*, val*))(var_179->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_179, var181) /* add on <var_179:Array[Object]>*/;
1247 ((void (*)(val*, val*))(var_179->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_179, var_dir) /* add on <var_179:Array[Object]>*/;
1248 if (varonce185) {
1249 var186 = varonce185;
1250 } else {
1251 var187 = "/AndroidManifest.xml";
1252 var188 = 20;
1253 var189 = string__NativeString__to_s_with_length(var187, var188);
1254 var186 = var189;
1255 varonce185 = var186;
1256 }
1257 ((void (*)(val*, val*))(var_179->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_179, var186) /* add on <var_179:Array[Object]>*/;
1258 var190 = ((val* (*)(val*))(var_179->class->vft[COLOR_string__Object__to_s]))(var_179) /* to_s on <var_179:Array[Object]>*/;
1259 ((void (*)(val*, val*))(var176->class->vft[COLOR_file__OFStream__open]))(var176, var190) /* open on <var176:OFStream>*/;
1260 var_file = var176;
1261 if (varonce191) {
1262 var192 = varonce191;
1263 } else {
1264 var193 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- BEGIN_INCLUDE(manifest) -->\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"";
1265 var194 = 158;
1266 var195 = string__NativeString__to_s_with_length(var193, var194);
1267 var192 = var195;
1268 varonce191 = var192;
1269 }
1270 if (varonce196) {
1271 var197 = varonce196;
1272 } else {
1273 var198 = "\"\n android:versionCode=\"1\"\n android:versionName=\"";
1274 var199 = 63;
1275 var200 = string__NativeString__to_s_with_length(var198, var199);
1276 var197 = var200;
1277 varonce196 = var197;
1278 }
1279 if (varonce201) {
1280 var202 = varonce201;
1281 } else {
1282 var203 = "\"\n\11android:debuggable=\"true\">\n\n <!-- This is the platform API where NativeActivity was introduced. -->\n <uses-sdk android:minSdkVersion=\"9\" />\n\n <!-- This .apk has no Java code itself, so set hasCode to false. -->\n <application android:label=\"@string/app_name\" android:hasCode=\"false\" android:debuggable=\"true\">\n\n <!-- Our activity is the built-in NativeActivity framework class.\n This will take care of integrating with our NDK code. -->\n <activity android:name=\"android.app.NativeActivity\"\n android:label=\"@string/app_name\"\n android:configChanges=\"orientation|keyboardHidden\"\n android:screenOrientation=\"portrait\">\n <!-- Tell NativeActivity the name of or .so -->\n <meta-data android:name=\"";
1283 var204 = 797;
1284 var205 = string__NativeString__to_s_with_length(var203, var204);
1285 var202 = var205;
1286 varonce201 = var202;
1287 }
1288 if (varonce206) {
1289 var207 = varonce206;
1290 } else {
1291 var208 = "\"\n android:value=\"";
1292 var209 = 37;
1293 var210 = string__NativeString__to_s_with_length(var208, var209);
1294 var207 = var210;
1295 varonce206 = var207;
1296 }
1297 if (varonce211) {
1298 var212 = varonce211;
1299 } else {
1300 var213 = "\" />\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\" />\n <category android:name=\"android.intent.category.LAUNCHER\" />\n </intent-filter>\n </activity>\n </application>\n\n</manifest> \n<!-- END_INCLUDE(manifest) -->\n";
1301 var214 = 292;
1302 var215 = string__NativeString__to_s_with_length(var213, var214);
1303 var212 = var215;
1304 varonce211 = var212;
1305 }
1306 var216 = NEW_array__Array(&type_array__Arraykernel__Object);
1307 { /* var216 = array_instance Array[Object] */
1308 var217 = 9;
1309 var218 = NEW_array__NativeArray(var217, &type_array__NativeArraykernel__Object);
1310 ((struct instance_array__NativeArray*)var218)->values[0] = (val*) var192;
1311 ((struct instance_array__NativeArray*)var218)->values[1] = (val*) var_app_package;
1312 ((struct instance_array__NativeArray*)var218)->values[2] = (val*) var197;
1313 ((struct instance_array__NativeArray*)var218)->values[3] = (val*) var_app_version;
1314 ((struct instance_array__NativeArray*)var218)->values[4] = (val*) var202;
1315 ((struct instance_array__NativeArray*)var218)->values[5] = (val*) var_app_package;
1316 ((struct instance_array__NativeArray*)var218)->values[6] = (val*) var207;
1317 ((struct instance_array__NativeArray*)var218)->values[7] = (val*) var_app_name;
1318 ((struct instance_array__NativeArray*)var218)->values[8] = (val*) var212;
1319 ((void (*)(val*, val*, long))(var216->class->vft[COLOR_array__Array__with_native]))(var216, var218, var217) /* with_native on <var216:Array[Object]>*/;
1320 }
1321 var219 = ((val* (*)(val*))(var216->class->vft[COLOR_string__Object__to_s]))(var216) /* to_s on <var216:Array[Object]>*/;
1322 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var219) /* write on <var_file:OFStream>*/;
1323 ((void (*)(val*))(var_file->class->vft[COLOR_stream__IOS__close]))(var_file) /* close on <var_file:OFStream>*/;
1324 var220 = NEW_array__Array(&type_array__Arraykernel__Object);
1325 var221 = 3;
1326 ((void (*)(val*, long))(var220->class->vft[COLOR_array__Array__with_capacity]))(var220, var221) /* with_capacity on <var220:Array[Object]>*/;
1327 var_222 = var220;
1328 if (varonce223) {
1329 var224 = varonce223;
1330 } else {
1331 var225 = "";
1332 var226 = 0;
1333 var227 = string__NativeString__to_s_with_length(var225, var226);
1334 var224 = var227;
1335 varonce223 = var224;
1336 }
1337 ((void (*)(val*, val*))(var_222->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_222, var224) /* add on <var_222:Array[Object]>*/;
1338 var228 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1339 ((void (*)(val*, val*))(var_222->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_222, var228) /* add on <var_222:Array[Object]>*/;
1340 if (varonce229) {
1341 var230 = varonce229;
1342 } else {
1343 var231 = "/res/";
1344 var232 = 5;
1345 var233 = string__NativeString__to_s_with_length(var231, var232);
1346 var230 = var233;
1347 varonce229 = var230;
1348 }
1349 ((void (*)(val*, val*))(var_222->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_222, var230) /* add on <var_222:Array[Object]>*/;
1350 var234 = ((val* (*)(val*))(var_222->class->vft[COLOR_string__Object__to_s]))(var_222) /* to_s on <var_222:Array[Object]>*/;
1351 var_dir = var234;
1352 var235 = ((short int (*)(val*))(var_dir->class->vft[COLOR_file__String__file_exists]))(var_dir) /* file_exists on <var_dir:String>*/;
1353 var236 = !var235;
1354 if (var236){
1355 ((void (*)(val*))(var_dir->class->vft[COLOR_file__String__mkdir]))(var_dir) /* mkdir on <var_dir:String>*/;
1356 } else {
1357 }
1358 var237 = NEW_array__Array(&type_array__Arraykernel__Object);
1359 var238 = 3;
1360 ((void (*)(val*, long))(var237->class->vft[COLOR_array__Array__with_capacity]))(var237, var238) /* with_capacity on <var237:Array[Object]>*/;
1361 var_239 = var237;
1362 if (varonce240) {
1363 var241 = varonce240;
1364 } else {
1365 var242 = "";
1366 var243 = 0;
1367 var244 = string__NativeString__to_s_with_length(var242, var243);
1368 var241 = var244;
1369 varonce240 = var241;
1370 }
1371 ((void (*)(val*, val*))(var_239->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_239, var241) /* add on <var_239:Array[Object]>*/;
1372 ((void (*)(val*, val*))(var_239->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_239, var_dir) /* add on <var_239:Array[Object]>*/;
1373 if (varonce245) {
1374 var246 = varonce245;
1375 } else {
1376 var247 = "/values/";
1377 var248 = 8;
1378 var249 = string__NativeString__to_s_with_length(var247, var248);
1379 var246 = var249;
1380 varonce245 = var246;
1381 }
1382 ((void (*)(val*, val*))(var_239->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_239, var246) /* add on <var_239:Array[Object]>*/;
1383 var250 = ((val* (*)(val*))(var_239->class->vft[COLOR_string__Object__to_s]))(var_239) /* to_s on <var_239:Array[Object]>*/;
1384 var_dir = var250;
1385 var251 = ((short int (*)(val*))(var_dir->class->vft[COLOR_file__String__file_exists]))(var_dir) /* file_exists on <var_dir:String>*/;
1386 var252 = !var251;
1387 if (var252){
1388 ((void (*)(val*))(var_dir->class->vft[COLOR_file__String__mkdir]))(var_dir) /* mkdir on <var_dir:String>*/;
1389 } else {
1390 }
1391 var253 = NEW_file__OFStream(&type_file__OFStream);
1392 var254 = NEW_array__Array(&type_array__Arraykernel__Object);
1393 var255 = 3;
1394 ((void (*)(val*, long))(var254->class->vft[COLOR_array__Array__with_capacity]))(var254, var255) /* with_capacity on <var254:Array[Object]>*/;
1395 var_256 = var254;
1396 if (varonce257) {
1397 var258 = varonce257;
1398 } else {
1399 var259 = "";
1400 var260 = 0;
1401 var261 = string__NativeString__to_s_with_length(var259, var260);
1402 var258 = var261;
1403 varonce257 = var258;
1404 }
1405 ((void (*)(val*, val*))(var_256->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_256, var258) /* add on <var_256:Array[Object]>*/;
1406 ((void (*)(val*, val*))(var_256->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_256, var_dir) /* add on <var_256:Array[Object]>*/;
1407 if (varonce262) {
1408 var263 = varonce262;
1409 } else {
1410 var264 = "/strings.xml";
1411 var265 = 12;
1412 var266 = string__NativeString__to_s_with_length(var264, var265);
1413 var263 = var266;
1414 varonce262 = var263;
1415 }
1416 ((void (*)(val*, val*))(var_256->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_256, var263) /* add on <var_256:Array[Object]>*/;
1417 var267 = ((val* (*)(val*))(var_256->class->vft[COLOR_string__Object__to_s]))(var_256) /* to_s on <var_256:Array[Object]>*/;
1418 ((void (*)(val*, val*))(var253->class->vft[COLOR_file__OFStream__open]))(var253, var267) /* open on <var253:OFStream>*/;
1419 var_file = var253;
1420 if (varonce268) {
1421 var269 = varonce268;
1422 } else {
1423 var270 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <string name=\"app_name\">";
1424 var271 = 79;
1425 var272 = string__NativeString__to_s_with_length(var270, var271);
1426 var269 = var272;
1427 varonce268 = var269;
1428 }
1429 if (varonce273) {
1430 var274 = varonce273;
1431 } else {
1432 var275 = "</string>\n</resources>";
1433 var276 = 22;
1434 var277 = string__NativeString__to_s_with_length(var275, var276);
1435 var274 = var277;
1436 varonce273 = var274;
1437 }
1438 var278 = NEW_array__Array(&type_array__Arraykernel__Object);
1439 { /* var278 = array_instance Array[Object] */
1440 var279 = 3;
1441 var280 = NEW_array__NativeArray(var279, &type_array__NativeArraykernel__Object);
1442 ((struct instance_array__NativeArray*)var280)->values[0] = (val*) var269;
1443 ((struct instance_array__NativeArray*)var280)->values[1] = (val*) var_app_name;
1444 ((struct instance_array__NativeArray*)var280)->values[2] = (val*) var274;
1445 ((void (*)(val*, val*, long))(var278->class->vft[COLOR_array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[Object]>*/;
1446 }
1447 var281 = ((val* (*)(val*))(var278->class->vft[COLOR_string__Object__to_s]))(var278) /* to_s on <var278:Array[Object]>*/;
1448 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var281) /* write on <var_file:OFStream>*/;
1449 ((void (*)(val*))(var_file->class->vft[COLOR_stream__IOS__close]))(var_file) /* close on <var_file:OFStream>*/;
1450 if (varonce282) {
1451 var283 = varonce282;
1452 } else {
1453 var284 = "NIT_DIR";
1454 var285 = 7;
1455 var286 = string__NativeString__to_s_with_length(var284, var285);
1456 var283 = var286;
1457 varonce282 = var283;
1458 }
1459 var287 = ((val* (*)(val*))(var283->class->vft[COLOR_environ__String__environ]))(var283) /* environ on <var283:String>*/;
1460 var_nit_dir = var287;
1461 var288 = ((short int (*)(val*))(var_nit_dir->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_nit_dir) /* is_empty on <var_nit_dir:String>*/;
1462 var289 = !var288;
1463 if (var289){
1464 if (varonce290) {
1465 var291 = varonce290;
1466 } else {
1467 var292 = "/share/";
1468 var293 = 7;
1469 var294 = string__NativeString__to_s_with_length(var292, var293);
1470 var291 = var294;
1471 varonce290 = var291;
1472 }
1473 var295 = NEW_array__Array(&type_array__Arraykernel__Object);
1474 { /* var295 = array_instance Array[Object] */
1475 var296 = 2;
1476 var297 = NEW_array__NativeArray(var296, &type_array__NativeArraykernel__Object);
1477 ((struct instance_array__NativeArray*)var297)->values[0] = (val*) var_nit_dir;
1478 ((struct instance_array__NativeArray*)var297)->values[1] = (val*) var291;
1479 ((void (*)(val*, val*, long))(var295->class->vft[COLOR_array__Array__with_native]))(var295, var297, var296) /* with_native on <var295:Array[Object]>*/;
1480 }
1481 var298 = ((val* (*)(val*))(var295->class->vft[COLOR_string__Object__to_s]))(var295) /* to_s on <var295:Array[Object]>*/;
1482 var_share_dir = var298;
1483 } else {
1484 var299 = ((val* (*)(val*))(self->class->vft[COLOR_kernel__Object__sys]))(self) /* sys on <self:AndroidToolchain>*/;
1485 var300 = ((val* (*)(val*))(var299->class->vft[COLOR_string__Sys__program_name]))(var299) /* program_name on <var299:Sys>*/;
1486 var301 = ((val* (*)(val*))(var300->class->vft[COLOR_file__String__dirname]))(var300) /* dirname on <var300:String>*/;
1487 if (varonce302) {
1488 var303 = varonce302;
1489 } else {
1490 var304 = "/../share/";
1491 var305 = 10;
1492 var306 = string__NativeString__to_s_with_length(var304, var305);
1493 var303 = var306;
1494 varonce302 = var303;
1495 }
1496 var307 = NEW_array__Array(&type_array__Arraykernel__Object);
1497 { /* var307 = array_instance Array[Object] */
1498 var308 = 2;
1499 var309 = NEW_array__NativeArray(var308, &type_array__NativeArraykernel__Object);
1500 ((struct instance_array__NativeArray*)var309)->values[0] = (val*) var301;
1501 ((struct instance_array__NativeArray*)var309)->values[1] = (val*) var303;
1502 ((void (*)(val*, val*, long))(var307->class->vft[COLOR_array__Array__with_native]))(var307, var309, var308) /* with_native on <var307:Array[Object]>*/;
1503 }
1504 var310 = ((val* (*)(val*))(var307->class->vft[COLOR_string__Object__to_s]))(var307) /* to_s on <var307:Array[Object]>*/;
1505 var_share_dir = var310;
1506 }
1507 var311 = ((short int (*)(val*))(var_share_dir->class->vft[COLOR_file__String__file_exists]))(var_share_dir) /* file_exists on <var_share_dir:nullable Object(String)>*/;
1508 var312 = !var311;
1509 if (var312){
1510 if (varonce313) {
1511 var314 = varonce313;
1512 } else {
1513 var315 = "Android project error: Nit share directory not found, please use the environment variable NIT_DIR";
1514 var316 = 97;
1515 var317 = string__NativeString__to_s_with_length(var315, var316);
1516 var314 = var317;
1517 varonce313 = var314;
1518 }
1519 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var314) /* print on <self:AndroidToolchain>*/;
1520 var318 = 1;
1521 ((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var318) /* exit on <self:AndroidToolchain>*/;
1522 } else {
1523 }
1524 var319 = ((val* (*)(val*))(var_share_dir->class->vft[COLOR_file__String__realpath]))(var_share_dir) /* realpath on <var_share_dir:nullable Object(String)>*/;
1525 var_share_dir = var319;
1526 var320 = NEW_array__Array(&type_array__Arraykernel__Object);
1527 var321 = 3;
1528 ((void (*)(val*, long))(var320->class->vft[COLOR_array__Array__with_capacity]))(var320, var321) /* with_capacity on <var320:Array[Object]>*/;
1529 var_322 = var320;
1530 if (varonce323) {
1531 var324 = varonce323;
1532 } else {
1533 var325 = "";
1534 var326 = 0;
1535 var327 = string__NativeString__to_s_with_length(var325, var326);
1536 var324 = var327;
1537 varonce323 = var324;
1538 }
1539 ((void (*)(val*, val*))(var_322->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_322, var324) /* add on <var_322:Array[Object]>*/;
1540 var328 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1541 ((void (*)(val*, val*))(var_322->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_322, var328) /* add on <var_322:Array[Object]>*/;
1542 if (varonce329) {
1543 var330 = varonce329;
1544 } else {
1545 var331 = "/jni/png";
1546 var332 = 8;
1547 var333 = string__NativeString__to_s_with_length(var331, var332);
1548 var330 = var333;
1549 varonce329 = var330;
1550 }
1551 ((void (*)(val*, val*))(var_322->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_322, var330) /* add on <var_322:Array[Object]>*/;
1552 var334 = ((val* (*)(val*))(var_322->class->vft[COLOR_string__Object__to_s]))(var_322) /* to_s on <var_322:Array[Object]>*/;
1553 var_target_png_dir = var334;
1554 var335 = ((short int (*)(val*))(var_target_png_dir->class->vft[COLOR_file__String__file_exists]))(var_target_png_dir) /* file_exists on <var_target_png_dir:String>*/;
1555 var336 = !var335;
1556 if (var336){
1557 var337 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
1558 if (varonce338) {
1559 var339 = varonce338;
1560 } else {
1561 var340 = "ln";
1562 var341 = 2;
1563 var342 = string__NativeString__to_s_with_length(var340, var341);
1564 var339 = var342;
1565 varonce338 = var339;
1566 }
1567 if (varonce343) {
1568 var344 = varonce343;
1569 } else {
1570 var345 = "-s";
1571 var346 = 2;
1572 var347 = string__NativeString__to_s_with_length(var345, var346);
1573 var344 = var347;
1574 varonce343 = var344;
1575 }
1576 var348 = NEW_array__Array(&type_array__Arraykernel__Object);
1577 var349 = 3;
1578 ((void (*)(val*, long))(var348->class->vft[COLOR_array__Array__with_capacity]))(var348, var349) /* with_capacity on <var348:Array[Object]>*/;
1579 var_350 = var348;
1580 if (varonce351) {
1581 var352 = varonce351;
1582 } else {
1583 var353 = "";
1584 var354 = 0;
1585 var355 = string__NativeString__to_s_with_length(var353, var354);
1586 var352 = var355;
1587 varonce351 = var352;
1588 }
1589 ((void (*)(val*, val*))(var_350->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_350, var352) /* add on <var_350:Array[Object]>*/;
1590 ((void (*)(val*, val*))(var_350->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_350, var_share_dir) /* add on <var_350:Array[Object]>*/;
1591 if (varonce356) {
1592 var357 = varonce356;
1593 } else {
1594 var358 = "/png/";
1595 var359 = 5;
1596 var360 = string__NativeString__to_s_with_length(var358, var359);
1597 var357 = var360;
1598 varonce356 = var357;
1599 }
1600 ((void (*)(val*, val*))(var_350->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_350, var357) /* add on <var_350:Array[Object]>*/;
1601 var361 = ((val* (*)(val*))(var_350->class->vft[COLOR_string__Object__to_s]))(var_350) /* to_s on <var_350:Array[Object]>*/;
1602 var362 = NEW_array__Array(&type_array__Arraystring__String);
1603 { /* var362 = array_instance Array[String] */
1604 var363 = 4;
1605 var364 = NEW_array__NativeArray(var363, &type_array__NativeArraystring__String);
1606 ((struct instance_array__NativeArray*)var364)->values[0] = (val*) var339;
1607 ((struct instance_array__NativeArray*)var364)->values[1] = (val*) var344;
1608 ((struct instance_array__NativeArray*)var364)->values[2] = (val*) var361;
1609 ((struct instance_array__NativeArray*)var364)->values[3] = (val*) var_target_png_dir;
1610 ((void (*)(val*, val*, long))(var362->class->vft[COLOR_array__Array__with_native]))(var362, var364, var363) /* with_native on <var362:Array[String]>*/;
1611 }
1612 ((void (*)(val*, val*))(var337->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var337, var362) /* exec_and_check on <var337:ToolContext>*/;
1613 } else {
1614 }
1615 var365 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__mainmodule]))(var_compiler) /* mainmodule on <var_compiler:AbstractCompiler>*/;
1616 var366 = ((val* (*)(val*))(var365->class->vft[COLOR_mmodule__MModule__location]))(var365) /* location on <var365:MModule>*/;
1617 var367 = ((val* (*)(val*))(var366->class->vft[COLOR_location__Location__file]))(var366) /* file on <var366:Location>*/;
1618 if (var367 == NULL) {
1619 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1620 fprintf(stderr, " (%s:%d)\n", "src/android_platform.nit", 201);
1621 show_backtrace(1);
1622 } else {
1623 var368 = ((val* (*)(val*))(var367->class->vft[COLOR_location__SourceFile__filename]))(var367) /* filename on <var367:nullable SourceFile>*/;
1624 }
1625 var369 = ((val* (*)(val*))(var368->class->vft[COLOR_file__String__dirname]))(var368) /* dirname on <var368:String>*/;
1626 var_mainmodule_dir = var369;
1627 var370 = NEW_array__Array(&type_array__Arraykernel__Object);
1628 var371 = 3;
1629 ((void (*)(val*, long))(var370->class->vft[COLOR_array__Array__with_capacity]))(var370, var371) /* with_capacity on <var370:Array[Object]>*/;
1630 var_372 = var370;
1631 if (varonce373) {
1632 var374 = varonce373;
1633 } else {
1634 var375 = "";
1635 var376 = 0;
1636 var377 = string__NativeString__to_s_with_length(var375, var376);
1637 var374 = var377;
1638 varonce373 = var374;
1639 }
1640 ((void (*)(val*, val*))(var_372->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_372, var374) /* add on <var_372:Array[Object]>*/;
1641 ((void (*)(val*, val*))(var_372->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_372, var_mainmodule_dir) /* add on <var_372:Array[Object]>*/;
1642 if (varonce378) {
1643 var379 = varonce378;
1644 } else {
1645 var380 = "/../assets";
1646 var381 = 10;
1647 var382 = string__NativeString__to_s_with_length(var380, var381);
1648 var379 = var382;
1649 varonce378 = var379;
1650 }
1651 ((void (*)(val*, val*))(var_372->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_372, var379) /* add on <var_372:Array[Object]>*/;
1652 var383 = ((val* (*)(val*))(var_372->class->vft[COLOR_string__Object__to_s]))(var_372) /* to_s on <var_372:Array[Object]>*/;
1653 var_assets_dir = var383;
1654 var384 = ((short int (*)(val*))(var_assets_dir->class->vft[COLOR_file__String__file_exists]))(var_assets_dir) /* file_exists on <var_assets_dir:String>*/;
1655 var385 = !var384;
1656 if (var385){
1657 var386 = NEW_array__Array(&type_array__Arraykernel__Object);
1658 var387 = 3;
1659 ((void (*)(val*, long))(var386->class->vft[COLOR_array__Array__with_capacity]))(var386, var387) /* with_capacity on <var386:Array[Object]>*/;
1660 var_388 = var386;
1661 if (varonce389) {
1662 var390 = varonce389;
1663 } else {
1664 var391 = "";
1665 var392 = 0;
1666 var393 = string__NativeString__to_s_with_length(var391, var392);
1667 var390 = var393;
1668 varonce389 = var390;
1669 }
1670 ((void (*)(val*, val*))(var_388->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_388, var390) /* add on <var_388:Array[Object]>*/;
1671 ((void (*)(val*, val*))(var_388->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_388, var_mainmodule_dir) /* add on <var_388:Array[Object]>*/;
1672 if (varonce394) {
1673 var395 = varonce394;
1674 } else {
1675 var396 = "/assets";
1676 var397 = 7;
1677 var398 = string__NativeString__to_s_with_length(var396, var397);
1678 var395 = var398;
1679 varonce394 = var395;
1680 }
1681 ((void (*)(val*, val*))(var_388->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_388, var395) /* add on <var_388:Array[Object]>*/;
1682 var399 = ((val* (*)(val*))(var_388->class->vft[COLOR_string__Object__to_s]))(var_388) /* to_s on <var_388:Array[Object]>*/;
1683 var_assets_dir = var399;
1684 } else {
1685 }
1686 var400 = ((short int (*)(val*))(var_assets_dir->class->vft[COLOR_file__String__file_exists]))(var_assets_dir) /* file_exists on <var_assets_dir:String>*/;
1687 if (var400){
1688 var401 = ((val* (*)(val*))(var_assets_dir->class->vft[COLOR_file__String__realpath]))(var_assets_dir) /* realpath on <var_assets_dir:String>*/;
1689 var_assets_dir = var401;
1690 var402 = NEW_array__Array(&type_array__Arraykernel__Object);
1691 var403 = 3;
1692 ((void (*)(val*, long))(var402->class->vft[COLOR_array__Array__with_capacity]))(var402, var403) /* with_capacity on <var402:Array[Object]>*/;
1693 var_404 = var402;
1694 if (varonce405) {
1695 var406 = varonce405;
1696 } else {
1697 var407 = "";
1698 var408 = 0;
1699 var409 = string__NativeString__to_s_with_length(var407, var408);
1700 var406 = var409;
1701 varonce405 = var406;
1702 }
1703 ((void (*)(val*, val*))(var_404->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_404, var406) /* add on <var_404:Array[Object]>*/;
1704 var410 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1705 ((void (*)(val*, val*))(var_404->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_404, var410) /* add on <var_404:Array[Object]>*/;
1706 if (varonce411) {
1707 var412 = varonce411;
1708 } else {
1709 var413 = "/assets";
1710 var414 = 7;
1711 var415 = string__NativeString__to_s_with_length(var413, var414);
1712 var412 = var415;
1713 varonce411 = var412;
1714 }
1715 ((void (*)(val*, val*))(var_404->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_404, var412) /* add on <var_404:Array[Object]>*/;
1716 var416 = ((val* (*)(val*))(var_404->class->vft[COLOR_string__Object__to_s]))(var_404) /* to_s on <var_404:Array[Object]>*/;
1717 var_target_assets_dir = var416;
1718 var417 = ((short int (*)(val*))(var_target_assets_dir->class->vft[COLOR_file__String__file_exists]))(var_target_assets_dir) /* file_exists on <var_target_assets_dir:String>*/;
1719 var418 = !var417;
1720 if (var418){
1721 var419 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
1722 if (varonce420) {
1723 var421 = varonce420;
1724 } else {
1725 var422 = "ln";
1726 var423 = 2;
1727 var424 = string__NativeString__to_s_with_length(var422, var423);
1728 var421 = var424;
1729 varonce420 = var421;
1730 }
1731 if (varonce425) {
1732 var426 = varonce425;
1733 } else {
1734 var427 = "-s";
1735 var428 = 2;
1736 var429 = string__NativeString__to_s_with_length(var427, var428);
1737 var426 = var429;
1738 varonce425 = var426;
1739 }
1740 var430 = NEW_array__Array(&type_array__Arraystring__String);
1741 { /* var430 = array_instance Array[String] */
1742 var431 = 4;
1743 var432 = NEW_array__NativeArray(var431, &type_array__NativeArraystring__String);
1744 ((struct instance_array__NativeArray*)var432)->values[0] = (val*) var421;
1745 ((struct instance_array__NativeArray*)var432)->values[1] = (val*) var426;
1746 ((struct instance_array__NativeArray*)var432)->values[2] = (val*) var_assets_dir;
1747 ((struct instance_array__NativeArray*)var432)->values[3] = (val*) var_target_assets_dir;
1748 ((void (*)(val*, val*, long))(var430->class->vft[COLOR_array__Array__with_native]))(var430, var432, var431) /* with_native on <var430:Array[String]>*/;
1749 }
1750 ((void (*)(val*, val*))(var419->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var419, var430) /* exec_and_check on <var419:ToolContext>*/;
1751 } else {
1752 }
1753 } else {
1754 }
1755 RET_LABEL:;
1756 }
1757 /* method android_platform#AndroidToolchain#write_files for (self: Object, AbstractCompiler, String, Array[String]) */
1758 void VIRTUAL_android_platform__AndroidToolchain__write_files(val* self, val* p0, val* p1, val* p2) {
1759 android_platform__AndroidToolchain__write_files(self, p0, p1, p2);
1760 RET_LABEL:;
1761 }
1762 /* method android_platform#AndroidToolchain#write_makefile for (self: AndroidToolchain, AbstractCompiler, String, Array[String]) */
1763 void android_platform__AndroidToolchain__write_makefile(val* self, val* p0, val* p1, val* p2) {
1764 val* var_compiler /* var compiler: AbstractCompiler */;
1765 val* var_compile_dir /* var compile_dir: String */;
1766 val* var_cfiles /* var cfiles: Array[String] */;
1767 var_compiler = p0;
1768 var_compile_dir = p1;
1769 var_cfiles = p2;
1770 RET_LABEL:;
1771 }
1772 /* method android_platform#AndroidToolchain#write_makefile for (self: Object, AbstractCompiler, String, Array[String]) */
1773 void VIRTUAL_android_platform__AndroidToolchain__write_makefile(val* self, val* p0, val* p1, val* p2) {
1774 android_platform__AndroidToolchain__write_makefile(self, p0, p1, p2);
1775 RET_LABEL:;
1776 }
1777 /* method android_platform#AndroidToolchain#compile_c_code for (self: AndroidToolchain, AbstractCompiler, String) */
1778 void android_platform__AndroidToolchain__compile_c_code(val* self, val* p0, val* p1) {
1779 val* var_compiler /* var compiler: AbstractCompiler */;
1780 val* var_compile_dir /* var compile_dir: String */;
1781 val* var /* : ToolContext */;
1782 static val* varonce;
1783 val* var1 /* : String */;
1784 char* var2 /* : NativeString */;
1785 long var3 /* : Int */;
1786 val* var4 /* : String */;
1787 static val* varonce5;
1788 val* var6 /* : String */;
1789 char* var7 /* : NativeString */;
1790 long var8 /* : Int */;
1791 val* var9 /* : String */;
1792 static val* varonce10;
1793 val* var11 /* : String */;
1794 char* var12 /* : NativeString */;
1795 long var13 /* : Int */;
1796 val* var14 /* : String */;
1797 static val* varonce15;
1798 val* var16 /* : String */;
1799 char* var17 /* : NativeString */;
1800 long var18 /* : Int */;
1801 val* var19 /* : String */;
1802 static val* varonce20;
1803 val* var21 /* : String */;
1804 char* var22 /* : NativeString */;
1805 long var23 /* : Int */;
1806 val* var24 /* : String */;
1807 val* var25 /* : String */;
1808 val* var26 /* : Array[String] */;
1809 long var27 /* : Int */;
1810 val* var28 /* : NativeArray[String] */;
1811 val* var29 /* : ToolContext */;
1812 static val* varonce30;
1813 val* var31 /* : String */;
1814 char* var32 /* : NativeString */;
1815 long var33 /* : Int */;
1816 val* var34 /* : String */;
1817 static val* varonce35;
1818 val* var36 /* : String */;
1819 char* var37 /* : NativeString */;
1820 long var38 /* : Int */;
1821 val* var39 /* : String */;
1822 static val* varonce40;
1823 val* var41 /* : String */;
1824 char* var42 /* : NativeString */;
1825 long var43 /* : Int */;
1826 val* var44 /* : String */;
1827 static val* varonce45;
1828 val* var46 /* : String */;
1829 char* var47 /* : NativeString */;
1830 long var48 /* : Int */;
1831 val* var49 /* : String */;
1832 val* var50 /* : String */;
1833 static val* varonce51;
1834 val* var52 /* : String */;
1835 char* var53 /* : NativeString */;
1836 long var54 /* : Int */;
1837 val* var55 /* : String */;
1838 val* var56 /* : String */;
1839 val* var57 /* : Array[String] */;
1840 long var58 /* : Int */;
1841 val* var59 /* : NativeArray[String] */;
1842 val* var60 /* : ToolContext */;
1843 val* var61 /* : OptionString */;
1844 val* var62 /* : nullable Object */;
1845 val* var_outname /* var outname: nullable String */;
1846 val* var63 /* : null */;
1847 short int var64 /* : Bool */;
1848 val* var65 /* : Array[Object] */;
1849 long var66 /* : Int */;
1850 val* var_ /* var : Array[Object] */;
1851 static val* varonce67;
1852 val* var68 /* : String */;
1853 char* var69 /* : NativeString */;
1854 long var70 /* : Int */;
1855 val* var71 /* : String */;
1856 val* var72 /* : MModule */;
1857 val* var73 /* : String */;
1858 static val* varonce74;
1859 val* var75 /* : String */;
1860 char* var76 /* : NativeString */;
1861 long var77 /* : Int */;
1862 val* var78 /* : String */;
1863 val* var79 /* : String */;
1864 val* var80 /* : ToolContext */;
1865 static val* varonce81;
1866 val* var82 /* : String */;
1867 char* var83 /* : NativeString */;
1868 long var84 /* : Int */;
1869 val* var85 /* : String */;
1870 val* var86 /* : Array[Object] */;
1871 long var87 /* : Int */;
1872 val* var_88 /* var : Array[Object] */;
1873 static val* varonce89;
1874 val* var90 /* : String */;
1875 char* var91 /* : NativeString */;
1876 long var92 /* : Int */;
1877 val* var93 /* : String */;
1878 val* var94 /* : String */;
1879 static val* varonce95;
1880 val* var96 /* : String */;
1881 char* var97 /* : NativeString */;
1882 long var98 /* : Int */;
1883 val* var99 /* : String */;
1884 val* var100 /* : MModule */;
1885 val* var101 /* : String */;
1886 static val* varonce102;
1887 val* var103 /* : String */;
1888 char* var104 /* : NativeString */;
1889 long var105 /* : Int */;
1890 val* var106 /* : String */;
1891 val* var107 /* : String */;
1892 val* var108 /* : Array[String] */;
1893 long var109 /* : Int */;
1894 val* var110 /* : NativeArray[String] */;
1895 var_compiler = p0;
1896 var_compile_dir = p1;
1897 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
1898 if (varonce) {
1899 var1 = varonce;
1900 } else {
1901 var2 = "ndk-build";
1902 var3 = 9;
1903 var4 = string__NativeString__to_s_with_length(var2, var3);
1904 var1 = var4;
1905 varonce = var1;
1906 }
1907 if (varonce5) {
1908 var6 = varonce5;
1909 } else {
1910 var7 = "-s";
1911 var8 = 2;
1912 var9 = string__NativeString__to_s_with_length(var7, var8);
1913 var6 = var9;
1914 varonce5 = var6;
1915 }
1916 if (varonce10) {
1917 var11 = varonce10;
1918 } else {
1919 var12 = "-j";
1920 var13 = 2;
1921 var14 = string__NativeString__to_s_with_length(var12, var13);
1922 var11 = var14;
1923 varonce10 = var11;
1924 }
1925 if (varonce15) {
1926 var16 = varonce15;
1927 } else {
1928 var17 = "4";
1929 var18 = 1;
1930 var19 = string__NativeString__to_s_with_length(var17, var18);
1931 var16 = var19;
1932 varonce15 = var16;
1933 }
1934 if (varonce20) {
1935 var21 = varonce20;
1936 } else {
1937 var22 = "-C";
1938 var23 = 2;
1939 var24 = string__NativeString__to_s_with_length(var22, var23);
1940 var21 = var24;
1941 varonce20 = var21;
1942 }
1943 var25 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1944 var26 = NEW_array__Array(&type_array__Arraystring__String);
1945 { /* var26 = array_instance Array[String] */
1946 var27 = 6;
1947 var28 = NEW_array__NativeArray(var27, &type_array__NativeArraystring__String);
1948 ((struct instance_array__NativeArray*)var28)->values[0] = (val*) var1;
1949 ((struct instance_array__NativeArray*)var28)->values[1] = (val*) var6;
1950 ((struct instance_array__NativeArray*)var28)->values[2] = (val*) var11;
1951 ((struct instance_array__NativeArray*)var28)->values[3] = (val*) var16;
1952 ((struct instance_array__NativeArray*)var28)->values[4] = (val*) var21;
1953 ((struct instance_array__NativeArray*)var28)->values[5] = (val*) var25;
1954 ((void (*)(val*, val*, long))(var26->class->vft[COLOR_array__Array__with_native]))(var26, var28, var27) /* with_native on <var26:Array[String]>*/;
1955 }
1956 ((void (*)(val*, val*))(var->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var, var26) /* exec_and_check on <var:ToolContext>*/;
1957 var29 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
1958 if (varonce30) {
1959 var31 = varonce30;
1960 } else {
1961 var32 = "ant";
1962 var33 = 3;
1963 var34 = string__NativeString__to_s_with_length(var32, var33);
1964 var31 = var34;
1965 varonce30 = var31;
1966 }
1967 if (varonce35) {
1968 var36 = varonce35;
1969 } else {
1970 var37 = "-q";
1971 var38 = 2;
1972 var39 = string__NativeString__to_s_with_length(var37, var38);
1973 var36 = var39;
1974 varonce35 = var36;
1975 }
1976 if (varonce40) {
1977 var41 = varonce40;
1978 } else {
1979 var42 = "debug";
1980 var43 = 5;
1981 var44 = string__NativeString__to_s_with_length(var42, var43);
1982 var41 = var44;
1983 varonce40 = var41;
1984 }
1985 if (varonce45) {
1986 var46 = varonce45;
1987 } else {
1988 var47 = "-f";
1989 var48 = 2;
1990 var49 = string__NativeString__to_s_with_length(var47, var48);
1991 var46 = var49;
1992 varonce45 = var46;
1993 }
1994 var50 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
1995 if (varonce51) {
1996 var52 = varonce51;
1997 } else {
1998 var53 = "/build.xml";
1999 var54 = 10;
2000 var55 = string__NativeString__to_s_with_length(var53, var54);
2001 var52 = var55;
2002 varonce51 = var52;
2003 }
2004 var56 = ((val* (*)(val*, val*))(var50->class->vft[COLOR_string__String___43d]))(var50, var52) /* + on <var50:String>*/;
2005 var57 = NEW_array__Array(&type_array__Arraystring__String);
2006 { /* var57 = array_instance Array[String] */
2007 var58 = 5;
2008 var59 = NEW_array__NativeArray(var58, &type_array__NativeArraystring__String);
2009 ((struct instance_array__NativeArray*)var59)->values[0] = (val*) var31;
2010 ((struct instance_array__NativeArray*)var59)->values[1] = (val*) var36;
2011 ((struct instance_array__NativeArray*)var59)->values[2] = (val*) var41;
2012 ((struct instance_array__NativeArray*)var59)->values[3] = (val*) var46;
2013 ((struct instance_array__NativeArray*)var59)->values[4] = (val*) var56;
2014 ((void (*)(val*, val*, long))(var57->class->vft[COLOR_array__Array__with_native]))(var57, var59, var58) /* with_native on <var57:Array[String]>*/;
2015 }
2016 ((void (*)(val*, val*))(var29->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var29, var57) /* exec_and_check on <var29:ToolContext>*/;
2017 var60 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
2018 var61 = ((val* (*)(val*))(var60->class->vft[COLOR_abstract_compiler__ToolContext__opt_output]))(var60) /* opt_output on <var60:ToolContext>*/;
2019 var62 = ((val* (*)(val*))(var61->class->vft[COLOR_opts__Option__value]))(var61) /* value on <var61:OptionString>*/;
2020 var_outname = var62;
2021 var63 = NULL;
2022 if (var_outname == NULL) {
2023 var64 = 1; /* is null */
2024 } else {
2025 var64 = 0; /* arg is null but recv is not */
2026 }
2027 if (var64){
2028 var65 = NEW_array__Array(&type_array__Arraykernel__Object);
2029 var66 = 3;
2030 ((void (*)(val*, long))(var65->class->vft[COLOR_array__Array__with_capacity]))(var65, var66) /* with_capacity on <var65:Array[Object]>*/;
2031 var_ = var65;
2032 if (varonce67) {
2033 var68 = varonce67;
2034 } else {
2035 var69 = "";
2036 var70 = 0;
2037 var71 = string__NativeString__to_s_with_length(var69, var70);
2038 var68 = var71;
2039 varonce67 = var68;
2040 }
2041 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var68) /* add on <var_:Array[Object]>*/;
2042 var72 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__mainmodule]))(var_compiler) /* mainmodule on <var_compiler:AbstractCompiler>*/;
2043 var73 = ((val* (*)(val*))(var72->class->vft[COLOR_mmodule__MModule__name]))(var72) /* name on <var72:MModule>*/;
2044 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var73) /* add on <var_:Array[Object]>*/;
2045 if (varonce74) {
2046 var75 = varonce74;
2047 } else {
2048 var76 = ".apk";
2049 var77 = 4;
2050 var78 = string__NativeString__to_s_with_length(var76, var77);
2051 var75 = var78;
2052 varonce74 = var75;
2053 }
2054 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var75) /* add on <var_:Array[Object]>*/;
2055 var79 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2056 var_outname = var79;
2057 } else {
2058 }
2059 var80 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__Toolchain__toolcontext]))(self) /* toolcontext on <self:AndroidToolchain>*/;
2060 if (varonce81) {
2061 var82 = varonce81;
2062 } else {
2063 var83 = "mv";
2064 var84 = 2;
2065 var85 = string__NativeString__to_s_with_length(var83, var84);
2066 var82 = var85;
2067 varonce81 = var82;
2068 }
2069 var86 = NEW_array__Array(&type_array__Arraykernel__Object);
2070 var87 = 5;
2071 ((void (*)(val*, long))(var86->class->vft[COLOR_array__Array__with_capacity]))(var86, var87) /* with_capacity on <var86:Array[Object]>*/;
2072 var_88 = var86;
2073 if (varonce89) {
2074 var90 = varonce89;
2075 } else {
2076 var91 = "";
2077 var92 = 0;
2078 var93 = string__NativeString__to_s_with_length(var91, var92);
2079 var90 = var93;
2080 varonce89 = var90;
2081 }
2082 ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var90) /* add on <var_88:Array[Object]>*/;
2083 var94 = ((val* (*)(val*))(self->class->vft[COLOR_android_platform__AndroidToolchain__android_project_root]))(self) /* android_project_root on <self:AndroidToolchain>*/;
2084 ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var94) /* add on <var_88:Array[Object]>*/;
2085 if (varonce95) {
2086 var96 = varonce95;
2087 } else {
2088 var97 = "/bin/";
2089 var98 = 5;
2090 var99 = string__NativeString__to_s_with_length(var97, var98);
2091 var96 = var99;
2092 varonce95 = var96;
2093 }
2094 ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var96) /* add on <var_88:Array[Object]>*/;
2095 var100 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__mainmodule]))(var_compiler) /* mainmodule on <var_compiler:AbstractCompiler>*/;
2096 var101 = ((val* (*)(val*))(var100->class->vft[COLOR_mmodule__MModule__name]))(var100) /* name on <var100:MModule>*/;
2097 ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var101) /* add on <var_88:Array[Object]>*/;
2098 if (varonce102) {
2099 var103 = varonce102;
2100 } else {
2101 var104 = "-debug.apk";
2102 var105 = 10;
2103 var106 = string__NativeString__to_s_with_length(var104, var105);
2104 var103 = var106;
2105 varonce102 = var103;
2106 }
2107 ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var103) /* add on <var_88:Array[Object]>*/;
2108 var107 = ((val* (*)(val*))(var_88->class->vft[COLOR_string__Object__to_s]))(var_88) /* to_s on <var_88:Array[Object]>*/;
2109 var108 = NEW_array__Array(&type_array__Arraystring__String);
2110 { /* var108 = array_instance Array[String] */
2111 var109 = 3;
2112 var110 = NEW_array__NativeArray(var109, &type_array__NativeArraystring__String);
2113 ((struct instance_array__NativeArray*)var110)->values[0] = (val*) var82;
2114 ((struct instance_array__NativeArray*)var110)->values[1] = (val*) var107;
2115 ((struct instance_array__NativeArray*)var110)->values[2] = (val*) var_outname;
2116 ((void (*)(val*, val*, long))(var108->class->vft[COLOR_array__Array__with_native]))(var108, var110, var109) /* with_native on <var108:Array[String]>*/;
2117 }
2118 ((void (*)(val*, val*))(var80->class->vft[COLOR_android_platform__ToolContext__exec_and_check]))(var80, var108) /* exec_and_check on <var80:ToolContext>*/;
2119 RET_LABEL:;
2120 }
2121 /* method android_platform#AndroidToolchain#compile_c_code for (self: Object, AbstractCompiler, String) */
2122 void VIRTUAL_android_platform__AndroidToolchain__compile_c_code(val* self, val* p0, val* p1) {
2123 android_platform__AndroidToolchain__compile_c_code(self, p0, p1);
2124 RET_LABEL:;
2125 }