1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#ToolContext#opt_output for (self: ToolContext): OptionString */
3 val
* abstract_compiler__ToolContext__opt_output(val
* self
) {
4 val
* var
/* : OptionString */;
5 val
* var1
/* : OptionString */;
6 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
9 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 29);
16 /* method abstract_compiler#ToolContext#opt_output for (self: Object): OptionString */
17 val
* VIRTUAL_abstract_compiler__ToolContext__opt_output(val
* self
) {
18 val
* var
/* : OptionString */;
19 val
* var1
/* : OptionString */;
20 val
* var3
/* : OptionString */;
21 { /* Inline abstract_compiler#ToolContext#opt_output (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
25 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 29);
35 /* method abstract_compiler#ToolContext#opt_dir for (self: ToolContext): OptionString */
36 val
* abstract_compiler__ToolContext__opt_dir(val
* self
) {
37 val
* var
/* : OptionString */;
38 val
* var1
/* : OptionString */;
39 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:ToolContext> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
42 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 31);
49 /* method abstract_compiler#ToolContext#opt_dir for (self: Object): OptionString */
50 val
* VIRTUAL_abstract_compiler__ToolContext__opt_dir(val
* self
) {
51 val
* var
/* : OptionString */;
52 val
* var1
/* : OptionString */;
53 val
* var3
/* : OptionString */;
54 { /* Inline abstract_compiler#ToolContext#opt_dir (self) on <self:Object(ToolContext)> */
55 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:Object(ToolContext)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
58 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 31);
68 /* method abstract_compiler#ToolContext#opt_no_cc for (self: ToolContext): OptionBool */
69 val
* abstract_compiler__ToolContext__opt_no_cc(val
* self
) {
70 val
* var
/* : OptionBool */;
71 val
* var1
/* : OptionBool */;
72 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <self:ToolContext> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
75 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 33);
82 /* method abstract_compiler#ToolContext#opt_no_cc for (self: Object): OptionBool */
83 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_cc(val
* self
) {
84 val
* var
/* : OptionBool */;
85 val
* var1
/* : OptionBool */;
86 val
* var3
/* : OptionBool */;
87 { /* Inline abstract_compiler#ToolContext#opt_no_cc (self) on <self:Object(ToolContext)> */
88 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <self:Object(ToolContext)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
91 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 33);
101 /* method abstract_compiler#ToolContext#opt_no_main for (self: ToolContext): OptionBool */
102 val
* abstract_compiler__ToolContext__opt_no_main(val
* self
) {
103 val
* var
/* : OptionBool */;
104 val
* var1
/* : OptionBool */;
105 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_main
].val
; /* _opt_no_main on <self:ToolContext> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_main");
108 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 35);
115 /* method abstract_compiler#ToolContext#opt_no_main for (self: Object): OptionBool */
116 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_main(val
* self
) {
117 val
* var
/* : OptionBool */;
118 val
* var1
/* : OptionBool */;
119 val
* var3
/* : OptionBool */;
120 { /* Inline abstract_compiler#ToolContext#opt_no_main (self) on <self:Object(ToolContext)> */
121 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_main
].val
; /* _opt_no_main on <self:Object(ToolContext)> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_main");
124 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 35);
134 /* method abstract_compiler#ToolContext#opt_cc_path for (self: ToolContext): OptionArray */
135 val
* abstract_compiler__ToolContext__opt_cc_path(val
* self
) {
136 val
* var
/* : OptionArray */;
137 val
* var1
/* : OptionArray */;
138 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_cc_path
].val
; /* _opt_cc_path on <self:ToolContext> */
139 if (unlikely(var1
== NULL
)) {
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_cc_path");
141 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 37);
148 /* method abstract_compiler#ToolContext#opt_cc_path for (self: Object): OptionArray */
149 val
* VIRTUAL_abstract_compiler__ToolContext__opt_cc_path(val
* self
) {
150 val
* var
/* : OptionArray */;
151 val
* var1
/* : OptionArray */;
152 val
* var3
/* : OptionArray */;
153 { /* Inline abstract_compiler#ToolContext#opt_cc_path (self) on <self:Object(ToolContext)> */
154 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_cc_path
].val
; /* _opt_cc_path on <self:Object(ToolContext)> */
155 if (unlikely(var3
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_cc_path");
157 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 37);
167 /* method abstract_compiler#ToolContext#opt_make_flags for (self: ToolContext): OptionString */
168 val
* abstract_compiler__ToolContext__opt_make_flags(val
* self
) {
169 val
* var
/* : OptionString */;
170 val
* var1
/* : OptionString */;
171 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <self:ToolContext> */
172 if (unlikely(var1
== NULL
)) {
173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
174 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 39);
181 /* method abstract_compiler#ToolContext#opt_make_flags for (self: Object): OptionString */
182 val
* VIRTUAL_abstract_compiler__ToolContext__opt_make_flags(val
* self
) {
183 val
* var
/* : OptionString */;
184 val
* var1
/* : OptionString */;
185 val
* var3
/* : OptionString */;
186 { /* Inline abstract_compiler#ToolContext#opt_make_flags (self) on <self:Object(ToolContext)> */
187 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <self:Object(ToolContext)> */
188 if (unlikely(var3
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
190 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 39);
200 /* method abstract_compiler#ToolContext#opt_max_c_lines for (self: ToolContext): OptionInt */
201 val
* abstract_compiler__ToolContext__opt_max_c_lines(val
* self
) {
202 val
* var
/* : OptionInt */;
203 val
* var1
/* : OptionInt */;
204 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_max_c_lines
].val
; /* _opt_max_c_lines on <self:ToolContext> */
205 if (unlikely(var1
== NULL
)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_max_c_lines");
207 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 41);
214 /* method abstract_compiler#ToolContext#opt_max_c_lines for (self: Object): OptionInt */
215 val
* VIRTUAL_abstract_compiler__ToolContext__opt_max_c_lines(val
* self
) {
216 val
* var
/* : OptionInt */;
217 val
* var1
/* : OptionInt */;
218 val
* var3
/* : OptionInt */;
219 { /* Inline abstract_compiler#ToolContext#opt_max_c_lines (self) on <self:Object(ToolContext)> */
220 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_max_c_lines
].val
; /* _opt_max_c_lines on <self:Object(ToolContext)> */
221 if (unlikely(var3
== NULL
)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_max_c_lines");
223 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 41);
233 /* method abstract_compiler#ToolContext#opt_group_c_files for (self: ToolContext): OptionBool */
234 val
* abstract_compiler__ToolContext__opt_group_c_files(val
* self
) {
235 val
* var
/* : OptionBool */;
236 val
* var1
/* : OptionBool */;
237 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_group_c_files
].val
; /* _opt_group_c_files on <self:ToolContext> */
238 if (unlikely(var1
== NULL
)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_group_c_files");
240 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 43);
247 /* method abstract_compiler#ToolContext#opt_group_c_files for (self: Object): OptionBool */
248 val
* VIRTUAL_abstract_compiler__ToolContext__opt_group_c_files(val
* self
) {
249 val
* var
/* : OptionBool */;
250 val
* var1
/* : OptionBool */;
251 val
* var3
/* : OptionBool */;
252 { /* Inline abstract_compiler#ToolContext#opt_group_c_files (self) on <self:Object(ToolContext)> */
253 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_group_c_files
].val
; /* _opt_group_c_files on <self:Object(ToolContext)> */
254 if (unlikely(var3
== NULL
)) {
255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_group_c_files");
256 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 43);
266 /* method abstract_compiler#ToolContext#opt_compile_dir for (self: ToolContext): OptionString */
267 val
* abstract_compiler__ToolContext__opt_compile_dir(val
* self
) {
268 val
* var
/* : OptionString */;
269 val
* var1
/* : OptionString */;
270 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:ToolContext> */
271 if (unlikely(var1
== NULL
)) {
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
273 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 45);
280 /* method abstract_compiler#ToolContext#opt_compile_dir for (self: Object): OptionString */
281 val
* VIRTUAL_abstract_compiler__ToolContext__opt_compile_dir(val
* self
) {
282 val
* var
/* : OptionString */;
283 val
* var1
/* : OptionString */;
284 val
* var3
/* : OptionString */;
285 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (self) on <self:Object(ToolContext)> */
286 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:Object(ToolContext)> */
287 if (unlikely(var3
== NULL
)) {
288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
289 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 45);
299 /* method abstract_compiler#ToolContext#opt_hardening for (self: ToolContext): OptionBool */
300 val
* abstract_compiler__ToolContext__opt_hardening(val
* self
) {
301 val
* var
/* : OptionBool */;
302 val
* var1
/* : OptionBool */;
303 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:ToolContext> */
304 if (unlikely(var1
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
306 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 47);
313 /* method abstract_compiler#ToolContext#opt_hardening for (self: Object): OptionBool */
314 val
* VIRTUAL_abstract_compiler__ToolContext__opt_hardening(val
* self
) {
315 val
* var
/* : OptionBool */;
316 val
* var1
/* : OptionBool */;
317 val
* var3
/* : OptionBool */;
318 { /* Inline abstract_compiler#ToolContext#opt_hardening (self) on <self:Object(ToolContext)> */
319 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:Object(ToolContext)> */
320 if (unlikely(var3
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
322 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 47);
332 /* method abstract_compiler#ToolContext#opt_no_check_covariance for (self: ToolContext): OptionBool */
333 val
* abstract_compiler__ToolContext__opt_no_check_covariance(val
* self
) {
334 val
* var
/* : OptionBool */;
335 val
* var1
/* : OptionBool */;
336 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:ToolContext> */
337 if (unlikely(var1
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
339 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 49);
346 /* method abstract_compiler#ToolContext#opt_no_check_covariance for (self: Object): OptionBool */
347 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_covariance(val
* self
) {
348 val
* var
/* : OptionBool */;
349 val
* var1
/* : OptionBool */;
350 val
* var3
/* : OptionBool */;
351 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (self) on <self:Object(ToolContext)> */
352 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:Object(ToolContext)> */
353 if (unlikely(var3
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
355 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 49);
365 /* method abstract_compiler#ToolContext#opt_no_check_attr_isset for (self: ToolContext): OptionBool */
366 val
* abstract_compiler__ToolContext__opt_no_check_attr_isset(val
* self
) {
367 val
* var
/* : OptionBool */;
368 val
* var1
/* : OptionBool */;
369 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:ToolContext> */
370 if (unlikely(var1
== NULL
)) {
371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
372 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 51);
379 /* method abstract_compiler#ToolContext#opt_no_check_attr_isset for (self: Object): OptionBool */
380 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_attr_isset(val
* self
) {
381 val
* var
/* : OptionBool */;
382 val
* var1
/* : OptionBool */;
383 val
* var3
/* : OptionBool */;
384 { /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (self) on <self:Object(ToolContext)> */
385 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:Object(ToolContext)> */
386 if (unlikely(var3
== NULL
)) {
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
388 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 51);
398 /* method abstract_compiler#ToolContext#opt_no_check_assert for (self: ToolContext): OptionBool */
399 val
* abstract_compiler__ToolContext__opt_no_check_assert(val
* self
) {
400 val
* var
/* : OptionBool */;
401 val
* var1
/* : OptionBool */;
402 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:ToolContext> */
403 if (unlikely(var1
== NULL
)) {
404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
405 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 53);
412 /* method abstract_compiler#ToolContext#opt_no_check_assert for (self: Object): OptionBool */
413 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_assert(val
* self
) {
414 val
* var
/* : OptionBool */;
415 val
* var1
/* : OptionBool */;
416 val
* var3
/* : OptionBool */;
417 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (self) on <self:Object(ToolContext)> */
418 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:Object(ToolContext)> */
419 if (unlikely(var3
== NULL
)) {
420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
421 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 53);
431 /* method abstract_compiler#ToolContext#opt_no_check_autocast for (self: ToolContext): OptionBool */
432 val
* abstract_compiler__ToolContext__opt_no_check_autocast(val
* self
) {
433 val
* var
/* : OptionBool */;
434 val
* var1
/* : OptionBool */;
435 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:ToolContext> */
436 if (unlikely(var1
== NULL
)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
438 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 55);
445 /* method abstract_compiler#ToolContext#opt_no_check_autocast for (self: Object): OptionBool */
446 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_autocast(val
* self
) {
447 val
* var
/* : OptionBool */;
448 val
* var1
/* : OptionBool */;
449 val
* var3
/* : OptionBool */;
450 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (self) on <self:Object(ToolContext)> */
451 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:Object(ToolContext)> */
452 if (unlikely(var3
== NULL
)) {
453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
454 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 55);
464 /* method abstract_compiler#ToolContext#opt_no_check_null for (self: ToolContext): OptionBool */
465 val
* abstract_compiler__ToolContext__opt_no_check_null(val
* self
) {
466 val
* var
/* : OptionBool */;
467 val
* var1
/* : OptionBool */;
468 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_null
].val
; /* _opt_no_check_null on <self:ToolContext> */
469 if (unlikely(var1
== NULL
)) {
470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
471 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 57);
478 /* method abstract_compiler#ToolContext#opt_no_check_null for (self: Object): OptionBool */
479 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_null(val
* self
) {
480 val
* var
/* : OptionBool */;
481 val
* var1
/* : OptionBool */;
482 val
* var3
/* : OptionBool */;
483 { /* Inline abstract_compiler#ToolContext#opt_no_check_null (self) on <self:Object(ToolContext)> */
484 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_null
].val
; /* _opt_no_check_null on <self:Object(ToolContext)> */
485 if (unlikely(var3
== NULL
)) {
486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
487 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 57);
497 /* method abstract_compiler#ToolContext#opt_no_check_all for (self: ToolContext): OptionBool */
498 val
* abstract_compiler__ToolContext__opt_no_check_all(val
* self
) {
499 val
* var
/* : OptionBool */;
500 val
* var1
/* : OptionBool */;
501 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
502 if (unlikely(var1
== NULL
)) {
503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
504 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 59);
511 /* method abstract_compiler#ToolContext#opt_no_check_all for (self: Object): OptionBool */
512 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_all(val
* self
) {
513 val
* var
/* : OptionBool */;
514 val
* var1
/* : OptionBool */;
515 val
* var3
/* : OptionBool */;
516 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:Object(ToolContext)> */
517 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:Object(ToolContext)> */
518 if (unlikely(var3
== NULL
)) {
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
520 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 59);
530 /* method abstract_compiler#ToolContext#opt_typing_test_metrics for (self: ToolContext): OptionBool */
531 val
* abstract_compiler__ToolContext__opt_typing_test_metrics(val
* self
) {
532 val
* var
/* : OptionBool */;
533 val
* var1
/* : OptionBool */;
534 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:ToolContext> */
535 if (unlikely(var1
== NULL
)) {
536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
537 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
544 /* method abstract_compiler#ToolContext#opt_typing_test_metrics for (self: Object): OptionBool */
545 val
* VIRTUAL_abstract_compiler__ToolContext__opt_typing_test_metrics(val
* self
) {
546 val
* var
/* : OptionBool */;
547 val
* var1
/* : OptionBool */;
548 val
* var3
/* : OptionBool */;
549 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (self) on <self:Object(ToolContext)> */
550 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:Object(ToolContext)> */
551 if (unlikely(var3
== NULL
)) {
552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
553 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
563 /* method abstract_compiler#ToolContext#opt_invocation_metrics for (self: ToolContext): OptionBool */
564 val
* abstract_compiler__ToolContext__opt_invocation_metrics(val
* self
) {
565 val
* var
/* : OptionBool */;
566 val
* var1
/* : OptionBool */;
567 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:ToolContext> */
568 if (unlikely(var1
== NULL
)) {
569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
570 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 63);
577 /* method abstract_compiler#ToolContext#opt_invocation_metrics for (self: Object): OptionBool */
578 val
* VIRTUAL_abstract_compiler__ToolContext__opt_invocation_metrics(val
* self
) {
579 val
* var
/* : OptionBool */;
580 val
* var1
/* : OptionBool */;
581 val
* var3
/* : OptionBool */;
582 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (self) on <self:Object(ToolContext)> */
583 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:Object(ToolContext)> */
584 if (unlikely(var3
== NULL
)) {
585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
586 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 63);
596 /* method abstract_compiler#ToolContext#opt_isset_checks_metrics for (self: ToolContext): OptionBool */
597 val
* abstract_compiler__ToolContext__opt_isset_checks_metrics(val
* self
) {
598 val
* var
/* : OptionBool */;
599 val
* var1
/* : OptionBool */;
600 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:ToolContext> */
601 if (unlikely(var1
== NULL
)) {
602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
603 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 65);
610 /* method abstract_compiler#ToolContext#opt_isset_checks_metrics for (self: Object): OptionBool */
611 val
* VIRTUAL_abstract_compiler__ToolContext__opt_isset_checks_metrics(val
* self
) {
612 val
* var
/* : OptionBool */;
613 val
* var1
/* : OptionBool */;
614 val
* var3
/* : OptionBool */;
615 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (self) on <self:Object(ToolContext)> */
616 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:Object(ToolContext)> */
617 if (unlikely(var3
== NULL
)) {
618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
619 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 65);
629 /* method abstract_compiler#ToolContext#opt_stacktrace for (self: ToolContext): OptionString */
630 val
* abstract_compiler__ToolContext__opt_stacktrace(val
* self
) {
631 val
* var
/* : OptionString */;
632 val
* var1
/* : OptionString */;
633 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
634 if (unlikely(var1
== NULL
)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
636 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
643 /* method abstract_compiler#ToolContext#opt_stacktrace for (self: Object): OptionString */
644 val
* VIRTUAL_abstract_compiler__ToolContext__opt_stacktrace(val
* self
) {
645 val
* var
/* : OptionString */;
646 val
* var1
/* : OptionString */;
647 val
* var3
/* : OptionString */;
648 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:Object(ToolContext)> */
649 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:Object(ToolContext)> */
650 if (unlikely(var3
== NULL
)) {
651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
652 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
662 /* method abstract_compiler#ToolContext#opt_no_gcc_directive for (self: ToolContext): OptionArray */
663 val
* abstract_compiler__ToolContext__opt_no_gcc_directive(val
* self
) {
664 val
* var
/* : OptionArray */;
665 val
* var1
/* : OptionArray */;
666 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:ToolContext> */
667 if (unlikely(var1
== NULL
)) {
668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
669 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 69);
676 /* method abstract_compiler#ToolContext#opt_no_gcc_directive for (self: Object): OptionArray */
677 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_gcc_directive(val
* self
) {
678 val
* var
/* : OptionArray */;
679 val
* var1
/* : OptionArray */;
680 val
* var3
/* : OptionArray */;
681 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (self) on <self:Object(ToolContext)> */
682 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:Object(ToolContext)> */
683 if (unlikely(var3
== NULL
)) {
684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
685 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 69);
695 /* method abstract_compiler#ToolContext#opt_release for (self: ToolContext): OptionBool */
696 val
* abstract_compiler__ToolContext__opt_release(val
* self
) {
697 val
* var
/* : OptionBool */;
698 val
* var1
/* : OptionBool */;
699 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:ToolContext> */
700 if (unlikely(var1
== NULL
)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
702 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 71);
709 /* method abstract_compiler#ToolContext#opt_release for (self: Object): OptionBool */
710 val
* VIRTUAL_abstract_compiler__ToolContext__opt_release(val
* self
) {
711 val
* var
/* : OptionBool */;
712 val
* var1
/* : OptionBool */;
713 val
* var3
/* : OptionBool */;
714 { /* Inline abstract_compiler#ToolContext#opt_release (self) on <self:Object(ToolContext)> */
715 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:Object(ToolContext)> */
716 if (unlikely(var3
== NULL
)) {
717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
718 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 71);
728 /* method abstract_compiler#ToolContext#init for (self: ToolContext) */
729 void abstract_compiler__ToolContext__init(val
* self
) {
730 val
* var
/* : OptionContext */;
731 val
* var2
/* : OptionContext */;
732 val
* var3
/* : OptionString */;
733 val
* var5
/* : OptionString */;
734 val
* var6
/* : OptionString */;
735 val
* var8
/* : OptionString */;
736 val
* var9
/* : OptionBool */;
737 val
* var11
/* : OptionBool */;
738 val
* var12
/* : OptionBool */;
739 val
* var14
/* : OptionBool */;
740 val
* var15
/* : OptionString */;
741 val
* var17
/* : OptionString */;
742 val
* var18
/* : OptionString */;
743 val
* var20
/* : OptionString */;
744 val
* var21
/* : OptionBool */;
745 val
* var23
/* : OptionBool */;
746 val
* var24
/* : Array[Option] */;
747 long var25
/* : Int */;
748 val
* var26
/* : NativeArray[Option] */;
749 val
* var27
/* : OptionContext */;
750 val
* var29
/* : OptionContext */;
751 val
* var30
/* : OptionBool */;
752 val
* var32
/* : OptionBool */;
753 val
* var33
/* : OptionBool */;
754 val
* var35
/* : OptionBool */;
755 val
* var36
/* : OptionBool */;
756 val
* var38
/* : OptionBool */;
757 val
* var39
/* : OptionBool */;
758 val
* var41
/* : OptionBool */;
759 val
* var42
/* : OptionBool */;
760 val
* var44
/* : OptionBool */;
761 val
* var45
/* : OptionBool */;
762 val
* var47
/* : OptionBool */;
763 val
* var48
/* : Array[Option] */;
764 long var49
/* : Int */;
765 val
* var50
/* : NativeArray[Option] */;
766 val
* var51
/* : OptionContext */;
767 val
* var53
/* : OptionContext */;
768 val
* var54
/* : OptionBool */;
769 val
* var56
/* : OptionBool */;
770 val
* var57
/* : OptionBool */;
771 val
* var59
/* : OptionBool */;
772 val
* var60
/* : OptionBool */;
773 val
* var62
/* : OptionBool */;
774 val
* var63
/* : Array[Option] */;
775 long var64
/* : Int */;
776 val
* var65
/* : NativeArray[Option] */;
777 val
* var66
/* : OptionContext */;
778 val
* var68
/* : OptionContext */;
779 val
* var69
/* : OptionString */;
780 val
* var71
/* : OptionString */;
781 val
* var72
/* : Array[Option] */;
782 long var73
/* : Int */;
783 val
* var74
/* : NativeArray[Option] */;
784 val
* var75
/* : OptionContext */;
785 val
* var77
/* : OptionContext */;
786 val
* var78
/* : OptionArray */;
787 val
* var80
/* : OptionArray */;
788 val
* var81
/* : Array[Option] */;
789 long var82
/* : Int */;
790 val
* var83
/* : NativeArray[Option] */;
791 val
* var84
/* : OptionContext */;
792 val
* var86
/* : OptionContext */;
793 val
* var87
/* : OptionBool */;
794 val
* var89
/* : OptionBool */;
795 val
* var90
/* : Array[Option] */;
796 long var91
/* : Int */;
797 val
* var92
/* : NativeArray[Option] */;
798 val
* var93
/* : OptionContext */;
799 val
* var95
/* : OptionContext */;
800 val
* var96
/* : OptionInt */;
801 val
* var98
/* : OptionInt */;
802 val
* var99
/* : OptionBool */;
803 val
* var101
/* : OptionBool */;
804 val
* var102
/* : Array[Option] */;
805 long var103
/* : Int */;
806 val
* var104
/* : NativeArray[Option] */;
808 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
811 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
812 var2
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
813 if (unlikely(var2
== NULL
)) {
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
815 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
823 { /* Inline abstract_compiler#ToolContext#opt_output (self) on <self:ToolContext> */
824 var5
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:ToolContext> */
825 if (unlikely(var5
== NULL
)) {
826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
827 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 29);
835 { /* Inline abstract_compiler#ToolContext#opt_dir (self) on <self:ToolContext> */
836 var8
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:ToolContext> */
837 if (unlikely(var8
== NULL
)) {
838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
839 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 31);
847 { /* Inline abstract_compiler#ToolContext#opt_no_cc (self) on <self:ToolContext> */
848 var11
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <self:ToolContext> */
849 if (unlikely(var11
== NULL
)) {
850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
851 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 33);
859 { /* Inline abstract_compiler#ToolContext#opt_no_main (self) on <self:ToolContext> */
860 var14
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_main
].val
; /* _opt_no_main on <self:ToolContext> */
861 if (unlikely(var14
== NULL
)) {
862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_main");
863 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 35);
871 { /* Inline abstract_compiler#ToolContext#opt_make_flags (self) on <self:ToolContext> */
872 var17
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <self:ToolContext> */
873 if (unlikely(var17
== NULL
)) {
874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
875 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 39);
883 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (self) on <self:ToolContext> */
884 var20
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:ToolContext> */
885 if (unlikely(var20
== NULL
)) {
886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
887 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 45);
895 { /* Inline abstract_compiler#ToolContext#opt_hardening (self) on <self:ToolContext> */
896 var23
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:ToolContext> */
897 if (unlikely(var23
== NULL
)) {
898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
899 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 47);
906 var24
= NEW_array__Array(&type_array__Arrayopts__Option
);
907 { /* var24 = array_instance Array[Option] */
909 var26
= NEW_array__NativeArray(var25
, &type_array__NativeArrayopts__Option
);
910 ((struct instance_array__NativeArray
*)var26
)->values
[0] = (val
*) var3
;
911 ((struct instance_array__NativeArray
*)var26
)->values
[1] = (val
*) var6
;
912 ((struct instance_array__NativeArray
*)var26
)->values
[2] = (val
*) var9
;
913 ((struct instance_array__NativeArray
*)var26
)->values
[3] = (val
*) var12
;
914 ((struct instance_array__NativeArray
*)var26
)->values
[4] = (val
*) var15
;
915 ((struct instance_array__NativeArray
*)var26
)->values
[5] = (val
*) var18
;
916 ((struct instance_array__NativeArray
*)var26
)->values
[6] = (val
*) var21
;
918 ((void (*)(val
*, val
*, long))(var24
->class->vft
[COLOR_array__Array__with_native
]))(var24
, var26
, var25
) /* with_native on <var24:Array[Option]>*/;
922 opts__OptionContext__add_option(var
, var24
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
925 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
926 var29
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
927 if (unlikely(var29
== NULL
)) {
928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
929 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
937 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (self) on <self:ToolContext> */
938 var32
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:ToolContext> */
939 if (unlikely(var32
== NULL
)) {
940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
941 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 49);
949 { /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (self) on <self:ToolContext> */
950 var35
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:ToolContext> */
951 if (unlikely(var35
== NULL
)) {
952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
953 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 51);
961 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (self) on <self:ToolContext> */
962 var38
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:ToolContext> */
963 if (unlikely(var38
== NULL
)) {
964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
965 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 53);
973 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (self) on <self:ToolContext> */
974 var41
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:ToolContext> */
975 if (unlikely(var41
== NULL
)) {
976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
977 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 55);
985 { /* Inline abstract_compiler#ToolContext#opt_no_check_null (self) on <self:ToolContext> */
986 var44
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_null
].val
; /* _opt_no_check_null on <self:ToolContext> */
987 if (unlikely(var44
== NULL
)) {
988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
989 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 57);
997 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:ToolContext> */
998 var47
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
999 if (unlikely(var47
== NULL
)) {
1000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
1001 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 59);
1005 RET_LABEL46
:(void)0;
1008 var48
= NEW_array__Array(&type_array__Arrayopts__Option
);
1009 { /* var48 = array_instance Array[Option] */
1011 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArrayopts__Option
);
1012 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var30
;
1013 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var33
;
1014 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var36
;
1015 ((struct instance_array__NativeArray
*)var50
)->values
[3] = (val
*) var39
;
1016 ((struct instance_array__NativeArray
*)var50
)->values
[4] = (val
*) var42
;
1017 ((struct instance_array__NativeArray
*)var50
)->values
[5] = (val
*) var45
;
1019 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Option]>*/;
1023 opts__OptionContext__add_option(var27
, var48
); /* Direct call opts#OptionContext#add_option on <var27:OptionContext>*/
1026 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1027 var53
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1028 if (unlikely(var53
== NULL
)) {
1029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1030 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
1034 RET_LABEL52
:(void)0;
1038 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (self) on <self:ToolContext> */
1039 var56
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:ToolContext> */
1040 if (unlikely(var56
== NULL
)) {
1041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1042 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
1046 RET_LABEL55
:(void)0;
1050 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (self) on <self:ToolContext> */
1051 var59
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:ToolContext> */
1052 if (unlikely(var59
== NULL
)) {
1053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
1054 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 63);
1058 RET_LABEL58
:(void)0;
1062 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (self) on <self:ToolContext> */
1063 var62
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:ToolContext> */
1064 if (unlikely(var62
== NULL
)) {
1065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
1066 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 65);
1070 RET_LABEL61
:(void)0;
1073 var63
= NEW_array__Array(&type_array__Arrayopts__Option
);
1074 { /* var63 = array_instance Array[Option] */
1076 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArrayopts__Option
);
1077 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
1078 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1079 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var60
;
1081 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Option]>*/;
1085 opts__OptionContext__add_option(var51
, var63
); /* Direct call opts#OptionContext#add_option on <var51:OptionContext>*/
1088 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1089 var68
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1090 if (unlikely(var68
== NULL
)) {
1091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1092 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
1096 RET_LABEL67
:(void)0;
1100 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1101 var71
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1102 if (unlikely(var71
== NULL
)) {
1103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1104 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
1108 RET_LABEL70
:(void)0;
1111 var72
= NEW_array__Array(&type_array__Arrayopts__Option
);
1112 { /* var72 = array_instance Array[Option] */
1114 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArrayopts__Option
);
1115 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var69
;
1117 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Option]>*/;
1121 opts__OptionContext__add_option(var66
, var72
); /* Direct call opts#OptionContext#add_option on <var66:OptionContext>*/
1124 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1125 var77
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1126 if (unlikely(var77
== NULL
)) {
1127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1128 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
1132 RET_LABEL76
:(void)0;
1136 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (self) on <self:ToolContext> */
1137 var80
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:ToolContext> */
1138 if (unlikely(var80
== NULL
)) {
1139 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
1140 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 69);
1144 RET_LABEL79
:(void)0;
1147 var81
= NEW_array__Array(&type_array__Arrayopts__Option
);
1148 { /* var81 = array_instance Array[Option] */
1150 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArrayopts__Option
);
1151 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var78
;
1153 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Option]>*/;
1157 opts__OptionContext__add_option(var75
, var81
); /* Direct call opts#OptionContext#add_option on <var75:OptionContext>*/
1160 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1161 var86
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1162 if (unlikely(var86
== NULL
)) {
1163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1164 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
1168 RET_LABEL85
:(void)0;
1172 { /* Inline abstract_compiler#ToolContext#opt_release (self) on <self:ToolContext> */
1173 var89
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:ToolContext> */
1174 if (unlikely(var89
== NULL
)) {
1175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
1176 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 71);
1180 RET_LABEL88
:(void)0;
1183 var90
= NEW_array__Array(&type_array__Arrayopts__Option
);
1184 { /* var90 = array_instance Array[Option] */
1186 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArrayopts__Option
);
1187 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var87
;
1189 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Option]>*/;
1193 opts__OptionContext__add_option(var84
, var90
); /* Direct call opts#OptionContext#add_option on <var84:OptionContext>*/
1196 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1197 var95
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1198 if (unlikely(var95
== NULL
)) {
1199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1200 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
1204 RET_LABEL94
:(void)0;
1208 { /* Inline abstract_compiler#ToolContext#opt_max_c_lines (self) on <self:ToolContext> */
1209 var98
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_max_c_lines
].val
; /* _opt_max_c_lines on <self:ToolContext> */
1210 if (unlikely(var98
== NULL
)) {
1211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_max_c_lines");
1212 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 41);
1216 RET_LABEL97
:(void)0;
1220 { /* Inline abstract_compiler#ToolContext#opt_group_c_files (self) on <self:ToolContext> */
1221 var101
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_group_c_files
].val
; /* _opt_group_c_files on <self:ToolContext> */
1222 if (unlikely(var101
== NULL
)) {
1223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_group_c_files");
1224 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 43);
1228 RET_LABEL100
:(void)0;
1231 var102
= NEW_array__Array(&type_array__Arrayopts__Option
);
1232 { /* var102 = array_instance Array[Option] */
1234 var104
= NEW_array__NativeArray(var103
, &type_array__NativeArrayopts__Option
);
1235 ((struct instance_array__NativeArray
*)var104
)->values
[0] = (val
*) var96
;
1236 ((struct instance_array__NativeArray
*)var104
)->values
[1] = (val
*) var99
;
1238 ((void (*)(val
*, val
*, long))(var102
->class->vft
[COLOR_array__Array__with_native
]))(var102
, var104
, var103
) /* with_native on <var102:Array[Option]>*/;
1242 opts__OptionContext__add_option(var93
, var102
); /* Direct call opts#OptionContext#add_option on <var93:OptionContext>*/
1246 /* method abstract_compiler#ToolContext#init for (self: Object) */
1247 void VIRTUAL_abstract_compiler__ToolContext__init(val
* self
) {
1248 abstract_compiler__ToolContext__init(self
); /* Direct call abstract_compiler#ToolContext#init on <self:Object(ToolContext)>*/
1251 /* method abstract_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
1252 void abstract_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
1253 val
* var_args
/* var args: Sequence[String] */;
1254 val
* var
/* : OptionString */;
1255 val
* var2
/* : OptionString */;
1256 val
* var3
/* : nullable Object */;
1257 val
* var5
/* : nullable Object */;
1258 val
* var_st
/* var st: nullable String */;
1259 short int var6
/* : Bool */;
1260 short int var7
/* : Bool */;
1261 static val
* varonce
;
1262 val
* var8
/* : String */;
1263 char* var9
/* : NativeString */;
1264 long var10
/* : Int */;
1265 val
* var11
/* : FlatString */;
1266 short int var12
/* : Bool */;
1267 short int var13
/* : Bool */;
1268 short int var_
/* var : Bool */;
1269 static val
* varonce14
;
1270 val
* var15
/* : String */;
1271 char* var16
/* : NativeString */;
1272 long var17
/* : Int */;
1273 val
* var18
/* : FlatString */;
1274 short int var19
/* : Bool */;
1275 short int var20
/* : Bool */;
1276 short int var_21
/* var : Bool */;
1277 static val
* varonce22
;
1278 val
* var23
/* : String */;
1279 char* var24
/* : NativeString */;
1280 long var25
/* : Int */;
1281 val
* var26
/* : FlatString */;
1282 short int var27
/* : Bool */;
1283 short int var28
/* : Bool */;
1284 short int var29
/* : Bool */;
1285 static val
* varonce30
;
1286 val
* var31
/* : String */;
1287 char* var32
/* : NativeString */;
1288 long var33
/* : Int */;
1289 val
* var34
/* : FlatString */;
1290 short int var35
/* : Bool */;
1291 short int var36
/* : Bool */;
1292 short int var_37
/* var : Bool */;
1293 val
* var38
/* : null */;
1294 short int var39
/* : Bool */;
1295 short int var40
/* : Bool */;
1296 val
* var41
/* : OptionString */;
1297 val
* var43
/* : OptionString */;
1298 static val
* varonce44
;
1299 val
* var45
/* : String */;
1300 char* var46
/* : NativeString */;
1301 long var47
/* : Int */;
1302 val
* var48
/* : FlatString */;
1303 short int var50
/* : Bool */;
1306 const struct type
* type_struct
;
1307 const char* var_class_name
;
1308 static val
* varonce51
;
1309 val
* var52
/* : String */;
1310 char* var53
/* : NativeString */;
1311 long var54
/* : Int */;
1312 val
* var55
/* : FlatString */;
1313 static val
* varonce56
;
1314 val
* var57
/* : String */;
1315 char* var58
/* : NativeString */;
1316 long var59
/* : Int */;
1317 val
* var60
/* : FlatString */;
1318 val
* var61
/* : Array[Object] */;
1319 long var62
/* : Int */;
1320 val
* var63
/* : NativeArray[Object] */;
1321 val
* var64
/* : String */;
1322 long var65
/* : Int */;
1323 short int var67
/* : Bool */;
1324 val
* var68
/* : OptionString */;
1325 val
* var70
/* : OptionString */;
1326 val
* var71
/* : nullable Object */;
1327 val
* var73
/* : nullable Object */;
1328 val
* var74
/* : null */;
1329 short int var75
/* : Bool */;
1330 short int var76
/* : Bool */;
1331 val
* var_other
/* var other: nullable Object */;
1332 short int var78
/* : Bool */;
1333 short int var79
/* : Bool */;
1334 short int var80
/* : Bool */;
1335 short int var_81
/* var : Bool */;
1336 val
* var82
/* : OptionString */;
1337 val
* var84
/* : OptionString */;
1338 val
* var85
/* : nullable Object */;
1339 val
* var87
/* : nullable Object */;
1340 val
* var88
/* : null */;
1341 short int var89
/* : Bool */;
1342 short int var90
/* : Bool */;
1343 short int var92
/* : Bool */;
1344 short int var93
/* : Bool */;
1345 short int var94
/* : Bool */;
1346 static val
* varonce95
;
1347 val
* var96
/* : String */;
1348 char* var97
/* : NativeString */;
1349 long var98
/* : Int */;
1350 val
* var99
/* : FlatString */;
1351 long var100
/* : Int */;
1352 val
* var102
/* : OptionBool */;
1353 val
* var104
/* : OptionBool */;
1354 val
* var105
/* : nullable Object */;
1355 val
* var107
/* : nullable Object */;
1356 short int var108
/* : Bool */;
1357 val
* var109
/* : OptionBool */;
1358 val
* var111
/* : OptionBool */;
1359 short int var112
/* : Bool */;
1360 short int var114
/* : Bool */;
1363 const struct type
* type_struct117
;
1364 const char* var_class_name118
;
1365 val
* var119
/* : nullable Object */;
1366 val
* var120
/* : OptionBool */;
1367 val
* var122
/* : OptionBool */;
1368 short int var123
/* : Bool */;
1369 short int var125
/* : Bool */;
1372 const struct type
* type_struct128
;
1373 const char* var_class_name129
;
1374 val
* var130
/* : nullable Object */;
1375 val
* var131
/* : OptionBool */;
1376 val
* var133
/* : OptionBool */;
1377 short int var134
/* : Bool */;
1378 short int var136
/* : Bool */;
1381 const struct type
* type_struct139
;
1382 const char* var_class_name140
;
1383 val
* var141
/* : nullable Object */;
1384 val
* var142
/* : OptionBool */;
1385 val
* var144
/* : OptionBool */;
1386 short int var145
/* : Bool */;
1387 short int var147
/* : Bool */;
1390 const struct type
* type_struct150
;
1391 const char* var_class_name151
;
1392 val
* var152
/* : nullable Object */;
1393 val
* var153
/* : OptionBool */;
1394 val
* var155
/* : OptionBool */;
1395 short int var156
/* : Bool */;
1396 short int var158
/* : Bool */;
1399 const struct type
* type_struct161
;
1400 const char* var_class_name162
;
1401 val
* var163
/* : nullable Object */;
1404 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ToolContext__process_options
]))(self
, p0
) /* process_options on <self:ToolContext>*/;
1407 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1408 var2
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1409 if (unlikely(var2
== NULL
)) {
1410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1411 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
1419 { /* Inline opts#Option#value (var) on <var:OptionString> */
1420 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionString> */
1431 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1435 if (var_st
== NULL
) {
1436 var12
= 0; /* <var8:String> cannot be null */
1438 var13
= string__FlatString___61d_61d(var_st
, var8
);
1448 var16
= "libunwind";
1450 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1454 if (var_st
== NULL
) {
1455 var19
= 0; /* <var15:String> cannot be null */
1457 var20
= string__FlatString___61d_61d(var_st
, var15
);
1471 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1475 if (var_st
== NULL
) {
1476 var27
= 0; /* <var23:String> cannot be null */
1478 var28
= string__FlatString___61d_61d(var_st
, var23
);
1490 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1494 if (var_st
== NULL
) {
1495 var35
= 0; /* <var31:String> cannot be null */
1497 var36
= string__FlatString___61d_61d(var_st
, var31
);
1505 if (var_st
== NULL
) {
1506 var39
= 1; /* is null */
1508 var39
= 0; /* arg is null but recv is not */
1511 var40
= string__FlatString___61d_61d(var_st
, var38
);
1518 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1519 var43
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1520 if (unlikely(var43
== NULL
)) {
1521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1522 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
1526 RET_LABEL42
:(void)0;
1534 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1539 { /* Inline opts#Option#value= (var41,var45) on <var41:OptionString> */
1540 /* Covariant cast for argument 0 (value) <var45:String> isa VALUE */
1541 /* <var45:String> isa VALUE */
1542 type_struct
= var41
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1543 cltype
= type_struct
->color
;
1544 idtype
= type_struct
->id
;
1545 if(cltype
>= var45
->type
->table_size
) {
1548 var50
= var45
->type
->type_table
[cltype
] == idtype
;
1550 if (unlikely(!var50
)) {
1551 var_class_name
= var45
== NULL ?
"null" : var45
->type
->name
;
1552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
1553 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1556 var41
->attrs
[COLOR_opts__Option___value
].val
= var45
; /* _value on <var41:OptionString> */
1557 RET_LABEL49
:(void)0;
1564 var53
= "Error: unknown value `";
1566 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1573 var58
= "` for --stacktrace. Use `none`, `libunwind`, `nitstack` or `auto`.";
1575 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1579 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
1580 { /* var61 = array_instance Array[Object] */
1582 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
1583 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var52
;
1584 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var_st
;
1585 ((struct instance_array__NativeArray
*)var63
)->values
[2] = (val
*) var57
;
1587 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
1591 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
1594 file__Object__print(self
, var64
); /* Direct call file#Object#print on <self:ToolContext>*/
1598 { /* Inline kernel#Object#exit (self,var65) on <self:ToolContext> */
1600 RET_LABEL66
:(void)0;
1606 { /* Inline abstract_compiler#ToolContext#opt_output (self) on <self:ToolContext> */
1607 var70
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:ToolContext> */
1608 if (unlikely(var70
== NULL
)) {
1609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
1610 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 29);
1614 RET_LABEL69
:(void)0;
1618 { /* Inline opts#Option#value (var68) on <var68:OptionString> */
1619 var73
= var68
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var68:OptionString> */
1621 RET_LABEL72
:(void)0;
1625 if (var71
== NULL
) {
1626 var75
= 0; /* is null */
1628 var75
= 1; /* arg is null and recv is not */
1631 { /* Inline kernel#Object#!= (var71,var74) on <var71:nullable Object(nullable String)> */
1634 var79
= ((short int (*)(val
*, val
*))(var71
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var71
, var_other
) /* == on <var71:nullable String(String)>*/;
1640 RET_LABEL77
:(void)0;
1647 { /* Inline abstract_compiler#ToolContext#opt_dir (self) on <self:ToolContext> */
1648 var84
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:ToolContext> */
1649 if (unlikely(var84
== NULL
)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
1651 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 31);
1655 RET_LABEL83
:(void)0;
1659 { /* Inline opts#Option#value (var82) on <var82:OptionString> */
1660 var87
= var82
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var82:OptionString> */
1662 RET_LABEL86
:(void)0;
1666 if (var85
== NULL
) {
1667 var89
= 0; /* is null */
1669 var89
= 1; /* arg is null and recv is not */
1672 { /* Inline kernel#Object#!= (var85,var88) on <var85:nullable Object(nullable String)> */
1675 var93
= ((short int (*)(val
*, val
*))(var85
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var85
, var_other
) /* == on <var85:nullable String(String)>*/;
1681 RET_LABEL91
:(void)0;
1693 var97
= "Error: cannot use both --dir and --output";
1695 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1700 file__Object__print(self
, var96
); /* Direct call file#Object#print on <self:ToolContext>*/
1704 { /* Inline kernel#Object#exit (self,var100) on <self:ToolContext> */
1706 RET_LABEL101
:(void)0;
1712 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:ToolContext> */
1713 var104
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
1714 if (unlikely(var104
== NULL
)) {
1715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
1716 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 59);
1720 RET_LABEL103
:(void)0;
1724 { /* Inline opts#Option#value (var102) on <var102:OptionBool> */
1725 var107
= var102
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var102:OptionBool> */
1727 RET_LABEL106
:(void)0;
1730 var108
= ((struct instance_kernel__Bool
*)var105
)->value
; /* autounbox from nullable Object to Bool */;
1733 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (self) on <self:ToolContext> */
1734 var111
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:ToolContext> */
1735 if (unlikely(var111
== NULL
)) {
1736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
1737 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 49);
1741 RET_LABEL110
:(void)0;
1746 { /* Inline opts#Option#value= (var109,var112) on <var109:OptionBool> */
1747 /* Covariant cast for argument 0 (value) <var112:Bool> isa VALUE */
1748 /* <var112:Bool> isa VALUE */
1749 type_struct117
= var109
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1750 cltype115
= type_struct117
->color
;
1751 idtype116
= type_struct117
->id
;
1752 if(cltype115
>= (&type_kernel__Bool
)->table_size
) {
1755 var114
= (&type_kernel__Bool
)->type_table
[cltype115
] == idtype116
;
1757 if (unlikely(!var114
)) {
1758 var_class_name118
= type_kernel__Bool
.name
;
1759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name118
);
1760 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1763 var119
= BOX_kernel__Bool(var112
); /* autobox from Bool to nullable Object */
1764 var109
->attrs
[COLOR_opts__Option___value
].val
= var119
; /* _value on <var109:OptionBool> */
1765 RET_LABEL113
:(void)0;
1769 { /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (self) on <self:ToolContext> */
1770 var122
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:ToolContext> */
1771 if (unlikely(var122
== NULL
)) {
1772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
1773 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 51);
1777 RET_LABEL121
:(void)0;
1782 { /* Inline opts#Option#value= (var120,var123) on <var120:OptionBool> */
1783 /* Covariant cast for argument 0 (value) <var123:Bool> isa VALUE */
1784 /* <var123:Bool> isa VALUE */
1785 type_struct128
= var120
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1786 cltype126
= type_struct128
->color
;
1787 idtype127
= type_struct128
->id
;
1788 if(cltype126
>= (&type_kernel__Bool
)->table_size
) {
1791 var125
= (&type_kernel__Bool
)->type_table
[cltype126
] == idtype127
;
1793 if (unlikely(!var125
)) {
1794 var_class_name129
= type_kernel__Bool
.name
;
1795 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name129
);
1796 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1799 var130
= BOX_kernel__Bool(var123
); /* autobox from Bool to nullable Object */
1800 var120
->attrs
[COLOR_opts__Option___value
].val
= var130
; /* _value on <var120:OptionBool> */
1801 RET_LABEL124
:(void)0;
1805 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (self) on <self:ToolContext> */
1806 var133
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:ToolContext> */
1807 if (unlikely(var133
== NULL
)) {
1808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
1809 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 53);
1813 RET_LABEL132
:(void)0;
1818 { /* Inline opts#Option#value= (var131,var134) on <var131:OptionBool> */
1819 /* Covariant cast for argument 0 (value) <var134:Bool> isa VALUE */
1820 /* <var134:Bool> isa VALUE */
1821 type_struct139
= var131
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1822 cltype137
= type_struct139
->color
;
1823 idtype138
= type_struct139
->id
;
1824 if(cltype137
>= (&type_kernel__Bool
)->table_size
) {
1827 var136
= (&type_kernel__Bool
)->type_table
[cltype137
] == idtype138
;
1829 if (unlikely(!var136
)) {
1830 var_class_name140
= type_kernel__Bool
.name
;
1831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name140
);
1832 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1835 var141
= BOX_kernel__Bool(var134
); /* autobox from Bool to nullable Object */
1836 var131
->attrs
[COLOR_opts__Option___value
].val
= var141
; /* _value on <var131:OptionBool> */
1837 RET_LABEL135
:(void)0;
1841 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (self) on <self:ToolContext> */
1842 var144
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:ToolContext> */
1843 if (unlikely(var144
== NULL
)) {
1844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
1845 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 55);
1849 RET_LABEL143
:(void)0;
1854 { /* Inline opts#Option#value= (var142,var145) on <var142:OptionBool> */
1855 /* Covariant cast for argument 0 (value) <var145:Bool> isa VALUE */
1856 /* <var145:Bool> isa VALUE */
1857 type_struct150
= var142
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1858 cltype148
= type_struct150
->color
;
1859 idtype149
= type_struct150
->id
;
1860 if(cltype148
>= (&type_kernel__Bool
)->table_size
) {
1863 var147
= (&type_kernel__Bool
)->type_table
[cltype148
] == idtype149
;
1865 if (unlikely(!var147
)) {
1866 var_class_name151
= type_kernel__Bool
.name
;
1867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name151
);
1868 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1871 var152
= BOX_kernel__Bool(var145
); /* autobox from Bool to nullable Object */
1872 var142
->attrs
[COLOR_opts__Option___value
].val
= var152
; /* _value on <var142:OptionBool> */
1873 RET_LABEL146
:(void)0;
1877 { /* Inline abstract_compiler#ToolContext#opt_no_check_null (self) on <self:ToolContext> */
1878 var155
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_null
].val
; /* _opt_no_check_null on <self:ToolContext> */
1879 if (unlikely(var155
== NULL
)) {
1880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
1881 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 57);
1885 RET_LABEL154
:(void)0;
1890 { /* Inline opts#Option#value= (var153,var156) on <var153:OptionBool> */
1891 /* Covariant cast for argument 0 (value) <var156:Bool> isa VALUE */
1892 /* <var156:Bool> isa VALUE */
1893 type_struct161
= var153
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1894 cltype159
= type_struct161
->color
;
1895 idtype160
= type_struct161
->id
;
1896 if(cltype159
>= (&type_kernel__Bool
)->table_size
) {
1899 var158
= (&type_kernel__Bool
)->type_table
[cltype159
] == idtype160
;
1901 if (unlikely(!var158
)) {
1902 var_class_name162
= type_kernel__Bool
.name
;
1903 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name162
);
1904 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
1907 var163
= BOX_kernel__Bool(var156
); /* autobox from Bool to nullable Object */
1908 var153
->attrs
[COLOR_opts__Option___value
].val
= var163
; /* _value on <var153:OptionBool> */
1909 RET_LABEL157
:(void)0;
1916 /* method abstract_compiler#ToolContext#process_options for (self: Object, Sequence[String]) */
1917 void VIRTUAL_abstract_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
1918 abstract_compiler__ToolContext__process_options(self
, p0
); /* Direct call abstract_compiler#ToolContext#process_options on <self:Object(ToolContext)>*/
1921 /* method abstract_compiler#ModelBuilder#compile_dir for (self: ModelBuilder): String */
1922 val
* abstract_compiler__ModelBuilder__compile_dir(val
* self
) {
1923 val
* var
/* : String */;
1924 val
* var1
/* : String */;
1925 var1
= self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <self:ModelBuilder> */
1926 if (unlikely(var1
== NULL
)) {
1927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
1928 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 117);
1935 /* method abstract_compiler#ModelBuilder#compile_dir for (self: Object): String */
1936 val
* VIRTUAL_abstract_compiler__ModelBuilder__compile_dir(val
* self
) {
1937 val
* var
/* : String */;
1938 val
* var1
/* : String */;
1939 val
* var3
/* : String */;
1940 { /* Inline abstract_compiler#ModelBuilder#compile_dir (self) on <self:Object(ModelBuilder)> */
1941 var3
= self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <self:Object(ModelBuilder)> */
1942 if (unlikely(var3
== NULL
)) {
1943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
1944 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 117);
1954 /* method abstract_compiler#ModelBuilder#compile_dir= for (self: ModelBuilder, String) */
1955 void abstract_compiler__ModelBuilder__compile_dir_61d(val
* self
, val
* p0
) {
1956 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= p0
; /* _compile_dir on <self:ModelBuilder> */
1959 /* method abstract_compiler#ModelBuilder#compile_dir= for (self: Object, String) */
1960 void VIRTUAL_abstract_compiler__ModelBuilder__compile_dir_61d(val
* self
, val
* p0
) {
1961 { /* Inline abstract_compiler#ModelBuilder#compile_dir= (self,p0) on <self:Object(ModelBuilder)> */
1962 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= p0
; /* _compile_dir on <self:Object(ModelBuilder)> */
1967 /* method abstract_compiler#ModelBuilder#write_and_make for (self: ModelBuilder, AbstractCompiler) */
1968 void abstract_compiler__ModelBuilder__write_and_make(val
* self
, val
* p0
) {
1969 val
* var_compiler
/* var compiler: AbstractCompiler */;
1970 val
* var
/* : MModule */;
1971 val
* var2
/* : MModule */;
1972 val
* var3
/* : nullable Platform */;
1973 val
* var_platform
/* var platform: nullable Platform */;
1974 val
* var4
/* : null */;
1975 short int var5
/* : Bool */;
1976 short int var6
/* : Bool */;
1977 val
* var7
/* : MakefileToolchain */;
1978 val
* var8
/* : ToolContext */;
1979 val
* var10
/* : ToolContext */;
1980 val
* var_toolchain
/* var toolchain: nullable Object */;
1981 val
* var11
/* : ToolContext */;
1982 val
* var13
/* : ToolContext */;
1983 val
* var14
/* : Toolchain */;
1984 val
* var15
/* : String */;
1987 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
1988 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
1989 if (unlikely(var2
== NULL
)) {
1990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1991 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1999 var3
= platform__MModule__target_platform(var
);
2001 var_platform
= var3
;
2003 if (var_platform
== NULL
) {
2004 var5
= 1; /* is null */
2006 var5
= 0; /* arg is null but recv is not */
2009 var6
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var4
) /* == on <var_platform:nullable Platform>*/;
2013 var7
= NEW_abstract_compiler__MakefileToolchain(&type_abstract_compiler__MakefileToolchain
);
2015 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2016 var10
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2017 if (unlikely(var10
== NULL
)) {
2018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2019 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2027 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_compiler__Toolchain__toolcontext_61d
]))(var7
, var8
) /* toolcontext= on <var7:MakefileToolchain>*/;
2030 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:MakefileToolchain>*/;
2032 var_toolchain
= var7
;
2035 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2036 var13
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2037 if (unlikely(var13
== NULL
)) {
2038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2039 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2043 RET_LABEL12
:(void)0;
2047 var14
= ((val
* (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_abstract_compiler__Platform__toolchain
]))(var_platform
, var11
) /* toolchain on <var_platform:nullable Platform(Platform)>*/;
2049 var_toolchain
= var14
;
2052 var15
= abstract_compiler__Toolchain__compile_dir(var_toolchain
);
2055 { /* Inline abstract_compiler#ModelBuilder#compile_dir= (self,var15) on <self:ModelBuilder> */
2056 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= var15
; /* _compile_dir on <self:ModelBuilder> */
2057 RET_LABEL16
:(void)0;
2061 abstract_compiler__MakefileToolchain__write_and_make(var_toolchain
, var_compiler
); /* Direct call abstract_compiler#MakefileToolchain#write_and_make on <var_toolchain:nullable Object(Toolchain)>*/
2065 /* method abstract_compiler#ModelBuilder#write_and_make for (self: Object, AbstractCompiler) */
2066 void VIRTUAL_abstract_compiler__ModelBuilder__write_and_make(val
* self
, val
* p0
) {
2067 abstract_compiler__ModelBuilder__write_and_make(self
, p0
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:Object(ModelBuilder)>*/
2070 /* method abstract_compiler#Platform#toolchain for (self: Platform, ToolContext): Toolchain */
2071 val
* abstract_compiler__Platform__toolchain(val
* self
, val
* p0
) {
2072 val
* var
/* : Toolchain */;
2073 const char* var_class_name
;
2074 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
2075 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "toolchain", var_class_name
);
2076 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 136);
2081 /* method abstract_compiler#Platform#toolchain for (self: Object, ToolContext): Toolchain */
2082 val
* VIRTUAL_abstract_compiler__Platform__toolchain(val
* self
, val
* p0
) {
2083 val
* var
/* : Toolchain */;
2084 val
* var1
/* : Toolchain */;
2085 const char* var_class_name
;
2086 { /* Inline abstract_compiler#Platform#toolchain (self,p0) on <self:Object(Platform)> */
2087 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
2088 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "toolchain", var_class_name
);
2089 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 136);
2097 /* method abstract_compiler#Toolchain#toolcontext for (self: Toolchain): ToolContext */
2098 val
* abstract_compiler__Toolchain__toolcontext(val
* self
) {
2099 val
* var
/* : ToolContext */;
2100 val
* var1
/* : ToolContext */;
2101 var1
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Toolchain> */
2102 if (unlikely(var1
== NULL
)) {
2103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2104 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2111 /* method abstract_compiler#Toolchain#toolcontext for (self: Object): ToolContext */
2112 val
* VIRTUAL_abstract_compiler__Toolchain__toolcontext(val
* self
) {
2113 val
* var
/* : ToolContext */;
2114 val
* var1
/* : ToolContext */;
2115 val
* var3
/* : ToolContext */;
2116 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:Object(Toolchain)> */
2117 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Object(Toolchain)> */
2118 if (unlikely(var3
== NULL
)) {
2119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2120 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2130 /* method abstract_compiler#Toolchain#toolcontext= for (self: Toolchain, ToolContext) */
2131 void abstract_compiler__Toolchain__toolcontext_61d(val
* self
, val
* p0
) {
2132 self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
= p0
; /* _toolcontext on <self:Toolchain> */
2135 /* method abstract_compiler#Toolchain#toolcontext= for (self: Object, ToolContext) */
2136 void VIRTUAL_abstract_compiler__Toolchain__toolcontext_61d(val
* self
, val
* p0
) {
2137 { /* Inline abstract_compiler#Toolchain#toolcontext= (self,p0) on <self:Object(Toolchain)> */
2138 self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
= p0
; /* _toolcontext on <self:Object(Toolchain)> */
2143 /* method abstract_compiler#Toolchain#compile_dir for (self: Toolchain): String */
2144 val
* abstract_compiler__Toolchain__compile_dir(val
* self
) {
2145 val
* var
/* : String */;
2146 val
* var1
/* : ToolContext */;
2147 val
* var3
/* : ToolContext */;
2148 val
* var4
/* : OptionString */;
2149 val
* var6
/* : OptionString */;
2150 val
* var7
/* : nullable Object */;
2151 val
* var9
/* : nullable Object */;
2152 val
* var_compile_dir
/* var compile_dir: nullable String */;
2153 val
* var10
/* : null */;
2154 short int var11
/* : Bool */;
2155 short int var12
/* : Bool */;
2156 static val
* varonce
;
2157 val
* var13
/* : String */;
2158 char* var14
/* : NativeString */;
2159 long var15
/* : Int */;
2160 val
* var16
/* : FlatString */;
2162 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:Toolchain> */
2163 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Toolchain> */
2164 if (unlikely(var3
== NULL
)) {
2165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2166 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2174 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (var1) on <var1:ToolContext> */
2175 var6
= var1
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <var1:ToolContext> */
2176 if (unlikely(var6
== NULL
)) {
2177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
2178 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 45);
2186 { /* Inline opts#Option#value (var4) on <var4:OptionString> */
2187 var9
= var4
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var4:OptionString> */
2192 var_compile_dir
= var7
;
2194 if (var_compile_dir
== NULL
) {
2195 var11
= 1; /* is null */
2197 var11
= 0; /* arg is null but recv is not */
2200 var12
= string__FlatString___61d_61d(var_compile_dir
, var10
);
2207 var14
= ".nit_compile";
2209 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2213 var_compile_dir
= var13
;
2216 var
= var_compile_dir
;
2221 /* method abstract_compiler#Toolchain#compile_dir for (self: Object): String */
2222 val
* VIRTUAL_abstract_compiler__Toolchain__compile_dir(val
* self
) {
2223 val
* var
/* : String */;
2224 val
* var1
/* : String */;
2225 var1
= abstract_compiler__Toolchain__compile_dir(self
);
2230 /* method abstract_compiler#Toolchain#init for (self: Toolchain) */
2231 void abstract_compiler__Toolchain__init(val
* self
) {
2233 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__Toolchain__init
]))(self
) /* init on <self:Toolchain>*/;
2237 /* method abstract_compiler#Toolchain#init for (self: Object) */
2238 void VIRTUAL_abstract_compiler__Toolchain__init(val
* self
) {
2239 { /* Inline abstract_compiler#Toolchain#init (self) on <self:Object(Toolchain)> */
2241 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__Toolchain__init
]))(self
) /* init on <self:Object(Toolchain)>*/;
2247 /* method abstract_compiler#MakefileToolchain#cc_paths for (self: MakefileToolchain): Array[String] */
2248 val
* abstract_compiler__MakefileToolchain__cc_paths(val
* self
) {
2249 val
* var
/* : Array[String] */;
2250 val
* var1
/* : Array[String] */;
2251 var1
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2252 if (unlikely(var1
== NULL
)) {
2253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2254 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 154);
2261 /* method abstract_compiler#MakefileToolchain#cc_paths for (self: Object): Array[String] */
2262 val
* VIRTUAL_abstract_compiler__MakefileToolchain__cc_paths(val
* self
) {
2263 val
* var
/* : Array[String] */;
2264 val
* var1
/* : Array[String] */;
2265 val
* var3
/* : Array[String] */;
2266 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:Object(MakefileToolchain)> */
2267 var3
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:Object(MakefileToolchain)> */
2268 if (unlikely(var3
== NULL
)) {
2269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2270 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 154);
2280 /* method abstract_compiler#MakefileToolchain#clib for (self: MakefileToolchain): String */
2281 val
* abstract_compiler__MakefileToolchain__clib(val
* self
) {
2282 val
* var
/* : String */;
2283 val
* var1
/* : String */;
2284 var1
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
; /* _clib on <self:MakefileToolchain> */
2285 if (unlikely(var1
== NULL
)) {
2286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _clib");
2287 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 162);
2294 /* method abstract_compiler#MakefileToolchain#clib for (self: Object): String */
2295 val
* VIRTUAL_abstract_compiler__MakefileToolchain__clib(val
* self
) {
2296 val
* var
/* : String */;
2297 val
* var1
/* : String */;
2298 val
* var3
/* : String */;
2299 { /* Inline abstract_compiler#MakefileToolchain#clib (self) on <self:Object(MakefileToolchain)> */
2300 var3
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
; /* _clib on <self:Object(MakefileToolchain)> */
2301 if (unlikely(var3
== NULL
)) {
2302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _clib");
2303 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 162);
2313 /* method abstract_compiler#MakefileToolchain#clib= for (self: MakefileToolchain, String) */
2314 void abstract_compiler__MakefileToolchain__clib_61d(val
* self
, val
* p0
) {
2315 self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
= p0
; /* _clib on <self:MakefileToolchain> */
2318 /* method abstract_compiler#MakefileToolchain#clib= for (self: Object, String) */
2319 void VIRTUAL_abstract_compiler__MakefileToolchain__clib_61d(val
* self
, val
* p0
) {
2320 { /* Inline abstract_compiler#MakefileToolchain#clib= (self,p0) on <self:Object(MakefileToolchain)> */
2321 self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
= p0
; /* _clib on <self:Object(MakefileToolchain)> */
2326 /* method abstract_compiler#MakefileToolchain#gather_cc_paths for (self: MakefileToolchain) */
2327 void abstract_compiler__MakefileToolchain__gather_cc_paths(val
* self
) {
2328 val
* var
/* : ToolContext */;
2329 val
* var2
/* : ToolContext */;
2330 val
* var3
/* : nullable String */;
2331 val
* var5
/* : nullable String */;
2332 val
* var_path_env
/* var path_env: nullable String */;
2333 val
* var6
/* : null */;
2334 short int var7
/* : Bool */;
2335 short int var8
/* : Bool */;
2336 val
* var_other
/* var other: nullable Object */;
2337 short int var10
/* : Bool */;
2338 short int var11
/* : Bool */;
2339 short int var12
/* : Bool */;
2340 static val
* varonce
;
2341 val
* var13
/* : String */;
2342 char* var14
/* : NativeString */;
2343 long var15
/* : Int */;
2344 val
* var16
/* : FlatString */;
2345 val
* var17
/* : Array[Object] */;
2346 long var18
/* : Int */;
2347 val
* var19
/* : NativeArray[Object] */;
2348 val
* var20
/* : String */;
2349 val
* var_libname
/* var libname: String */;
2350 short int var21
/* : Bool */;
2351 short int var22
/* : Bool */;
2352 val
* var23
/* : ToolContext */;
2353 val
* var25
/* : ToolContext */;
2354 val
* var26
/* : null */;
2355 static val
* varonce27
;
2356 val
* var28
/* : String */;
2357 char* var29
/* : NativeString */;
2358 long var30
/* : Int */;
2359 val
* var31
/* : FlatString */;
2360 val
* var33
/* : Array[String] */;
2361 val
* var35
/* : Array[String] */;
2362 val
* var36
/* : ToolContext */;
2363 val
* var38
/* : ToolContext */;
2364 val
* var39
/* : OptionArray */;
2365 val
* var41
/* : OptionArray */;
2366 val
* var42
/* : nullable Object */;
2367 val
* var44
/* : nullable Object */;
2368 static val
* varonce45
;
2369 val
* var46
/* : String */;
2370 char* var47
/* : NativeString */;
2371 long var48
/* : Int */;
2372 val
* var49
/* : FlatString */;
2373 val
* var50
/* : String */;
2374 short int var51
/* : Bool */;
2375 short int var52
/* : Bool */;
2376 val
* var53
/* : Array[String] */;
2377 val
* var55
/* : Array[String] */;
2378 char var56
/* : Char */;
2379 val
* var57
/* : Array[Text] */;
2380 val
* var58
/* : Pattern */;
2382 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2383 var2
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2384 if (unlikely(var2
== NULL
)) {
2385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2386 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2394 { /* Inline toolcontext#ToolContext#nit_dir (var) on <var:ToolContext> */
2395 var5
= var
->attrs
[COLOR_toolcontext__ToolContext___nit_dir
].val
; /* _nit_dir on <var:ToolContext> */
2400 var_path_env
= var3
;
2402 if (var_path_env
== NULL
) {
2403 var7
= 0; /* is null */
2405 var7
= 1; /* arg is null and recv is not */
2408 { /* Inline kernel#Object#!= (var_path_env,var6) on <var_path_env:nullable String> */
2411 var11
= ((short int (*)(val
*, val
*))(var_path_env
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_path_env
, var_other
) /* == on <var_path_env:nullable String(String)>*/;
2427 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2431 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
2432 { /* var17 = array_instance Array[Object] */
2434 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
2435 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_path_env
;
2436 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
2438 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
2442 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
2444 var_libname
= var20
;
2446 var21
= file__String__file_exists(var_libname
);
2451 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2452 var25
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2453 if (unlikely(var25
== NULL
)) {
2454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2455 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2459 RET_LABEL24
:(void)0;
2466 var29
= "Cannot determine the nit clib path. define envvar NIT_DIR.";
2468 var31
= string__NativeString__to_s_with_length(var29
, var30
);
2473 toolcontext__ToolContext__fatal_error(var23
, var26
, var28
); /* Direct call toolcontext#ToolContext#fatal_error on <var23:ToolContext>*/
2478 { /* Inline abstract_compiler#MakefileToolchain#clib= (self,var_libname) on <self:MakefileToolchain> */
2479 self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
= var_libname
; /* _clib on <self:MakefileToolchain> */
2480 RET_LABEL32
:(void)0;
2486 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2487 var35
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2488 if (unlikely(var35
== NULL
)) {
2489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2490 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 154);
2494 RET_LABEL34
:(void)0;
2498 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2499 var38
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2500 if (unlikely(var38
== NULL
)) {
2501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2502 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2506 RET_LABEL37
:(void)0;
2510 { /* Inline abstract_compiler#ToolContext#opt_cc_path (var36) on <var36:ToolContext> */
2511 var41
= var36
->attrs
[COLOR_abstract_compiler__ToolContext___opt_cc_path
].val
; /* _opt_cc_path on <var36:ToolContext> */
2512 if (unlikely(var41
== NULL
)) {
2513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_cc_path");
2514 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 37);
2518 RET_LABEL40
:(void)0;
2522 { /* Inline opts#Option#value (var39) on <var39:OptionArray> */
2523 var44
= var39
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var39:OptionArray> */
2525 RET_LABEL43
:(void)0;
2529 abstract_collection__Sequence__append(var33
, var42
); /* Direct call abstract_collection#Sequence#append on <var33:Array[String]>*/
2534 var47
= "NIT_CC_PATH";
2536 var49
= string__NativeString__to_s_with_length(var47
, var48
);
2541 var50
= environ__String__environ(var46
);
2543 var_path_env
= var50
;
2545 var51
= string__Text__is_empty(var_path_env
);
2550 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2551 var55
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2552 if (unlikely(var55
== NULL
)) {
2553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2554 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 154);
2558 RET_LABEL54
:(void)0;
2563 var58
= BOX_kernel__Char(var56
); /* autobox from Char to Pattern */
2564 var57
= string_search__Text__split_with(var_path_env
, var58
);
2567 abstract_collection__Sequence__append(var53
, var57
); /* Direct call abstract_collection#Sequence#append on <var53:Array[String]>*/
2573 /* method abstract_compiler#MakefileToolchain#gather_cc_paths for (self: Object) */
2574 void VIRTUAL_abstract_compiler__MakefileToolchain__gather_cc_paths(val
* self
) {
2575 abstract_compiler__MakefileToolchain__gather_cc_paths(self
); /* Direct call abstract_compiler#MakefileToolchain#gather_cc_paths on <self:Object(MakefileToolchain)>*/
2578 /* method abstract_compiler#MakefileToolchain#write_and_make for (self: MakefileToolchain, AbstractCompiler) */
2579 void abstract_compiler__MakefileToolchain__write_and_make(val
* self
, val
* p0
) {
2580 val
* var_compiler
/* var compiler: AbstractCompiler */;
2581 val
* var
/* : String */;
2582 val
* var_compile_dir
/* var compile_dir: String */;
2583 long var1
/* : Int */;
2584 long var3
/* : Int for extern */;
2585 long var_time0
/* var time0: Int */;
2586 val
* var4
/* : ToolContext */;
2587 val
* var6
/* : ToolContext */;
2588 static val
* varonce
;
2589 val
* var7
/* : String */;
2590 char* var8
/* : NativeString */;
2591 long var9
/* : Int */;
2592 val
* var10
/* : FlatString */;
2593 long var11
/* : Int */;
2594 val
* var12
/* : Array[String] */;
2595 val
* var_cfiles
/* var cfiles: Array[String] */;
2596 long var13
/* : Int */;
2597 long var15
/* : Int for extern */;
2598 long var_time1
/* var time1: Int */;
2599 val
* var16
/* : ToolContext */;
2600 val
* var18
/* : ToolContext */;
2601 static val
* varonce19
;
2602 val
* var20
/* : String */;
2603 char* var21
/* : NativeString */;
2604 long var22
/* : Int */;
2605 val
* var23
/* : FlatString */;
2606 long var24
/* : Int */;
2607 short int var26
/* : Bool */;
2610 const char* var_class_name
;
2611 long var27
/* : Int */;
2612 static val
* varonce28
;
2613 val
* var29
/* : String */;
2614 char* var30
/* : NativeString */;
2615 long var31
/* : Int */;
2616 val
* var32
/* : FlatString */;
2617 val
* var33
/* : Array[Object] */;
2618 long var34
/* : Int */;
2619 val
* var35
/* : NativeArray[Object] */;
2620 val
* var36
/* : Object */;
2621 val
* var37
/* : String */;
2622 long var38
/* : Int */;
2623 val
* var39
/* : ToolContext */;
2624 val
* var41
/* : ToolContext */;
2625 val
* var42
/* : OptionBool */;
2626 val
* var44
/* : OptionBool */;
2627 val
* var45
/* : nullable Object */;
2628 val
* var47
/* : nullable Object */;
2629 short int var48
/* : Bool */;
2630 val
* var49
/* : ToolContext */;
2631 val
* var51
/* : ToolContext */;
2632 static val
* varonce52
;
2633 val
* var53
/* : String */;
2634 char* var54
/* : NativeString */;
2635 long var55
/* : Int */;
2636 val
* var56
/* : FlatString */;
2637 long var57
/* : Int */;
2638 long var58
/* : Int */;
2639 long var60
/* : Int for extern */;
2640 val
* var61
/* : ToolContext */;
2641 val
* var63
/* : ToolContext */;
2642 static val
* varonce64
;
2643 val
* var65
/* : String */;
2644 char* var66
/* : NativeString */;
2645 long var67
/* : Int */;
2646 val
* var68
/* : FlatString */;
2647 long var69
/* : Int */;
2648 short int var71
/* : Bool */;
2651 const char* var_class_name74
;
2652 long var75
/* : Int */;
2653 static val
* varonce76
;
2654 val
* var77
/* : String */;
2655 char* var78
/* : NativeString */;
2656 long var79
/* : Int */;
2657 val
* var80
/* : FlatString */;
2658 val
* var81
/* : Array[Object] */;
2659 long var82
/* : Int */;
2660 val
* var83
/* : NativeArray[Object] */;
2661 val
* var84
/* : Object */;
2662 val
* var85
/* : String */;
2663 long var86
/* : Int */;
2666 abstract_compiler__MakefileToolchain__gather_cc_paths(self
); /* Direct call abstract_compiler#MakefileToolchain#gather_cc_paths on <self:MakefileToolchain>*/
2669 var
= abstract_compiler__Toolchain__compile_dir(self
);
2671 var_compile_dir
= var
;
2673 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2674 var3
= kernel_Any_Any_get_time_0(self
);
2682 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2683 var6
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2684 if (unlikely(var6
== NULL
)) {
2685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2686 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2696 var8
= "*** WRITING C ***";
2698 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2704 toolcontext__ToolContext__info(var4
, var7
, var11
); /* Direct call toolcontext#ToolContext#info on <var4:ToolContext>*/
2707 file__String__mkdir(var_compile_dir
); /* Direct call file#String#mkdir on <var_compile_dir:String>*/
2709 var12
= NEW_array__Array(&type_array__Arraystring__String
);
2711 ((void (*)(val
*))(var12
->class->vft
[COLOR_kernel__Object__init
]))(var12
) /* init on <var12:Array[String]>*/;
2715 abstract_compiler__MakefileToolchain__write_files(self
, var_compiler
, var_compile_dir
, var_cfiles
); /* Direct call abstract_compiler#MakefileToolchain#write_files on <self:MakefileToolchain>*/
2718 abstract_compiler__MakefileToolchain__write_makefile(self
, var_compiler
, var_compile_dir
, var_cfiles
); /* Direct call abstract_compiler#MakefileToolchain#write_makefile on <self:MakefileToolchain>*/
2721 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2722 var15
= kernel_Any_Any_get_time_0(self
);
2725 RET_LABEL14
:(void)0;
2730 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2731 var18
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2732 if (unlikely(var18
== NULL
)) {
2733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2734 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2738 RET_LABEL17
:(void)0;
2744 var21
= "*** END WRITING C: ";
2746 var23
= string__NativeString__to_s_with_length(var21
, var22
);
2751 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
2752 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
2753 /* <var_time0:Int> isa OTHER */
2754 var26
= 1; /* easy <var_time0:Int> isa OTHER*/
2755 if (unlikely(!var26
)) {
2756 var_class_name
= type_kernel__Int
.name
;
2757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2758 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
2761 var27
= var_time1
- var_time0
;
2764 RET_LABEL25
:(void)0;
2772 var32
= string__NativeString__to_s_with_length(var30
, var31
);
2776 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
2777 { /* var33 = array_instance Array[Object] */
2779 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
2780 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var20
;
2781 var36
= BOX_kernel__Int(var24
); /* autobox from Int to Object */
2782 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var36
;
2783 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var29
;
2785 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
2789 var37
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
2793 toolcontext__ToolContext__info(var16
, var37
, var38
); /* Direct call toolcontext#ToolContext#info on <var16:ToolContext>*/
2796 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2797 var41
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2798 if (unlikely(var41
== NULL
)) {
2799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2800 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2804 RET_LABEL40
:(void)0;
2808 { /* Inline abstract_compiler#ToolContext#opt_no_cc (var39) on <var39:ToolContext> */
2809 var44
= var39
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <var39:ToolContext> */
2810 if (unlikely(var44
== NULL
)) {
2811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
2812 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 33);
2816 RET_LABEL43
:(void)0;
2820 { /* Inline opts#Option#value (var42) on <var42:OptionBool> */
2821 var47
= var42
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var42:OptionBool> */
2823 RET_LABEL46
:(void)0;
2826 var48
= ((struct instance_kernel__Bool
*)var45
)->value
; /* autounbox from nullable Object to Bool */;
2831 var_time0
= var_time1
;
2833 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2834 var51
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2835 if (unlikely(var51
== NULL
)) {
2836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2837 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2841 RET_LABEL50
:(void)0;
2847 var54
= "*** COMPILING C ***";
2849 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2855 toolcontext__ToolContext__info(var49
, var53
, var57
); /* Direct call toolcontext#ToolContext#info on <var49:ToolContext>*/
2858 abstract_compiler__MakefileToolchain__compile_c_code(self
, var_compiler
, var_compile_dir
); /* Direct call abstract_compiler#MakefileToolchain#compile_c_code on <self:MakefileToolchain>*/
2861 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2862 var60
= kernel_Any_Any_get_time_0(self
);
2865 RET_LABEL59
:(void)0;
2870 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2871 var63
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2872 if (unlikely(var63
== NULL
)) {
2873 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2874 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
2878 RET_LABEL62
:(void)0;
2884 var66
= "*** END COMPILING C: ";
2886 var68
= string__NativeString__to_s_with_length(var66
, var67
);
2891 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
2892 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
2893 /* <var_time0:Int> isa OTHER */
2894 var71
= 1; /* easy <var_time0:Int> isa OTHER*/
2895 if (unlikely(!var71
)) {
2896 var_class_name74
= type_kernel__Int
.name
;
2897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74
);
2898 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
2901 var75
= var_time1
- var_time0
;
2904 RET_LABEL70
:(void)0;
2912 var80
= string__NativeString__to_s_with_length(var78
, var79
);
2916 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
2917 { /* var81 = array_instance Array[Object] */
2919 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
2920 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var65
;
2921 var84
= BOX_kernel__Int(var69
); /* autobox from Int to Object */
2922 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var84
;
2923 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
2925 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
2929 var85
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
2933 toolcontext__ToolContext__info(var61
, var85
, var86
); /* Direct call toolcontext#ToolContext#info on <var61:ToolContext>*/
2937 /* method abstract_compiler#MakefileToolchain#write_and_make for (self: Object, AbstractCompiler) */
2938 void VIRTUAL_abstract_compiler__MakefileToolchain__write_and_make(val
* self
, val
* p0
) {
2939 abstract_compiler__MakefileToolchain__write_and_make(self
, p0
); /* Direct call abstract_compiler#MakefileToolchain#write_and_make on <self:Object(MakefileToolchain)>*/
2942 /* method abstract_compiler#MakefileToolchain#write_files for (self: MakefileToolchain, AbstractCompiler, String, Array[String]) */
2943 void abstract_compiler__MakefileToolchain__write_files(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2944 val
* var_compiler
/* var compiler: AbstractCompiler */;
2945 val
* var_compile_dir
/* var compile_dir: String */;
2946 val
* var_cfiles
/* var cfiles: Array[String] */;
2947 val
* var
/* : MModule */;
2948 val
* var2
/* : MModule */;
2949 val
* var3
/* : nullable Platform */;
2950 val
* var_platform
/* var platform: nullable Platform */;
2951 short int var4
/* : Bool */;
2952 val
* var5
/* : ToolContext */;
2953 val
* var7
/* : ToolContext */;
2954 val
* var8
/* : OptionString */;
2955 val
* var10
/* : OptionString */;
2956 val
* var11
/* : nullable Object */;
2957 val
* var13
/* : nullable Object */;
2958 static val
* varonce
;
2959 val
* var14
/* : String */;
2960 char* var15
/* : NativeString */;
2961 long var16
/* : Int */;
2962 val
* var17
/* : FlatString */;
2963 short int var18
/* : Bool */;
2964 short int var19
/* : Bool */;
2965 short int var_
/* var : Bool */;
2966 short int var20
/* : Bool */;
2967 val
* var21
/* : null */;
2968 short int var22
/* : Bool */;
2969 short int var23
/* : Bool */;
2970 short int var_24
/* var : Bool */;
2971 short int var25
/* : Bool */;
2972 static val
* varonce26
;
2973 val
* var27
/* : String */;
2974 char* var28
/* : NativeString */;
2975 long var29
/* : Int */;
2976 val
* var30
/* : FlatString */;
2977 val
* var_cc_opt_with_libgc
/* var cc_opt_with_libgc: String */;
2978 short int var31
/* : Bool */;
2979 val
* var32
/* : null */;
2980 short int var33
/* : Bool */;
2981 short int var34
/* : Bool */;
2982 short int var_35
/* var : Bool */;
2983 short int var36
/* : Bool */;
2984 short int var37
/* : Bool */;
2985 static val
* varonce38
;
2986 val
* var39
/* : String */;
2987 char* var40
/* : NativeString */;
2988 long var41
/* : Int */;
2989 val
* var42
/* : FlatString */;
2990 val
* var43
/* : ExternCFile */;
2991 static val
* varonce44
;
2992 val
* var45
/* : String */;
2993 char* var46
/* : NativeString */;
2994 long var47
/* : Int */;
2995 val
* var48
/* : FlatString */;
2996 val
* var_gc_chooser
/* var gc_chooser: ExternCFile */;
2997 val
* var49
/* : Array[ExternFile] */;
2998 val
* var51
/* : Array[ExternFile] */;
2999 val
* var52
/* : Array[String] */;
3000 val
* var54
/* : Array[String] */;
3001 val
* var55
/* : String */;
3002 val
* var57
/* : String */;
3003 static val
* varonce58
;
3004 val
* var59
/* : String */;
3005 char* var60
/* : NativeString */;
3006 long var61
/* : Int */;
3007 val
* var62
/* : FlatString */;
3008 val
* var63
/* : Array[Object] */;
3009 long var64
/* : Int */;
3010 val
* var65
/* : NativeArray[Object] */;
3011 val
* var66
/* : String */;
3012 val
* var67
/* : Array[String] */;
3013 val
* var69
/* : Array[String] */;
3014 val
* var70
/* : String */;
3015 val
* var72
/* : String */;
3016 static val
* varonce73
;
3017 val
* var74
/* : String */;
3018 char* var75
/* : NativeString */;
3019 long var76
/* : Int */;
3020 val
* var77
/* : FlatString */;
3021 val
* var78
/* : Array[Object] */;
3022 long var79
/* : Int */;
3023 val
* var80
/* : NativeArray[Object] */;
3024 val
* var81
/* : String */;
3025 val
* var82
/* : MModule */;
3026 val
* var84
/* : MModule */;
3027 val
* var85
/* : POSetElement[MModule] */;
3028 val
* var87
/* : POSetElement[MModule] */;
3029 val
* var88
/* : Collection[Object] */;
3030 val
* var_89
/* var : Collection[MModule] */;
3031 val
* var90
/* : Iterator[nullable Object] */;
3032 val
* var_91
/* var : Iterator[MModule] */;
3033 short int var92
/* : Bool */;
3034 val
* var93
/* : nullable Object */;
3035 val
* var_m
/* var m: MModule */;
3036 val
* var95
/* : Array[String] */;
3037 val
* var97
/* : Array[String] */;
3038 val
* var_98
/* var : Array[String] */;
3039 val
* var99
/* : ArrayIterator[nullable Object] */;
3040 val
* var_100
/* var : ArrayIterator[String] */;
3041 short int var101
/* : Bool */;
3042 val
* var102
/* : nullable Object */;
3043 val
* var_src
/* var src: String */;
3044 static val
* varonce103
;
3045 val
* var104
/* : String */;
3046 char* var105
/* : NativeString */;
3047 long var106
/* : Int */;
3048 val
* var107
/* : FlatString */;
3049 val
* var108
/* : String */;
3050 val
* var_basename
/* var basename: String */;
3051 static val
* varonce109
;
3052 val
* var110
/* : String */;
3053 char* var111
/* : NativeString */;
3054 long var112
/* : Int */;
3055 val
* var113
/* : FlatString */;
3056 val
* var114
/* : Array[Object] */;
3057 long var115
/* : Int */;
3058 val
* var116
/* : NativeArray[Object] */;
3059 val
* var117
/* : String */;
3060 val
* var_dst
/* var dst: String */;
3061 val
* var120
/* : CodeWriter */;
3062 val
* var122
/* : CodeWriter */;
3063 val
* var123
/* : CodeFile */;
3064 val
* var125
/* : CodeFile */;
3065 val
* var126
/* : String */;
3066 val
* var128
/* : String */;
3067 static val
* varonce129
;
3068 val
* var130
/* : String */;
3069 char* var131
/* : NativeString */;
3070 long var132
/* : Int */;
3071 val
* var133
/* : FlatString */;
3072 val
* var134
/* : String */;
3073 val
* var_hfilename
/* var hfilename: String */;
3074 static val
* varonce135
;
3075 val
* var136
/* : String */;
3076 char* var137
/* : NativeString */;
3077 long var138
/* : Int */;
3078 val
* var139
/* : FlatString */;
3079 val
* var140
/* : Array[Object] */;
3080 long var141
/* : Int */;
3081 val
* var142
/* : NativeArray[Object] */;
3082 val
* var143
/* : String */;
3083 val
* var_hfilepath
/* var hfilepath: String */;
3084 val
* var144
/* : OFStream */;
3085 val
* var_h
/* var h: OFStream */;
3086 val
* var145
/* : CodeWriter */;
3087 val
* var147
/* : CodeWriter */;
3088 val
* var148
/* : List[String] */;
3089 val
* var150
/* : List[String] */;
3090 val
* var_151
/* var : List[String] */;
3091 val
* var152
/* : ListIterator[nullable Object] */;
3092 val
* var_153
/* var : ListIterator[String] */;
3093 short int var154
/* : Bool */;
3094 val
* var155
/* : nullable Object */;
3095 val
* var_l
/* var l: String */;
3096 static val
* varonce156
;
3097 val
* var157
/* : String */;
3098 char* var158
/* : NativeString */;
3099 long var159
/* : Int */;
3100 val
* var160
/* : FlatString */;
3101 val
* var163
/* : CodeWriter */;
3102 val
* var165
/* : CodeWriter */;
3103 val
* var166
/* : List[String] */;
3104 val
* var168
/* : List[String] */;
3105 val
* var_169
/* var : List[String] */;
3106 val
* var170
/* : ListIterator[nullable Object] */;
3107 val
* var_171
/* var : ListIterator[String] */;
3108 short int var172
/* : Bool */;
3109 val
* var173
/* : nullable Object */;
3110 val
* var_l174
/* var l: String */;
3111 static val
* varonce175
;
3112 val
* var176
/* : String */;
3113 char* var177
/* : NativeString */;
3114 long var178
/* : Int */;
3115 val
* var179
/* : FlatString */;
3116 val
* var182
/* : ToolContext */;
3117 val
* var184
/* : ToolContext */;
3118 val
* var185
/* : OptionInt */;
3119 val
* var187
/* : OptionInt */;
3120 val
* var188
/* : nullable Object */;
3121 val
* var190
/* : nullable Object */;
3122 long var191
/* : Int */;
3123 long var_max_c_lines
/* var max_c_lines: Int */;
3124 val
* var192
/* : List[CodeFile] */;
3125 val
* var194
/* : List[CodeFile] */;
3126 val
* var_195
/* var : List[CodeFile] */;
3127 val
* var196
/* : ListIterator[nullable Object] */;
3128 val
* var_197
/* var : ListIterator[CodeFile] */;
3129 short int var198
/* : Bool */;
3130 val
* var199
/* : nullable Object */;
3131 val
* var_f
/* var f: CodeFile */;
3132 long var200
/* : Int */;
3133 long var_i
/* var i: Int */;
3134 long var201
/* : Int */;
3135 long var_count
/* var count: Int */;
3136 val
* var202
/* : null */;
3137 val
* var_file
/* var file: nullable OFStream */;
3138 val
* var203
/* : Array[CodeWriter] */;
3139 val
* var205
/* : Array[CodeWriter] */;
3140 val
* var_206
/* var : Array[CodeWriter] */;
3141 val
* var207
/* : ArrayIterator[nullable Object] */;
3142 val
* var_208
/* var : ArrayIterator[CodeWriter] */;
3143 short int var209
/* : Bool */;
3144 val
* var210
/* : nullable Object */;
3145 val
* var_vis
/* var vis: CodeWriter */;
3146 val
* var211
/* : CodeWriter */;
3147 val
* var213
/* : CodeWriter */;
3148 short int var214
/* : Bool */;
3149 short int var215
/* : Bool */;
3150 val
* var_other
/* var other: nullable Object */;
3151 short int var217
/* : Bool */;
3152 short int var219
/* : Bool */;
3153 val
* var221
/* : List[String] */;
3154 val
* var223
/* : List[String] */;
3155 long var224
/* : Int */;
3156 val
* var225
/* : List[String] */;
3157 val
* var227
/* : List[String] */;
3158 long var228
/* : Int */;
3159 long var229
/* : Int */;
3160 short int var231
/* : Bool */;
3163 const char* var_class_name
;
3164 long var232
/* : Int */;
3165 long var_total_lines
/* var total_lines: Int */;
3166 long var233
/* : Int */;
3167 short int var234
/* : Bool */;
3168 short int var235
/* : Bool */;
3169 short int var237
/* : Bool */;
3170 long var238
/* : Int */;
3171 short int var240
/* : Bool */;
3174 const char* var_class_name243
;
3175 long var244
/* : Int */;
3176 short int var245
/* : Bool */;
3177 val
* var246
/* : null */;
3178 short int var247
/* : Bool */;
3179 short int var248
/* : Bool */;
3180 short int var250
/* : Bool */;
3181 short int var252
/* : Bool */;
3182 short int var_253
/* var : Bool */;
3183 short int var254
/* : Bool */;
3184 short int var255
/* : Bool */;
3185 short int var257
/* : Bool */;
3188 const char* var_class_name260
;
3189 short int var261
/* : Bool */;
3190 short int var_262
/* var : Bool */;
3191 long var263
/* : Int */;
3192 short int var264
/* : Bool */;
3193 short int var266
/* : Bool */;
3196 const char* var_class_name269
;
3197 short int var270
/* : Bool */;
3198 long var271
/* : Int */;
3199 long var272
/* : Int */;
3200 short int var274
/* : Bool */;
3203 const char* var_class_name277
;
3204 long var278
/* : Int */;
3205 val
* var279
/* : null */;
3206 short int var280
/* : Bool */;
3207 short int var281
/* : Bool */;
3208 val
* var_other283
/* var other: nullable Object */;
3209 short int var284
/* : Bool */;
3210 short int var285
/* : Bool */;
3211 short int var286
/* : Bool */;
3212 val
* var287
/* : String */;
3213 val
* var289
/* : String */;
3214 static val
* varonce290
;
3215 val
* var291
/* : String */;
3216 char* var292
/* : NativeString */;
3217 long var293
/* : Int */;
3218 val
* var294
/* : FlatString */;
3219 static val
* varonce295
;
3220 val
* var296
/* : String */;
3221 char* var297
/* : NativeString */;
3222 long var298
/* : Int */;
3223 val
* var299
/* : FlatString */;
3224 val
* var300
/* : Array[Object] */;
3225 long var301
/* : Int */;
3226 val
* var302
/* : NativeArray[Object] */;
3227 val
* var303
/* : Object */;
3228 val
* var304
/* : String */;
3229 val
* var_cfilename
/* var cfilename: String */;
3230 static val
* varonce305
;
3231 val
* var306
/* : String */;
3232 char* var307
/* : NativeString */;
3233 long var308
/* : Int */;
3234 val
* var309
/* : FlatString */;
3235 val
* var310
/* : Array[Object] */;
3236 long var311
/* : Int */;
3237 val
* var312
/* : NativeArray[Object] */;
3238 val
* var313
/* : String */;
3239 val
* var_cfilepath
/* var cfilepath: String */;
3240 val
* var314
/* : ToolContext */;
3241 val
* var316
/* : ToolContext */;
3242 static val
* varonce317
;
3243 val
* var318
/* : String */;
3244 char* var319
/* : NativeString */;
3245 long var320
/* : Int */;
3246 val
* var321
/* : FlatString */;
3247 val
* var322
/* : Array[Object] */;
3248 long var323
/* : Int */;
3249 val
* var324
/* : NativeArray[Object] */;
3250 val
* var325
/* : String */;
3251 long var326
/* : Int */;
3252 val
* var327
/* : OFStream */;
3253 static val
* varonce328
;
3254 val
* var329
/* : String */;
3255 char* var330
/* : NativeString */;
3256 long var331
/* : Int */;
3257 val
* var332
/* : FlatString */;
3258 val
* var333
/* : String */;
3259 val
* var335
/* : String */;
3260 static val
* varonce336
;
3261 val
* var337
/* : String */;
3262 char* var338
/* : NativeString */;
3263 long var339
/* : Int */;
3264 val
* var340
/* : FlatString */;
3265 val
* var341
/* : Array[Object] */;
3266 long var342
/* : Int */;
3267 val
* var343
/* : NativeArray[Object] */;
3268 val
* var344
/* : String */;
3269 val
* var345
/* : List[String] */;
3270 val
* var347
/* : List[String] */;
3271 val
* var_348
/* var : List[String] */;
3272 val
* var349
/* : ListIterator[nullable Object] */;
3273 val
* var_350
/* var : ListIterator[String] */;
3274 short int var351
/* : Bool */;
3275 val
* var352
/* : nullable Object */;
3276 val
* var_l353
/* var l: String */;
3277 static val
* varonce354
;
3278 val
* var355
/* : String */;
3279 char* var356
/* : NativeString */;
3280 long var357
/* : Int */;
3281 val
* var358
/* : FlatString */;
3282 val
* var361
/* : List[String] */;
3283 val
* var363
/* : List[String] */;
3284 val
* var_364
/* var : List[String] */;
3285 val
* var365
/* : ListIterator[nullable Object] */;
3286 val
* var_366
/* var : ListIterator[String] */;
3287 short int var367
/* : Bool */;
3288 val
* var368
/* : nullable Object */;
3289 val
* var_l369
/* var l: String */;
3290 static val
* varonce370
;
3291 val
* var371
/* : String */;
3292 char* var372
/* : NativeString */;
3293 long var373
/* : Int */;
3294 val
* var374
/* : FlatString */;
3295 val
* var379
/* : null */;
3296 short int var380
/* : Bool */;
3297 short int var381
/* : Bool */;
3298 short int var383
/* : Bool */;
3299 short int var385
/* : Bool */;
3300 val
* var387
/* : String */;
3301 val
* var389
/* : String */;
3302 static val
* varonce390
;
3303 val
* var391
/* : String */;
3304 char* var392
/* : NativeString */;
3305 long var393
/* : Int */;
3306 val
* var394
/* : FlatString */;
3307 val
* var395
/* : Array[Object] */;
3308 long var396
/* : Int */;
3309 val
* var397
/* : NativeArray[Object] */;
3310 val
* var398
/* : String */;
3311 val
* var_cfilename399
/* var cfilename: String */;
3312 static val
* varonce400
;
3313 val
* var401
/* : String */;
3314 char* var402
/* : NativeString */;
3315 long var403
/* : Int */;
3316 val
* var404
/* : FlatString */;
3317 val
* var405
/* : Array[Object] */;
3318 long var406
/* : Int */;
3319 val
* var407
/* : NativeArray[Object] */;
3320 val
* var408
/* : String */;
3321 val
* var_cfilepath409
/* var cfilepath: String */;
3322 val
* var410
/* : null */;
3323 val
* var_hfile
/* var hfile: nullable OFStream */;
3324 val
* var411
/* : OFStream */;
3325 static val
* varonce412
;
3326 val
* var413
/* : String */;
3327 char* var414
/* : NativeString */;
3328 long var415
/* : Int */;
3329 val
* var416
/* : FlatString */;
3330 static val
* varonce417
;
3331 val
* var418
/* : String */;
3332 char* var419
/* : NativeString */;
3333 long var420
/* : Int */;
3334 val
* var421
/* : FlatString */;
3335 val
* var422
/* : Array[Object] */;
3336 long var423
/* : Int */;
3337 val
* var424
/* : NativeArray[Object] */;
3338 val
* var425
/* : String */;
3339 val
* var426
/* : HashSet[String] */;
3340 val
* var428
/* : HashSet[String] */;
3341 val
* var_429
/* var : HashSet[String] */;
3342 val
* var430
/* : Iterator[Object] */;
3343 val
* var_431
/* var : Iterator[String] */;
3344 short int var432
/* : Bool */;
3345 val
* var433
/* : nullable Object */;
3346 val
* var_key
/* var key: String */;
3347 val
* var434
/* : HashMap[String, String] */;
3348 val
* var436
/* : HashMap[String, String] */;
3349 short int var437
/* : Bool */;
3350 short int var438
/* : Bool */;
3351 val
* var439
/* : HashMap[String, ANode] */;
3352 val
* var441
/* : HashMap[String, ANode] */;
3353 val
* var442
/* : nullable Object */;
3354 val
* var_node
/* var node: nullable ANode */;
3355 val
* var443
/* : null */;
3356 short int var444
/* : Bool */;
3357 short int var445
/* : Bool */;
3358 short int var447
/* : Bool */;
3359 short int var448
/* : Bool */;
3360 short int var449
/* : Bool */;
3361 static val
* varonce450
;
3362 val
* var451
/* : String */;
3363 char* var452
/* : NativeString */;
3364 long var453
/* : Int */;
3365 val
* var454
/* : FlatString */;
3366 val
* var455
/* : Array[Object] */;
3367 long var456
/* : Int */;
3368 val
* var457
/* : NativeArray[Object] */;
3369 val
* var458
/* : String */;
3370 static val
* varonce459
;
3371 val
* var460
/* : String */;
3372 char* var461
/* : NativeString */;
3373 long var462
/* : Int */;
3374 val
* var463
/* : FlatString */;
3375 val
* var464
/* : Array[Object] */;
3376 long var465
/* : Int */;
3377 val
* var466
/* : NativeArray[Object] */;
3378 val
* var467
/* : String */;
3379 val
* var468
/* : HashMap[String, String] */;
3380 val
* var470
/* : HashMap[String, String] */;
3381 val
* var471
/* : nullable Object */;
3382 static val
* varonce472
;
3383 val
* var473
/* : String */;
3384 char* var474
/* : NativeString */;
3385 long var475
/* : Int */;
3386 val
* var476
/* : FlatString */;
3387 val
* var481
/* : ToolContext */;
3388 val
* var483
/* : ToolContext */;
3389 static val
* varonce484
;
3390 val
* var485
/* : String */;
3391 char* var486
/* : NativeString */;
3392 long var487
/* : Int */;
3393 val
* var488
/* : FlatString */;
3394 long var489
/* : Int */;
3395 long var491
/* : Int */;
3396 val
* var492
/* : Array[Object] */;
3397 long var493
/* : Int */;
3398 val
* var494
/* : NativeArray[Object] */;
3399 val
* var495
/* : Object */;
3400 val
* var496
/* : String */;
3401 long var497
/* : Int */;
3403 var_compile_dir
= p1
;
3406 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
3407 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
3408 if (unlikely(var2
== NULL
)) {
3409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3410 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
3418 var3
= platform__MModule__target_platform(var
);
3420 var_platform
= var3
;
3422 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
3423 var7
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
3424 if (unlikely(var7
== NULL
)) {
3425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3426 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
3434 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (var5) on <var5:ToolContext> */
3435 var10
= var5
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <var5:ToolContext> */
3436 if (unlikely(var10
== NULL
)) {
3437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
3438 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
3446 { /* Inline opts#Option#value (var8) on <var8:OptionString> */
3447 var13
= var8
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var8:OptionString> */
3449 RET_LABEL12
:(void)0;
3457 var17
= string__NativeString__to_s_with_length(var15
, var16
);
3461 if (var11
== NULL
) {
3462 var18
= 0; /* <var14:String> cannot be null */
3464 var19
= string__FlatString___61d_61d(var11
, var14
);
3470 if (var_platform
== NULL
) {
3471 var22
= 1; /* is null */
3473 var22
= 0; /* arg is null but recv is not */
3476 var23
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var21
) /* == on <var_platform:nullable Platform>*/;
3484 var25
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libunwind
]))(var_platform
) /* supports_libunwind on <var_platform:nullable Platform(Platform)>*/;
3494 abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#build_c_to_nit_bindings on <var_compiler:AbstractCompiler>*/
3501 var28
= "-DWITH_LIBGC `pkg-config --cflags bdw-gc` ";
3503 var30
= string__NativeString__to_s_with_length(var28
, var29
);
3507 var_cc_opt_with_libgc
= var27
;
3509 if (var_platform
== NULL
) {
3510 var33
= 0; /* is null */
3512 var33
= 1; /* arg is null and recv is not */
3515 var34
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_platform
, var32
) /* != on <var_platform:nullable Platform>*/;
3521 var36
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libgc
]))(var_platform
) /* supports_libgc on <var_platform:nullable Platform(Platform)>*/;
3534 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3538 var_cc_opt_with_libgc
= var39
;
3541 var43
= NEW_c_tools__ExternCFile(&type_c_tools__ExternCFile
);
3545 var46
= "gc_chooser.c";
3547 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3552 c_tools__ExternCFile__init(var43
, var45
, var_cc_opt_with_libgc
); /* Direct call c_tools#ExternCFile#init on <var43:ExternCFile>*/
3554 var_gc_chooser
= var43
;
3556 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (var_compiler) on <var_compiler:AbstractCompiler> */
3557 var51
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <var_compiler:AbstractCompiler> */
3558 if (unlikely(var51
== NULL
)) {
3559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
3560 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 901);
3564 RET_LABEL50
:(void)0;
3568 array__Array__add(var49
, var_gc_chooser
); /* Direct call array#Array#add on <var49:Array[ExternFile]>*/
3571 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3572 var54
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3573 if (unlikely(var54
== NULL
)) {
3574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3575 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 904);
3579 RET_LABEL53
:(void)0;
3583 { /* Inline abstract_compiler#MakefileToolchain#clib (self) on <self:MakefileToolchain> */
3584 var57
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
; /* _clib on <self:MakefileToolchain> */
3585 if (unlikely(var57
== NULL
)) {
3586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _clib");
3587 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 162);
3591 RET_LABEL56
:(void)0;
3597 var60
= "/gc_chooser.c";
3599 var62
= string__NativeString__to_s_with_length(var60
, var61
);
3603 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
3604 { /* var63 = array_instance Array[Object] */
3606 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
3607 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var55
;
3608 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var59
;
3610 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
3614 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
3617 array__Array__add(var52
, var66
); /* Direct call array#Array#add on <var52:Array[String]>*/
3620 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3621 var69
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3622 if (unlikely(var69
== NULL
)) {
3623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3624 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 904);
3628 RET_LABEL68
:(void)0;
3632 { /* Inline abstract_compiler#MakefileToolchain#clib (self) on <self:MakefileToolchain> */
3633 var72
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___clib
].val
; /* _clib on <self:MakefileToolchain> */
3634 if (unlikely(var72
== NULL
)) {
3635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _clib");
3636 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 162);
3640 RET_LABEL71
:(void)0;
3646 var75
= "/gc_chooser.h";
3648 var77
= string__NativeString__to_s_with_length(var75
, var76
);
3652 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
3653 { /* var78 = array_instance Array[Object] */
3655 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
3656 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var70
;
3657 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var74
;
3659 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
3663 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
3666 array__Array__add(var67
, var81
); /* Direct call array#Array#add on <var67:Array[String]>*/
3669 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
3670 var84
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
3671 if (unlikely(var84
== NULL
)) {
3672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3673 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
3677 RET_LABEL83
:(void)0;
3681 { /* Inline mmodule#MModule#in_importation (var82) on <var82:MModule> */
3682 var87
= var82
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var82:MModule> */
3683 if (unlikely(var87
== NULL
)) {
3684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
3685 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
3689 RET_LABEL86
:(void)0;
3693 var88
= poset__POSetElement__greaters(var85
);
3697 var90
= ((val
* (*)(val
*))(var_89
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_89
) /* iterator on <var_89:Collection[MModule]>*/;
3702 var92
= ((short int (*)(val
*))(var_91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_91
) /* is_ok on <var_91:Iterator[MModule]>*/;
3706 var93
= ((val
* (*)(val
*))(var_91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_91
) /* item on <var_91:Iterator[MModule]>*/;
3710 separate_compiler__SeparateCompiler__finalize_ffi_for_module(var_compiler
, var_m
); /* Direct call separate_compiler#SeparateCompiler#finalize_ffi_for_module on <var_compiler:AbstractCompiler>*/
3713 ((void (*)(val
*))(var_91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_91
) /* next on <var_91:Iterator[MModule]>*/;
3719 BREAK_label
: (void)0;
3721 { /* Inline abstract_collection#Iterator#finish (var_91) on <var_91:Iterator[MModule]> */
3722 RET_LABEL94
:(void)0;
3726 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3727 var97
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3728 if (unlikely(var97
== NULL
)) {
3729 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3730 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 904);
3734 RET_LABEL96
:(void)0;
3739 var99
= array__AbstractArrayRead__iterator(var_98
);
3744 var101
= array__ArrayIterator__is_ok(var_100
);
3748 var102
= array__ArrayIterator__item(var_100
);
3752 var104
= varonce103
;
3756 var107
= string__NativeString__to_s_with_length(var105
, var106
);
3758 varonce103
= var104
;
3761 var108
= file__String__basename(var_src
, var104
);
3763 var_basename
= var108
;
3765 var110
= varonce109
;
3769 var113
= string__NativeString__to_s_with_length(var111
, var112
);
3771 varonce109
= var110
;
3773 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
3774 { /* var114 = array_instance Array[Object] */
3776 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
3777 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var_compile_dir
;
3778 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
3779 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var_basename
;
3781 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
3785 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
3789 file__String__file_copy_to(var_src
, var_dst
); /* Direct call file#String#file_copy_to on <var_src:String>*/
3792 array__ArrayIterator__next(var_100
); /* Direct call array#ArrayIterator#next on <var_100:ArrayIterator[String]>*/
3795 goto BREAK_label118
;
3798 BREAK_label118
: (void)0;
3800 { /* Inline abstract_collection#Iterator#finish (var_100) on <var_100:ArrayIterator[String]> */
3801 RET_LABEL119
:(void)0;
3805 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3806 var122
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3807 if (unlikely(var122
== NULL
)) {
3808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3809 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
3813 RET_LABEL121
:(void)0;
3817 { /* Inline abstract_compiler#CodeWriter#file (var120) on <var120:CodeWriter> */
3818 var125
= var120
->attrs
[COLOR_abstract_compiler__CodeWriter___file
].val
; /* _file on <var120:CodeWriter> */
3819 if (unlikely(var125
== NULL
)) {
3820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
3821 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1018);
3825 RET_LABEL124
:(void)0;
3829 { /* Inline abstract_compiler#CodeFile#name (var123) on <var123:CodeFile> */
3830 var128
= var123
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var123:CodeFile> */
3831 if (unlikely(var128
== NULL
)) {
3832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3833 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1011);
3837 RET_LABEL127
:(void)0;
3841 var130
= varonce129
;
3845 var133
= string__NativeString__to_s_with_length(var131
, var132
);
3847 varonce129
= var130
;
3850 var134
= string__FlatString___43d(var126
, var130
);
3852 var_hfilename
= var134
;
3854 var136
= varonce135
;
3858 var139
= string__NativeString__to_s_with_length(var137
, var138
);
3860 varonce135
= var136
;
3862 var140
= NEW_array__Array(&type_array__Arraykernel__Object
);
3863 { /* var140 = array_instance Array[Object] */
3865 var142
= NEW_array__NativeArray(var141
, &type_array__NativeArraykernel__Object
);
3866 ((struct instance_array__NativeArray
*)var142
)->values
[0] = (val
*) var_compile_dir
;
3867 ((struct instance_array__NativeArray
*)var142
)->values
[1] = (val
*) var136
;
3868 ((struct instance_array__NativeArray
*)var142
)->values
[2] = (val
*) var_hfilename
;
3870 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_array__Array__with_native
]))(var140
, var142
, var141
) /* with_native on <var140:Array[Object]>*/;
3874 var143
= ((val
* (*)(val
*))(var140
->class->vft
[COLOR_string__Object__to_s
]))(var140
) /* to_s on <var140:Array[Object]>*/;
3876 var_hfilepath
= var143
;
3877 var144
= NEW_file__OFStream(&type_file__OFStream
);
3879 file__OFStream__open(var144
, var_hfilepath
); /* Direct call file#OFStream#open on <var144:OFStream>*/
3883 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3884 var147
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3885 if (unlikely(var147
== NULL
)) {
3886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3887 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
3891 RET_LABEL146
:(void)0;
3895 { /* Inline abstract_compiler#CodeWriter#decl_lines (var145) on <var145:CodeWriter> */
3896 var150
= var145
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var145:CodeWriter> */
3897 if (unlikely(var150
== NULL
)) {
3898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
3899 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1020);
3903 RET_LABEL149
:(void)0;
3908 var152
= list__List__iterator(var_151
);
3913 var154
= list__ListIterator__is_ok(var_153
);
3917 var155
= list__ListIterator__item(var_153
);
3921 file__OFStream__write(var_h
, var_l
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3924 var157
= varonce156
;
3928 var160
= string__NativeString__to_s_with_length(var158
, var159
);
3930 varonce156
= var157
;
3933 file__OFStream__write(var_h
, var157
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3936 list__ListIterator__next(var_153
); /* Direct call list#ListIterator#next on <var_153:ListIterator[String]>*/
3939 goto BREAK_label161
;
3942 BREAK_label161
: (void)0;
3944 { /* Inline abstract_collection#Iterator#finish (var_153) on <var_153:ListIterator[String]> */
3945 RET_LABEL162
:(void)0;
3949 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3950 var165
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3951 if (unlikely(var165
== NULL
)) {
3952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3953 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
3957 RET_LABEL164
:(void)0;
3961 { /* Inline abstract_compiler#CodeWriter#lines (var163) on <var163:CodeWriter> */
3962 var168
= var163
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var163:CodeWriter> */
3963 if (unlikely(var168
== NULL
)) {
3964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
3965 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1019);
3969 RET_LABEL167
:(void)0;
3974 var170
= list__List__iterator(var_169
);
3979 var172
= list__ListIterator__is_ok(var_171
);
3983 var173
= list__ListIterator__item(var_171
);
3987 file__OFStream__write(var_h
, var_l174
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3990 var176
= varonce175
;
3994 var179
= string__NativeString__to_s_with_length(var177
, var178
);
3996 varonce175
= var176
;
3999 file__OFStream__write(var_h
, var176
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
4002 list__ListIterator__next(var_171
); /* Direct call list#ListIterator#next on <var_171:ListIterator[String]>*/
4005 goto BREAK_label180
;
4008 BREAK_label180
: (void)0;
4010 { /* Inline abstract_collection#Iterator#finish (var_171) on <var_171:ListIterator[String]> */
4011 RET_LABEL181
:(void)0;
4015 file__OFStream__close(var_h
); /* Direct call file#OFStream#close on <var_h:OFStream>*/
4018 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4019 var184
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4020 if (unlikely(var184
== NULL
)) {
4021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4022 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
4026 RET_LABEL183
:(void)0;
4030 { /* Inline abstract_compiler#ToolContext#opt_max_c_lines (var182) on <var182:ToolContext> */
4031 var187
= var182
->attrs
[COLOR_abstract_compiler__ToolContext___opt_max_c_lines
].val
; /* _opt_max_c_lines on <var182:ToolContext> */
4032 if (unlikely(var187
== NULL
)) {
4033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_max_c_lines");
4034 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 41);
4038 RET_LABEL186
:(void)0;
4042 { /* Inline opts#Option#value (var185) on <var185:OptionInt> */
4043 var190
= var185
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var185:OptionInt> */
4045 RET_LABEL189
:(void)0;
4048 var191
= ((struct instance_kernel__Int
*)var188
)->value
; /* autounbox from nullable Object to Int */;
4049 var_max_c_lines
= var191
;
4051 { /* Inline abstract_compiler#AbstractCompiler#files (var_compiler) on <var_compiler:AbstractCompiler> */
4052 var194
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <var_compiler:AbstractCompiler> */
4053 if (unlikely(var194
== NULL
)) {
4054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
4055 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
4059 RET_LABEL193
:(void)0;
4064 var196
= list__List__iterator(var_195
);
4069 var198
= list__ListIterator__is_ok(var_197
);
4073 var199
= list__ListIterator__item(var_197
);
4083 { /* Inline abstract_compiler#CodeFile#writers (var_f) on <var_f:CodeFile> */
4084 var205
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___writers
].val
; /* _writers on <var_f:CodeFile> */
4085 if (unlikely(var205
== NULL
)) {
4086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writers");
4087 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1012);
4091 RET_LABEL204
:(void)0;
4096 var207
= array__AbstractArrayRead__iterator(var_206
);
4101 var209
= array__ArrayIterator__is_ok(var_208
);
4105 var210
= array__ArrayIterator__item(var_208
);
4109 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
4110 var213
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
4111 if (unlikely(var213
== NULL
)) {
4112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4113 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
4117 RET_LABEL212
:(void)0;
4121 { /* Inline kernel#Object#== (var_vis,var211) on <var_vis:CodeWriter> */
4124 { /* Inline kernel#Object#is_same_instance (var_vis,var_other) on <var_vis:CodeWriter> */
4125 var219
= var_vis
== var_other
;
4128 RET_LABEL218
:(void)0;
4133 RET_LABEL216
:(void)0;
4138 goto BREAK_label220
;
4142 { /* Inline abstract_compiler#CodeWriter#lines (var_vis) on <var_vis:CodeWriter> */
4143 var223
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var_vis:CodeWriter> */
4144 if (unlikely(var223
== NULL
)) {
4145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
4146 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1019);
4150 RET_LABEL222
:(void)0;
4154 var224
= list__List__length(var221
);
4157 { /* Inline abstract_compiler#CodeWriter#decl_lines (var_vis) on <var_vis:CodeWriter> */
4158 var227
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var_vis:CodeWriter> */
4159 if (unlikely(var227
== NULL
)) {
4160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
4161 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1020);
4165 RET_LABEL226
:(void)0;
4169 var228
= list__List__length(var225
);
4172 { /* Inline kernel#Int#+ (var224,var228) on <var224:Int> */
4173 /* Covariant cast for argument 0 (i) <var228:Int> isa OTHER */
4174 /* <var228:Int> isa OTHER */
4175 var231
= 1; /* easy <var228:Int> isa OTHER*/
4176 if (unlikely(!var231
)) {
4177 var_class_name
= type_kernel__Int
.name
;
4178 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4179 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4182 var232
= var224
+ var228
;
4185 RET_LABEL230
:(void)0;
4188 var_total_lines
= var229
;
4191 { /* Inline kernel#Int#== (var_total_lines,var233) on <var_total_lines:Int> */
4192 var237
= var_total_lines
== var233
;
4195 RET_LABEL236
:(void)0;
4200 goto BREAK_label220
;
4204 { /* Inline kernel#Int#+ (var_count,var_total_lines) on <var_count:Int> */
4205 /* Covariant cast for argument 0 (i) <var_total_lines:Int> isa OTHER */
4206 /* <var_total_lines:Int> isa OTHER */
4207 var240
= 1; /* easy <var_total_lines:Int> isa OTHER*/
4208 if (unlikely(!var240
)) {
4209 var_class_name243
= type_kernel__Int
.name
;
4210 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name243
);
4211 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4214 var244
= var_count
+ var_total_lines
;
4217 RET_LABEL239
:(void)0;
4222 if (var_file
== NULL
) {
4223 var247
= 1; /* is null */
4225 var247
= 0; /* arg is null but recv is not */
4228 { /* Inline kernel#Object#== (var_file,var246) on <var_file:nullable OFStream> */
4231 { /* Inline kernel#Object#is_same_instance (var_file,var_other) on <var_file:nullable OFStream(OFStream)> */
4232 var252
= var_file
== var_other
;
4235 RET_LABEL251
:(void)0;
4240 RET_LABEL249
:(void)0;
4249 { /* Inline kernel#Int#> (var_count,var_max_c_lines) on <var_count:Int> */
4250 /* Covariant cast for argument 0 (i) <var_max_c_lines:Int> isa OTHER */
4251 /* <var_max_c_lines:Int> isa OTHER */
4252 var257
= 1; /* easy <var_max_c_lines:Int> isa OTHER*/
4253 if (unlikely(!var257
)) {
4254 var_class_name260
= type_kernel__Int
.name
;
4255 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name260
);
4256 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
4259 var261
= var_count
> var_max_c_lines
;
4262 RET_LABEL256
:(void)0;
4269 { /* Inline kernel#Int#> (var_max_c_lines,var263) on <var_max_c_lines:Int> */
4270 /* Covariant cast for argument 0 (i) <var263:Int> isa OTHER */
4271 /* <var263:Int> isa OTHER */
4272 var266
= 1; /* easy <var263:Int> isa OTHER*/
4273 if (unlikely(!var266
)) {
4274 var_class_name269
= type_kernel__Int
.name
;
4275 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name269
);
4276 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
4279 var270
= var_max_c_lines
> var263
;
4282 RET_LABEL265
:(void)0;
4294 { /* Inline kernel#Int#+ (var_i,var271) on <var_i:Int> */
4295 /* Covariant cast for argument 0 (i) <var271:Int> isa OTHER */
4296 /* <var271:Int> isa OTHER */
4297 var274
= 1; /* easy <var271:Int> isa OTHER*/
4298 if (unlikely(!var274
)) {
4299 var_class_name277
= type_kernel__Int
.name
;
4300 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name277
);
4301 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4304 var278
= var_i
+ var271
;
4307 RET_LABEL273
:(void)0;
4312 if (var_file
== NULL
) {
4313 var280
= 0; /* is null */
4315 var280
= 1; /* arg is null and recv is not */
4318 { /* Inline kernel#Object#!= (var_file,var279) on <var_file:nullable OFStream> */
4319 var_other283
= var279
;
4321 var285
= ((short int (*)(val
*, val
*))(var_file
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_file
, var_other283
) /* == on <var_file:nullable OFStream(OFStream)>*/;
4327 RET_LABEL282
:(void)0;
4333 file__OFStream__close(var_file
); /* Direct call file#OFStream#close on <var_file:nullable OFStream(OFStream)>*/
4338 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
4339 var289
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
4340 if (unlikely(var289
== NULL
)) {
4341 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4342 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1011);
4346 RET_LABEL288
:(void)0;
4350 var291
= varonce290
;
4354 var294
= string__NativeString__to_s_with_length(var292
, var293
);
4356 varonce290
= var291
;
4359 var296
= varonce295
;
4363 var299
= string__NativeString__to_s_with_length(var297
, var298
);
4365 varonce295
= var296
;
4367 var300
= NEW_array__Array(&type_array__Arraykernel__Object
);
4368 { /* var300 = array_instance Array[Object] */
4370 var302
= NEW_array__NativeArray(var301
, &type_array__NativeArraykernel__Object
);
4371 ((struct instance_array__NativeArray
*)var302
)->values
[0] = (val
*) var287
;
4372 ((struct instance_array__NativeArray
*)var302
)->values
[1] = (val
*) var291
;
4373 var303
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
4374 ((struct instance_array__NativeArray
*)var302
)->values
[2] = (val
*) var303
;
4375 ((struct instance_array__NativeArray
*)var302
)->values
[3] = (val
*) var296
;
4377 ((void (*)(val
*, val
*, long))(var300
->class->vft
[COLOR_array__Array__with_native
]))(var300
, var302
, var301
) /* with_native on <var300:Array[Object]>*/;
4381 var304
= ((val
* (*)(val
*))(var300
->class->vft
[COLOR_string__Object__to_s
]))(var300
) /* to_s on <var300:Array[Object]>*/;
4383 var_cfilename
= var304
;
4385 var306
= varonce305
;
4389 var309
= string__NativeString__to_s_with_length(var307
, var308
);
4391 varonce305
= var306
;
4393 var310
= NEW_array__Array(&type_array__Arraykernel__Object
);
4394 { /* var310 = array_instance Array[Object] */
4396 var312
= NEW_array__NativeArray(var311
, &type_array__NativeArraykernel__Object
);
4397 ((struct instance_array__NativeArray
*)var312
)->values
[0] = (val
*) var_compile_dir
;
4398 ((struct instance_array__NativeArray
*)var312
)->values
[1] = (val
*) var306
;
4399 ((struct instance_array__NativeArray
*)var312
)->values
[2] = (val
*) var_cfilename
;
4401 ((void (*)(val
*, val
*, long))(var310
->class->vft
[COLOR_array__Array__with_native
]))(var310
, var312
, var311
) /* with_native on <var310:Array[Object]>*/;
4405 var313
= ((val
* (*)(val
*))(var310
->class->vft
[COLOR_string__Object__to_s
]))(var310
) /* to_s on <var310:Array[Object]>*/;
4407 var_cfilepath
= var313
;
4409 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4410 var316
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4411 if (unlikely(var316
== NULL
)) {
4412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4413 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
4417 RET_LABEL315
:(void)0;
4421 var318
= varonce317
;
4423 var319
= "new C source files to compile: ";
4425 var321
= string__NativeString__to_s_with_length(var319
, var320
);
4427 varonce317
= var318
;
4429 var322
= NEW_array__Array(&type_array__Arraykernel__Object
);
4430 { /* var322 = array_instance Array[Object] */
4432 var324
= NEW_array__NativeArray(var323
, &type_array__NativeArraykernel__Object
);
4433 ((struct instance_array__NativeArray
*)var324
)->values
[0] = (val
*) var318
;
4434 ((struct instance_array__NativeArray
*)var324
)->values
[1] = (val
*) var_cfilepath
;
4436 ((void (*)(val
*, val
*, long))(var322
->class->vft
[COLOR_array__Array__with_native
]))(var322
, var324
, var323
) /* with_native on <var322:Array[Object]>*/;
4440 var325
= ((val
* (*)(val
*))(var322
->class->vft
[COLOR_string__Object__to_s
]))(var322
) /* to_s on <var322:Array[Object]>*/;
4444 toolcontext__ToolContext__info(var314
, var325
, var326
); /* Direct call toolcontext#ToolContext#info on <var314:ToolContext>*/
4447 array__Array__add(var_cfiles
, var_cfilename
); /* Direct call array#Array#add on <var_cfiles:Array[String]>*/
4449 var327
= NEW_file__OFStream(&type_file__OFStream
);
4451 file__OFStream__open(var327
, var_cfilepath
); /* Direct call file#OFStream#open on <var327:OFStream>*/
4455 var329
= varonce328
;
4457 var330
= "#include \"";
4459 var332
= string__NativeString__to_s_with_length(var330
, var331
);
4461 varonce328
= var329
;
4464 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
4465 var335
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
4466 if (unlikely(var335
== NULL
)) {
4467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4468 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1011);
4472 RET_LABEL334
:(void)0;
4476 var337
= varonce336
;
4478 var338
= ".0.h\"\n";
4480 var340
= string__NativeString__to_s_with_length(var338
, var339
);
4482 varonce336
= var337
;
4484 var341
= NEW_array__Array(&type_array__Arraykernel__Object
);
4485 { /* var341 = array_instance Array[Object] */
4487 var343
= NEW_array__NativeArray(var342
, &type_array__NativeArraykernel__Object
);
4488 ((struct instance_array__NativeArray
*)var343
)->values
[0] = (val
*) var329
;
4489 ((struct instance_array__NativeArray
*)var343
)->values
[1] = (val
*) var333
;
4490 ((struct instance_array__NativeArray
*)var343
)->values
[2] = (val
*) var337
;
4492 ((void (*)(val
*, val
*, long))(var341
->class->vft
[COLOR_array__Array__with_native
]))(var341
, var343
, var342
) /* with_native on <var341:Array[Object]>*/;
4496 var344
= ((val
* (*)(val
*))(var341
->class->vft
[COLOR_string__Object__to_s
]))(var341
) /* to_s on <var341:Array[Object]>*/;
4499 file__OFStream__write(var_file
, var344
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4501 var_count
= var_total_lines
;
4505 { /* Inline abstract_compiler#CodeWriter#decl_lines (var_vis) on <var_vis:CodeWriter> */
4506 var347
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var_vis:CodeWriter> */
4507 if (unlikely(var347
== NULL
)) {
4508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
4509 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1020);
4513 RET_LABEL346
:(void)0;
4518 var349
= list__List__iterator(var_348
);
4523 var351
= list__ListIterator__is_ok(var_350
);
4527 var352
= list__ListIterator__item(var_350
);
4531 file__OFStream__write(var_file
, var_l353
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4534 var355
= varonce354
;
4538 var358
= string__NativeString__to_s_with_length(var356
, var357
);
4540 varonce354
= var355
;
4543 file__OFStream__write(var_file
, var355
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4546 list__ListIterator__next(var_350
); /* Direct call list#ListIterator#next on <var_350:ListIterator[String]>*/
4549 goto BREAK_label359
;
4552 BREAK_label359
: (void)0;
4554 { /* Inline abstract_collection#Iterator#finish (var_350) on <var_350:ListIterator[String]> */
4555 RET_LABEL360
:(void)0;
4559 { /* Inline abstract_compiler#CodeWriter#lines (var_vis) on <var_vis:CodeWriter> */
4560 var363
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var_vis:CodeWriter> */
4561 if (unlikely(var363
== NULL
)) {
4562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
4563 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1019);
4567 RET_LABEL362
:(void)0;
4572 var365
= list__List__iterator(var_364
);
4577 var367
= list__ListIterator__is_ok(var_366
);
4581 var368
= list__ListIterator__item(var_366
);
4585 file__OFStream__write(var_file
, var_l369
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4588 var371
= varonce370
;
4592 var374
= string__NativeString__to_s_with_length(var372
, var373
);
4594 varonce370
= var371
;
4597 file__OFStream__write(var_file
, var371
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4600 list__ListIterator__next(var_366
); /* Direct call list#ListIterator#next on <var_366:ListIterator[String]>*/
4603 goto BREAK_label375
;
4606 BREAK_label375
: (void)0;
4608 { /* Inline abstract_collection#Iterator#finish (var_366) on <var_366:ListIterator[String]> */
4609 RET_LABEL376
:(void)0;
4612 BREAK_label220
: (void)0;
4614 array__ArrayIterator__next(var_208
); /* Direct call array#ArrayIterator#next on <var_208:ArrayIterator[CodeWriter]>*/
4617 goto BREAK_label377
;
4620 BREAK_label377
: (void)0;
4622 { /* Inline abstract_collection#Iterator#finish (var_208) on <var_208:ArrayIterator[CodeWriter]> */
4623 RET_LABEL378
:(void)0;
4627 if (var_file
== NULL
) {
4628 var380
= 1; /* is null */
4630 var380
= 0; /* arg is null but recv is not */
4633 { /* Inline kernel#Object#== (var_file,var379) on <var_file:nullable OFStream> */
4636 { /* Inline kernel#Object#is_same_instance (var_file,var_other) on <var_file:nullable OFStream(OFStream)> */
4637 var385
= var_file
== var_other
;
4640 RET_LABEL384
:(void)0;
4645 RET_LABEL382
:(void)0;
4650 goto BREAK_label386
;
4654 file__OFStream__close(var_file
); /* Direct call file#OFStream#close on <var_file:nullable OFStream(OFStream)>*/
4657 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
4658 var389
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
4659 if (unlikely(var389
== NULL
)) {
4660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4661 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1011);
4665 RET_LABEL388
:(void)0;
4669 var391
= varonce390
;
4673 var394
= string__NativeString__to_s_with_length(var392
, var393
);
4675 varonce390
= var391
;
4677 var395
= NEW_array__Array(&type_array__Arraykernel__Object
);
4678 { /* var395 = array_instance Array[Object] */
4680 var397
= NEW_array__NativeArray(var396
, &type_array__NativeArraykernel__Object
);
4681 ((struct instance_array__NativeArray
*)var397
)->values
[0] = (val
*) var387
;
4682 ((struct instance_array__NativeArray
*)var397
)->values
[1] = (val
*) var391
;
4684 ((void (*)(val
*, val
*, long))(var395
->class->vft
[COLOR_array__Array__with_native
]))(var395
, var397
, var396
) /* with_native on <var395:Array[Object]>*/;
4688 var398
= ((val
* (*)(val
*))(var395
->class->vft
[COLOR_string__Object__to_s
]))(var395
) /* to_s on <var395:Array[Object]>*/;
4690 var_cfilename399
= var398
;
4692 var401
= varonce400
;
4696 var404
= string__NativeString__to_s_with_length(var402
, var403
);
4698 varonce400
= var401
;
4700 var405
= NEW_array__Array(&type_array__Arraykernel__Object
);
4701 { /* var405 = array_instance Array[Object] */
4703 var407
= NEW_array__NativeArray(var406
, &type_array__NativeArraykernel__Object
);
4704 ((struct instance_array__NativeArray
*)var407
)->values
[0] = (val
*) var_compile_dir
;
4705 ((struct instance_array__NativeArray
*)var407
)->values
[1] = (val
*) var401
;
4706 ((struct instance_array__NativeArray
*)var407
)->values
[2] = (val
*) var_cfilename399
;
4708 ((void (*)(val
*, val
*, long))(var405
->class->vft
[COLOR_array__Array__with_native
]))(var405
, var407
, var406
) /* with_native on <var405:Array[Object]>*/;
4712 var408
= ((val
* (*)(val
*))(var405
->class->vft
[COLOR_string__Object__to_s
]))(var405
) /* to_s on <var405:Array[Object]>*/;
4714 var_cfilepath409
= var408
;
4717 var411
= NEW_file__OFStream(&type_file__OFStream
);
4719 file__OFStream__open(var411
, var_cfilepath409
); /* Direct call file#OFStream#open on <var411:OFStream>*/
4723 var413
= varonce412
;
4725 var414
= "#include \"";
4727 var416
= string__NativeString__to_s_with_length(var414
, var415
);
4729 varonce412
= var413
;
4732 var418
= varonce417
;
4736 var421
= string__NativeString__to_s_with_length(var419
, var420
);
4738 varonce417
= var418
;
4740 var422
= NEW_array__Array(&type_array__Arraykernel__Object
);
4741 { /* var422 = array_instance Array[Object] */
4743 var424
= NEW_array__NativeArray(var423
, &type_array__NativeArraykernel__Object
);
4744 ((struct instance_array__NativeArray
*)var424
)->values
[0] = (val
*) var413
;
4745 ((struct instance_array__NativeArray
*)var424
)->values
[1] = (val
*) var_hfilename
;
4746 ((struct instance_array__NativeArray
*)var424
)->values
[2] = (val
*) var418
;
4748 ((void (*)(val
*, val
*, long))(var422
->class->vft
[COLOR_array__Array__with_native
]))(var422
, var424
, var423
) /* with_native on <var422:Array[Object]>*/;
4752 var425
= ((val
* (*)(val
*))(var422
->class->vft
[COLOR_string__Object__to_s
]))(var422
) /* to_s on <var422:Array[Object]>*/;
4755 file__OFStream__write(var_hfile
, var425
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
4758 { /* Inline abstract_compiler#CodeFile#required_declarations (var_f) on <var_f:CodeFile> */
4759 var428
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___required_declarations
].val
; /* _required_declarations on <var_f:CodeFile> */
4760 if (unlikely(var428
== NULL
)) {
4761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
4762 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1013);
4766 RET_LABEL427
:(void)0;
4771 var430
= hash_collection__HashSet__iterator(var_429
);
4776 var432
= ((short int (*)(val
*))(var_431
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_431
) /* is_ok on <var_431:Iterator[String]>*/;
4780 var433
= ((val
* (*)(val
*))(var_431
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_431
) /* item on <var_431:Iterator[String]>*/;
4784 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
4785 var436
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <var_compiler:AbstractCompiler> */
4786 if (unlikely(var436
== NULL
)) {
4787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
4788 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
4792 RET_LABEL435
:(void)0;
4796 var437
= abstract_collection__MapRead__has_key(var434
, var_key
);
4801 { /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
4802 var441
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <var_compiler:AbstractCompiler> */
4803 if (unlikely(var441
== NULL
)) {
4804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
4805 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 520);
4809 RET_LABEL440
:(void)0;
4813 var442
= abstract_collection__MapRead__get_or_null(var439
, var_key
);
4817 if (var_node
== NULL
) {
4818 var444
= 0; /* is null */
4820 var444
= 1; /* arg is null and recv is not */
4823 { /* Inline kernel#Object#!= (var_node,var443) on <var_node:nullable ANode> */
4824 var_other283
= var443
;
4826 var448
= ((short int (*)(val
*, val
*))(var_node
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_node
, var_other283
) /* == on <var_node:nullable ANode(ANode)>*/;
4832 RET_LABEL446
:(void)0;
4838 var451
= varonce450
;
4840 var452
= "No provided declaration for ";
4842 var454
= string__NativeString__to_s_with_length(var452
, var453
);
4844 varonce450
= var451
;
4846 var455
= NEW_array__Array(&type_array__Arraykernel__Object
);
4847 { /* var455 = array_instance Array[Object] */
4849 var457
= NEW_array__NativeArray(var456
, &type_array__NativeArraykernel__Object
);
4850 ((struct instance_array__NativeArray
*)var457
)->values
[0] = (val
*) var451
;
4851 ((struct instance_array__NativeArray
*)var457
)->values
[1] = (val
*) var_key
;
4853 ((void (*)(val
*, val
*, long))(var455
->class->vft
[COLOR_array__Array__with_native
]))(var455
, var457
, var456
) /* with_native on <var455:Array[Object]>*/;
4857 var458
= ((val
* (*)(val
*))(var455
->class->vft
[COLOR_string__Object__to_s
]))(var455
) /* to_s on <var455:Array[Object]>*/;
4860 parser_nodes__ANode__debug(var_node
, var458
); /* Direct call parser_nodes#ANode#debug on <var_node:nullable ANode(ANode)>*/
4864 var460
= varonce459
;
4866 var461
= "No provided declaration for ";
4868 var463
= string__NativeString__to_s_with_length(var461
, var462
);
4870 varonce459
= var460
;
4872 var464
= NEW_array__Array(&type_array__Arraykernel__Object
);
4873 { /* var464 = array_instance Array[Object] */
4875 var466
= NEW_array__NativeArray(var465
, &type_array__NativeArraykernel__Object
);
4876 ((struct instance_array__NativeArray
*)var466
)->values
[0] = (val
*) var460
;
4877 ((struct instance_array__NativeArray
*)var466
)->values
[1] = (val
*) var_key
;
4879 ((void (*)(val
*, val
*, long))(var464
->class->vft
[COLOR_array__Array__with_native
]))(var464
, var466
, var465
) /* with_native on <var464:Array[Object]>*/;
4883 var467
= ((val
* (*)(val
*))(var464
->class->vft
[COLOR_string__Object__to_s
]))(var464
) /* to_s on <var464:Array[Object]>*/;
4886 file__Object__print(self
, var467
); /* Direct call file#Object#print on <self:MakefileToolchain>*/
4889 PRINT_ERROR("Runtime error: %s", "Aborted");
4890 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 308);
4895 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
4896 var470
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <var_compiler:AbstractCompiler> */
4897 if (unlikely(var470
== NULL
)) {
4898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
4899 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
4903 RET_LABEL469
:(void)0;
4907 var471
= hash_collection__HashMap___91d_93d(var468
, var_key
);
4910 file__OFStream__write(var_hfile
, var471
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
4913 var473
= varonce472
;
4917 var476
= string__NativeString__to_s_with_length(var474
, var475
);
4919 varonce472
= var473
;
4922 file__OFStream__write(var_hfile
, var473
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
4925 ((void (*)(val
*))(var_431
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_431
) /* next on <var_431:Iterator[String]>*/;
4928 goto BREAK_label477
;
4931 BREAK_label477
: (void)0;
4933 { /* Inline abstract_collection#Iterator#finish (var_431) on <var_431:Iterator[String]> */
4934 RET_LABEL478
:(void)0;
4938 file__OFStream__close(var_hfile
); /* Direct call file#OFStream#close on <var_hfile:nullable OFStream(OFStream)>*/
4940 BREAK_label386
: (void)0;
4942 list__ListIterator__next(var_197
); /* Direct call list#ListIterator#next on <var_197:ListIterator[CodeFile]>*/
4945 goto BREAK_label479
;
4948 BREAK_label479
: (void)0;
4950 { /* Inline abstract_collection#Iterator#finish (var_197) on <var_197:ListIterator[CodeFile]> */
4951 RET_LABEL480
:(void)0;
4955 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4956 var483
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4957 if (unlikely(var483
== NULL
)) {
4958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4959 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
4963 RET_LABEL482
:(void)0;
4967 var485
= varonce484
;
4969 var486
= "Total C source files to compile: ";
4971 var488
= string__NativeString__to_s_with_length(var486
, var487
);
4973 varonce484
= var485
;
4976 { /* Inline array#AbstractArrayRead#length (var_cfiles) on <var_cfiles:Array[String]> */
4977 var491
= var_cfiles
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_cfiles:Array[String]> */
4979 RET_LABEL490
:(void)0;
4982 var492
= NEW_array__Array(&type_array__Arraykernel__Object
);
4983 { /* var492 = array_instance Array[Object] */
4985 var494
= NEW_array__NativeArray(var493
, &type_array__NativeArraykernel__Object
);
4986 ((struct instance_array__NativeArray
*)var494
)->values
[0] = (val
*) var485
;
4987 var495
= BOX_kernel__Int(var489
); /* autobox from Int to Object */
4988 ((struct instance_array__NativeArray
*)var494
)->values
[1] = (val
*) var495
;
4990 ((void (*)(val
*, val
*, long))(var492
->class->vft
[COLOR_array__Array__with_native
]))(var492
, var494
, var493
) /* with_native on <var492:Array[Object]>*/;
4994 var496
= ((val
* (*)(val
*))(var492
->class->vft
[COLOR_string__Object__to_s
]))(var492
) /* to_s on <var492:Array[Object]>*/;
4998 toolcontext__ToolContext__info(var481
, var496
, var497
); /* Direct call toolcontext#ToolContext#info on <var481:ToolContext>*/
5002 /* method abstract_compiler#MakefileToolchain#write_files for (self: Object, AbstractCompiler, String, Array[String]) */
5003 void VIRTUAL_abstract_compiler__MakefileToolchain__write_files(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5004 abstract_compiler__MakefileToolchain__write_files(self
, p0
, p1
, p2
); /* Direct call abstract_compiler#MakefileToolchain#write_files on <self:Object(MakefileToolchain)>*/
5007 /* method abstract_compiler#MakefileToolchain#makefile_name for (self: MakefileToolchain, MModule): String */
5008 val
* abstract_compiler__MakefileToolchain__makefile_name(val
* self
, val
* p0
) {
5009 val
* var
/* : String */;
5010 val
* var_mainmodule
/* var mainmodule: MModule */;
5011 val
* var1
/* : String */;
5012 val
* var3
/* : String */;
5013 static val
* varonce
;
5014 val
* var4
/* : String */;
5015 char* var5
/* : NativeString */;
5016 long var6
/* : Int */;
5017 val
* var7
/* : FlatString */;
5018 val
* var8
/* : Array[Object] */;
5019 long var9
/* : Int */;
5020 val
* var10
/* : NativeArray[Object] */;
5021 val
* var11
/* : String */;
5022 var_mainmodule
= p0
;
5024 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
5025 var3
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
5026 if (unlikely(var3
== NULL
)) {
5027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5028 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
5040 var7
= string__NativeString__to_s_with_length(var5
, var6
);
5044 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
5045 { /* var8 = array_instance Array[Object] */
5047 var10
= NEW_array__NativeArray(var9
, &type_array__NativeArraykernel__Object
);
5048 ((struct instance_array__NativeArray
*)var10
)->values
[0] = (val
*) var1
;
5049 ((struct instance_array__NativeArray
*)var10
)->values
[1] = (val
*) var4
;
5051 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_array__Array__with_native
]))(var8
, var10
, var9
) /* with_native on <var8:Array[Object]>*/;
5055 var11
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_string__Object__to_s
]))(var8
) /* to_s on <var8:Array[Object]>*/;
5062 /* method abstract_compiler#MakefileToolchain#makefile_name for (self: Object, MModule): String */
5063 val
* VIRTUAL_abstract_compiler__MakefileToolchain__makefile_name(val
* self
, val
* p0
) {
5064 val
* var
/* : String */;
5065 val
* var1
/* : String */;
5066 var1
= abstract_compiler__MakefileToolchain__makefile_name(self
, p0
);
5071 /* method abstract_compiler#MakefileToolchain#default_outname for (self: MakefileToolchain, MModule): String */
5072 val
* abstract_compiler__MakefileToolchain__default_outname(val
* self
, val
* p0
) {
5073 val
* var
/* : String */;
5074 val
* var_mainmodule
/* var mainmodule: MModule */;
5075 val
* var1
/* : String */;
5076 val
* var3
/* : String */;
5077 val
* var_res
/* var res: String */;
5078 short int var4
/* : Bool */;
5079 short int var6
/* : Bool */;
5080 val
* var7
/* : POSetElement[MModule] */;
5081 val
* var9
/* : POSetElement[MModule] */;
5082 val
* var10
/* : Collection[Object] */;
5083 val
* var11
/* : nullable Object */;
5084 val
* var12
/* : String */;
5085 val
* var14
/* : String */;
5086 var_mainmodule
= p0
;
5088 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
5089 var3
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
5090 if (unlikely(var3
== NULL
)) {
5091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5092 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
5102 { /* Inline mmodule#MModule#is_fictive (var_mainmodule) on <var_mainmodule:MModule> */
5103 var6
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___is_fictive
].s
; /* _is_fictive on <var_mainmodule:MModule> */
5110 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
5111 var9
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
5112 if (unlikely(var9
== NULL
)) {
5113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5114 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
5122 var10
= poset__POSetElement__direct_greaters(var7
);
5125 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var10
) /* first on <var10:Collection[Object](Collection[MModule])>*/;
5127 var_mainmodule
= var11
;
5129 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
5130 var14
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
5131 if (unlikely(var14
== NULL
)) {
5132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5133 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
5137 RET_LABEL13
:(void)0;
5145 BREAK_label
: (void)0;
5151 /* method abstract_compiler#MakefileToolchain#default_outname for (self: Object, MModule): String */
5152 val
* VIRTUAL_abstract_compiler__MakefileToolchain__default_outname(val
* self
, val
* p0
) {
5153 val
* var
/* : String */;
5154 val
* var1
/* : String */;
5155 var1
= abstract_compiler__MakefileToolchain__default_outname(self
, p0
);
5160 /* method abstract_compiler#MakefileToolchain#outfile for (self: MakefileToolchain, MModule): String */
5161 val
* abstract_compiler__MakefileToolchain__outfile(val
* self
, val
* p0
) {
5162 val
* var
/* : String */;
5163 val
* var_mainmodule
/* var mainmodule: MModule */;
5164 val
* var1
/* : ToolContext */;
5165 val
* var3
/* : ToolContext */;
5166 val
* var4
/* : OptionString */;
5167 val
* var6
/* : OptionString */;
5168 val
* var7
/* : nullable Object */;
5169 val
* var9
/* : nullable Object */;
5170 val
* var_res
/* var res: nullable String */;
5171 val
* var10
/* : null */;
5172 short int var11
/* : Bool */;
5173 short int var12
/* : Bool */;
5174 val
* var_other
/* var other: nullable Object */;
5175 short int var14
/* : Bool */;
5176 short int var15
/* : Bool */;
5177 short int var16
/* : Bool */;
5178 val
* var17
/* : String */;
5179 val
* var18
/* : ToolContext */;
5180 val
* var20
/* : ToolContext */;
5181 val
* var21
/* : OptionString */;
5182 val
* var23
/* : OptionString */;
5183 val
* var24
/* : nullable Object */;
5184 val
* var26
/* : nullable Object */;
5185 val
* var_dir
/* var dir: nullable String */;
5186 val
* var27
/* : null */;
5187 short int var28
/* : Bool */;
5188 short int var29
/* : Bool */;
5189 short int var31
/* : Bool */;
5190 short int var32
/* : Bool */;
5191 short int var33
/* : Bool */;
5192 val
* var34
/* : String */;
5193 var_mainmodule
= p0
;
5195 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
5196 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
5197 if (unlikely(var3
== NULL
)) {
5198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5199 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
5207 { /* Inline abstract_compiler#ToolContext#opt_output (var1) on <var1:ToolContext> */
5208 var6
= var1
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <var1:ToolContext> */
5209 if (unlikely(var6
== NULL
)) {
5210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
5211 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 29);
5219 { /* Inline opts#Option#value (var4) on <var4:OptionString> */
5220 var9
= var4
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var4:OptionString> */
5227 if (var_res
== NULL
) {
5228 var11
= 0; /* is null */
5230 var11
= 1; /* arg is null and recv is not */
5233 { /* Inline kernel#Object#!= (var_res,var10) on <var_res:nullable String> */
5236 var15
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable String(String)>*/;
5242 RET_LABEL13
:(void)0;
5252 var17
= abstract_compiler__MakefileToolchain__default_outname(self
, var_mainmodule
);
5256 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
5257 var20
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
5258 if (unlikely(var20
== NULL
)) {
5259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5260 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
5264 RET_LABEL19
:(void)0;
5268 { /* Inline abstract_compiler#ToolContext#opt_dir (var18) on <var18:ToolContext> */
5269 var23
= var18
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <var18:ToolContext> */
5270 if (unlikely(var23
== NULL
)) {
5271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
5272 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 31);
5276 RET_LABEL22
:(void)0;
5280 { /* Inline opts#Option#value (var21) on <var21:OptionString> */
5281 var26
= var21
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var21:OptionString> */
5283 RET_LABEL25
:(void)0;
5288 if (var_dir
== NULL
) {
5289 var28
= 0; /* is null */
5291 var28
= 1; /* arg is null and recv is not */
5294 { /* Inline kernel#Object#!= (var_dir,var27) on <var_dir:nullable String> */
5297 var32
= ((short int (*)(val
*, val
*))(var_dir
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_dir
, var_other
) /* == on <var_dir:nullable String(String)>*/;
5303 RET_LABEL30
:(void)0;
5309 var34
= file__String__join_path(var_dir
, var_res
);
5320 /* method abstract_compiler#MakefileToolchain#outfile for (self: Object, MModule): String */
5321 val
* VIRTUAL_abstract_compiler__MakefileToolchain__outfile(val
* self
, val
* p0
) {
5322 val
* var
/* : String */;
5323 val
* var1
/* : String */;
5324 var1
= abstract_compiler__MakefileToolchain__outfile(self
, p0
);
5329 /* method abstract_compiler#MakefileToolchain#write_makefile for (self: MakefileToolchain, AbstractCompiler, String, Array[String]) */
5330 void abstract_compiler__MakefileToolchain__write_makefile(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5331 val
* var_compiler
/* var compiler: AbstractCompiler */;
5332 val
* var_compile_dir
/* var compile_dir: String */;
5333 val
* var_cfiles
/* var cfiles: Array[String] */;
5334 val
* var
/* : MModule */;
5335 val
* var2
/* : MModule */;
5336 val
* var_mainmodule
/* var mainmodule: MModule */;
5337 val
* var3
/* : MModule */;
5338 val
* var5
/* : MModule */;
5339 val
* var6
/* : nullable Platform */;
5340 val
* var_platform
/* var platform: nullable Platform */;
5341 val
* var7
/* : String */;
5342 val
* var_outname
/* var outname: String */;
5343 val
* var8
/* : String */;
5344 val
* var_outpath
/* var outpath: String */;
5345 val
* var9
/* : String */;
5346 val
* var_makename
/* var makename: String */;
5347 static val
* varonce
;
5348 val
* var10
/* : String */;
5349 char* var11
/* : NativeString */;
5350 long var12
/* : Int */;
5351 val
* var13
/* : FlatString */;
5352 val
* var14
/* : Array[Object] */;
5353 long var15
/* : Int */;
5354 val
* var16
/* : NativeArray[Object] */;
5355 val
* var17
/* : String */;
5356 val
* var_makepath
/* var makepath: String */;
5357 val
* var18
/* : OFStream */;
5358 val
* var_makefile
/* var makefile: OFStream */;
5359 static val
* varonce19
;
5360 val
* var20
/* : String */;
5361 char* var21
/* : NativeString */;
5362 long var22
/* : Int */;
5363 val
* var23
/* : FlatString */;
5364 val
* var_cc_includes
/* var cc_includes: String */;
5365 val
* var24
/* : Array[String] */;
5366 val
* var26
/* : Array[String] */;
5367 val
* var_
/* var : Array[String] */;
5368 val
* var27
/* : ArrayIterator[nullable Object] */;
5369 val
* var_28
/* var : ArrayIterator[String] */;
5370 short int var29
/* : Bool */;
5371 val
* var30
/* : nullable Object */;
5372 val
* var_p
/* var p: String */;
5373 static val
* varonce31
;
5374 val
* var32
/* : String */;
5375 char* var33
/* : NativeString */;
5376 long var34
/* : Int */;
5377 val
* var35
/* : FlatString */;
5378 val
* var36
/* : String */;
5379 static val
* varonce37
;
5380 val
* var38
/* : String */;
5381 char* var39
/* : NativeString */;
5382 long var40
/* : Int */;
5383 val
* var41
/* : FlatString */;
5384 val
* var42
/* : String */;
5385 val
* var43
/* : String */;
5386 val
* var45
/* : HashSet[String] */;
5387 val
* var_linker_options
/* var linker_options: HashSet[String] */;
5388 val
* var46
/* : POSetElement[MModule] */;
5389 val
* var48
/* : POSetElement[MModule] */;
5390 val
* var49
/* : Collection[Object] */;
5391 val
* var_50
/* var : Collection[MModule] */;
5392 val
* var51
/* : Iterator[nullable Object] */;
5393 val
* var_52
/* var : Iterator[MModule] */;
5394 short int var53
/* : Bool */;
5395 val
* var54
/* : nullable Object */;
5396 val
* var_m
/* var m: MModule */;
5397 val
* var55
/* : nullable Set[String] */;
5398 val
* var_libs
/* var libs: nullable Set[String] */;
5399 val
* var56
/* : null */;
5400 short int var57
/* : Bool */;
5401 short int var58
/* : Bool */;
5402 val
* var_other
/* var other: nullable Object */;
5403 short int var60
/* : Bool */;
5404 short int var61
/* : Bool */;
5405 short int var62
/* : Bool */;
5406 static val
* varonce65
;
5407 val
* var66
/* : String */;
5408 char* var67
/* : NativeString */;
5409 long var68
/* : Int */;
5410 val
* var69
/* : FlatString */;
5411 static val
* varonce70
;
5412 val
* var71
/* : String */;
5413 char* var72
/* : NativeString */;
5414 long var73
/* : Int */;
5415 val
* var74
/* : FlatString */;
5416 static val
* varonce75
;
5417 val
* var76
/* : String */;
5418 char* var77
/* : NativeString */;
5419 long var78
/* : Int */;
5420 val
* var79
/* : FlatString */;
5421 val
* var80
/* : String */;
5422 static val
* varonce81
;
5423 val
* var82
/* : String */;
5424 char* var83
/* : NativeString */;
5425 long var84
/* : Int */;
5426 val
* var85
/* : FlatString */;
5427 val
* var86
/* : Array[Object] */;
5428 long var87
/* : Int */;
5429 val
* var88
/* : NativeArray[Object] */;
5430 val
* var89
/* : String */;
5431 val
* var90
/* : ToolContext */;
5432 val
* var92
/* : ToolContext */;
5433 val
* var93
/* : OptionString */;
5434 val
* var95
/* : OptionString */;
5435 val
* var96
/* : nullable Object */;
5436 val
* var98
/* : nullable Object */;
5437 val
* var_ost
/* var ost: nullable String */;
5438 short int var99
/* : Bool */;
5439 short int var100
/* : Bool */;
5440 static val
* varonce101
;
5441 val
* var102
/* : String */;
5442 char* var103
/* : NativeString */;
5443 long var104
/* : Int */;
5444 val
* var105
/* : FlatString */;
5445 short int var106
/* : Bool */;
5446 short int var107
/* : Bool */;
5447 short int var_108
/* var : Bool */;
5448 static val
* varonce109
;
5449 val
* var110
/* : String */;
5450 char* var111
/* : NativeString */;
5451 long var112
/* : Int */;
5452 val
* var113
/* : FlatString */;
5453 short int var114
/* : Bool */;
5454 short int var115
/* : Bool */;
5455 short int var_116
/* var : Bool */;
5456 short int var117
/* : Bool */;
5457 val
* var118
/* : null */;
5458 short int var119
/* : Bool */;
5459 short int var120
/* : Bool */;
5460 short int var_121
/* var : Bool */;
5461 short int var122
/* : Bool */;
5462 static val
* varonce123
;
5463 val
* var124
/* : String */;
5464 char* var125
/* : NativeString */;
5465 long var126
/* : Int */;
5466 val
* var127
/* : FlatString */;
5467 static val
* varonce128
;
5468 val
* var129
/* : String */;
5469 char* var130
/* : NativeString */;
5470 long var131
/* : Int */;
5471 val
* var132
/* : FlatString */;
5472 static val
* varonce133
;
5473 val
* var134
/* : String */;
5474 char* var135
/* : NativeString */;
5475 long var136
/* : Int */;
5476 val
* var137
/* : FlatString */;
5477 static val
* varonce138
;
5478 val
* var139
/* : String */;
5479 char* var140
/* : NativeString */;
5480 long var141
/* : Int */;
5481 val
* var142
/* : FlatString */;
5482 static val
* varonce143
;
5483 val
* var144
/* : String */;
5484 char* var145
/* : NativeString */;
5485 long var146
/* : Int */;
5486 val
* var147
/* : FlatString */;
5487 static val
* varonce148
;
5488 val
* var149
/* : String */;
5489 char* var150
/* : NativeString */;
5490 long var151
/* : Int */;
5491 val
* var152
/* : FlatString */;
5492 static val
* varonce153
;
5493 val
* var154
/* : String */;
5494 char* var155
/* : NativeString */;
5495 long var156
/* : Int */;
5496 val
* var157
/* : FlatString */;
5497 static val
* varonce158
;
5498 val
* var159
/* : String */;
5499 char* var160
/* : NativeString */;
5500 long var161
/* : Int */;
5501 val
* var162
/* : FlatString */;
5502 static val
* varonce163
;
5503 val
* var164
/* : String */;
5504 char* var165
/* : NativeString */;
5505 long var166
/* : Int */;
5506 val
* var167
/* : FlatString */;
5507 val
* var168
/* : Array[Object] */;
5508 long var169
/* : Int */;
5509 val
* var170
/* : NativeArray[Object] */;
5510 val
* var171
/* : String */;
5511 val
* var172
/* : Array[String] */;
5512 val
* var_ofiles
/* var ofiles: Array[String] */;
5513 val
* var173
/* : Array[String] */;
5514 val
* var_dep_rules
/* var dep_rules: Array[String] */;
5515 val
* var_174
/* var : Array[String] */;
5516 val
* var175
/* : ArrayIterator[nullable Object] */;
5517 val
* var_176
/* var : ArrayIterator[String] */;
5518 short int var177
/* : Bool */;
5519 val
* var178
/* : nullable Object */;
5520 val
* var_f
/* var f: String */;
5521 static val
* varonce179
;
5522 val
* var180
/* : String */;
5523 char* var181
/* : NativeString */;
5524 long var182
/* : Int */;
5525 val
* var183
/* : FlatString */;
5526 val
* var184
/* : String */;
5527 static val
* varonce185
;
5528 val
* var186
/* : String */;
5529 char* var187
/* : NativeString */;
5530 long var188
/* : Int */;
5531 val
* var189
/* : FlatString */;
5532 val
* var190
/* : String */;
5533 val
* var_o
/* var o: String */;
5534 static val
* varonce191
;
5535 val
* var192
/* : String */;
5536 char* var193
/* : NativeString */;
5537 long var194
/* : Int */;
5538 val
* var195
/* : FlatString */;
5539 static val
* varonce196
;
5540 val
* var197
/* : String */;
5541 char* var198
/* : NativeString */;
5542 long var199
/* : Int */;
5543 val
* var200
/* : FlatString */;
5544 static val
* varonce201
;
5545 val
* var202
/* : String */;
5546 char* var203
/* : NativeString */;
5547 long var204
/* : Int */;
5548 val
* var205
/* : FlatString */;
5549 static val
* varonce206
;
5550 val
* var207
/* : String */;
5551 char* var208
/* : NativeString */;
5552 long var209
/* : Int */;
5553 val
* var210
/* : FlatString */;
5554 val
* var211
/* : Array[Object] */;
5555 long var212
/* : Int */;
5556 val
* var213
/* : NativeArray[Object] */;
5557 val
* var214
/* : String */;
5558 val
* var217
/* : Array[ExternFile] */;
5559 val
* var_java_files
/* var java_files: Array[ExternFile] */;
5560 val
* var218
/* : Array[ExternFile] */;
5561 val
* var220
/* : Array[ExternFile] */;
5562 val
* var_221
/* var : Array[ExternFile] */;
5563 val
* var222
/* : ArrayIterator[nullable Object] */;
5564 val
* var_223
/* var : ArrayIterator[ExternFile] */;
5565 short int var224
/* : Bool */;
5566 val
* var225
/* : nullable Object */;
5567 val
* var_f226
/* var f: ExternFile */;
5568 val
* var227
/* : String */;
5569 val
* var_o228
/* var o: String */;
5570 val
* var229
/* : String */;
5571 val
* var231
/* : String */;
5572 static val
* varonce232
;
5573 val
* var233
/* : String */;
5574 char* var234
/* : NativeString */;
5575 long var235
/* : Int */;
5576 val
* var236
/* : FlatString */;
5577 val
* var237
/* : String */;
5578 val
* var_ff
/* var ff: String */;
5579 static val
* varonce238
;
5580 val
* var239
/* : String */;
5581 char* var240
/* : NativeString */;
5582 long var241
/* : Int */;
5583 val
* var242
/* : FlatString */;
5584 static val
* varonce243
;
5585 val
* var244
/* : String */;
5586 char* var245
/* : NativeString */;
5587 long var246
/* : Int */;
5588 val
* var247
/* : FlatString */;
5589 val
* var248
/* : Array[Object] */;
5590 long var249
/* : Int */;
5591 val
* var250
/* : NativeArray[Object] */;
5592 val
* var251
/* : String */;
5593 static val
* varonce252
;
5594 val
* var253
/* : String */;
5595 char* var254
/* : NativeString */;
5596 long var255
/* : Int */;
5597 val
* var256
/* : FlatString */;
5598 val
* var257
/* : String */;
5599 static val
* varonce258
;
5600 val
* var259
/* : String */;
5601 char* var260
/* : NativeString */;
5602 long var261
/* : Int */;
5603 val
* var262
/* : FlatString */;
5604 val
* var263
/* : Array[Object] */;
5605 long var264
/* : Int */;
5606 val
* var265
/* : NativeArray[Object] */;
5607 val
* var266
/* : String */;
5608 val
* var267
/* : String */;
5609 short int var268
/* : Bool */;
5610 short int var269
/* : Bool */;
5611 short int var272
/* : Bool */;
5612 short int var273
/* : Bool */;
5613 static val
* varonce274
;
5614 val
* var275
/* : String */;
5615 char* var276
/* : NativeString */;
5616 long var277
/* : Int */;
5617 val
* var278
/* : FlatString */;
5618 val
* var279
/* : Array[Object] */;
5619 long var280
/* : Int */;
5620 val
* var281
/* : NativeArray[Object] */;
5621 val
* var282
/* : String */;
5622 val
* var_jar_file
/* var jar_file: String */;
5623 val
* var283
/* : Array[String] */;
5624 val
* var_class_files_array
/* var class_files_array: Array[String] */;
5625 val
* var_284
/* var : Array[ExternFile] */;
5626 val
* var285
/* : ArrayIterator[nullable Object] */;
5627 val
* var_286
/* var : ArrayIterator[ExternFile] */;
5628 short int var287
/* : Bool */;
5629 val
* var288
/* : nullable Object */;
5630 val
* var_f289
/* var f: ExternFile */;
5631 val
* var290
/* : String */;
5632 static val
* varonce293
;
5633 val
* var294
/* : String */;
5634 char* var295
/* : NativeString */;
5635 long var296
/* : Int */;
5636 val
* var297
/* : FlatString */;
5637 val
* var298
/* : String */;
5638 val
* var_class_files
/* var class_files: String */;
5639 static val
* varonce299
;
5640 val
* var300
/* : String */;
5641 char* var301
/* : NativeString */;
5642 long var302
/* : Int */;
5643 val
* var303
/* : FlatString */;
5644 static val
* varonce304
;
5645 val
* var305
/* : String */;
5646 char* var306
/* : NativeString */;
5647 long var307
/* : Int */;
5648 val
* var308
/* : FlatString */;
5649 val
* var309
/* : Array[Object] */;
5650 long var310
/* : Int */;
5651 val
* var311
/* : NativeArray[Object] */;
5652 val
* var312
/* : String */;
5653 static val
* varonce313
;
5654 val
* var314
/* : String */;
5655 char* var315
/* : NativeString */;
5656 long var316
/* : Int */;
5657 val
* var317
/* : FlatString */;
5658 static val
* varonce318
;
5659 val
* var319
/* : String */;
5660 char* var320
/* : NativeString */;
5661 long var321
/* : Int */;
5662 val
* var322
/* : FlatString */;
5663 static val
* varonce323
;
5664 val
* var324
/* : String */;
5665 char* var325
/* : NativeString */;
5666 long var326
/* : Int */;
5667 val
* var327
/* : FlatString */;
5668 val
* var328
/* : Array[Object] */;
5669 long var329
/* : Int */;
5670 val
* var330
/* : NativeArray[Object] */;
5671 val
* var331
/* : String */;
5672 static val
* varonce332
;
5673 val
* var333
/* : String */;
5674 char* var334
/* : NativeString */;
5675 long var335
/* : Int */;
5676 val
* var336
/* : FlatString */;
5677 static val
* varonce337
;
5678 val
* var338
/* : String */;
5679 char* var339
/* : NativeString */;
5680 long var340
/* : Int */;
5681 val
* var341
/* : FlatString */;
5682 val
* var342
/* : String */;
5683 static val
* varonce343
;
5684 val
* var344
/* : String */;
5685 char* var345
/* : NativeString */;
5686 long var346
/* : Int */;
5687 val
* var347
/* : FlatString */;
5688 static val
* varonce348
;
5689 val
* var349
/* : String */;
5690 char* var350
/* : NativeString */;
5691 long var351
/* : Int */;
5692 val
* var352
/* : FlatString */;
5693 static val
* varonce353
;
5694 val
* var354
/* : String */;
5695 char* var355
/* : NativeString */;
5696 long var356
/* : Int */;
5697 val
* var357
/* : FlatString */;
5698 val
* var358
/* : String */;
5699 static val
* varonce359
;
5700 val
* var360
/* : String */;
5701 char* var361
/* : NativeString */;
5702 long var362
/* : Int */;
5703 val
* var363
/* : FlatString */;
5704 val
* var364
/* : Array[Object] */;
5705 long var365
/* : Int */;
5706 val
* var366
/* : NativeArray[Object] */;
5707 val
* var367
/* : String */;
5708 static val
* varonce368
;
5709 val
* var369
/* : String */;
5710 char* var370
/* : NativeString */;
5711 long var371
/* : Int */;
5712 val
* var372
/* : FlatString */;
5713 static val
* varonce373
;
5714 val
* var374
/* : String */;
5715 char* var375
/* : NativeString */;
5716 long var376
/* : Int */;
5717 val
* var377
/* : FlatString */;
5718 val
* var378
/* : String */;
5719 static val
* varonce379
;
5720 val
* var380
/* : String */;
5721 char* var381
/* : NativeString */;
5722 long var382
/* : Int */;
5723 val
* var383
/* : FlatString */;
5724 val
* var384
/* : Array[Object] */;
5725 long var385
/* : Int */;
5726 val
* var386
/* : NativeArray[Object] */;
5727 val
* var387
/* : String */;
5728 val
* var388
/* : ToolContext */;
5729 val
* var390
/* : ToolContext */;
5730 static val
* varonce391
;
5731 val
* var392
/* : String */;
5732 char* var393
/* : NativeString */;
5733 long var394
/* : Int */;
5734 val
* var395
/* : FlatString */;
5735 val
* var396
/* : Array[Object] */;
5736 long var397
/* : Int */;
5737 val
* var398
/* : NativeArray[Object] */;
5738 val
* var399
/* : String */;
5739 long var400
/* : Int */;
5740 static val
* varonce401
;
5741 val
* var402
/* : String */;
5742 char* var403
/* : NativeString */;
5743 long var404
/* : Int */;
5744 val
* var405
/* : FlatString */;
5745 val
* var406
/* : Array[Object] */;
5746 long var407
/* : Int */;
5747 val
* var408
/* : NativeArray[Object] */;
5748 val
* var409
/* : String */;
5750 var_compile_dir
= p1
;
5753 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
5754 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
5755 if (unlikely(var2
== NULL
)) {
5756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5757 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5764 var_mainmodule
= var
;
5766 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
5767 var5
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
5768 if (unlikely(var5
== NULL
)) {
5769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5770 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5778 var6
= platform__MModule__target_platform(var3
);
5780 var_platform
= var6
;
5782 var7
= abstract_compiler__MakefileToolchain__outfile(self
, var_mainmodule
);
5786 var8
= file__String__relpath(var_compile_dir
, var_outname
);
5790 var9
= abstract_compiler__MakefileToolchain__makefile_name(self
, var_mainmodule
);
5792 var_makename
= var9
;
5798 var13
= string__NativeString__to_s_with_length(var11
, var12
);
5802 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
5803 { /* var14 = array_instance Array[Object] */
5805 var16
= NEW_array__NativeArray(var15
, &type_array__NativeArraykernel__Object
);
5806 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var_compile_dir
;
5807 ((struct instance_array__NativeArray
*)var16
)->values
[1] = (val
*) var10
;
5808 ((struct instance_array__NativeArray
*)var16
)->values
[2] = (val
*) var_makename
;
5810 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
5814 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_string__Object__to_s
]))(var14
) /* to_s on <var14:Array[Object]>*/;
5816 var_makepath
= var17
;
5817 var18
= NEW_file__OFStream(&type_file__OFStream
);
5819 file__OFStream__open(var18
, var_makepath
); /* Direct call file#OFStream#open on <var18:OFStream>*/
5821 var_makefile
= var18
;
5827 var23
= string__NativeString__to_s_with_length(var21
, var22
);
5831 var_cc_includes
= var20
;
5833 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
5834 var26
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
5835 if (unlikely(var26
== NULL
)) {
5836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
5837 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 154);
5841 RET_LABEL25
:(void)0;
5846 var27
= array__AbstractArrayRead__iterator(var_
);
5851 var29
= array__ArrayIterator__is_ok(var_28
);
5855 var30
= array__ArrayIterator__item(var_28
);
5863 var35
= string__NativeString__to_s_with_length(var33
, var34
);
5868 var36
= string__FlatString___43d(var32
, var_p
);
5875 var41
= string__NativeString__to_s_with_length(var39
, var40
);
5880 var42
= string__FlatString___43d(var36
, var38
);
5883 var43
= string__FlatString___43d(var_cc_includes
, var42
);
5885 var_cc_includes
= var43
;
5887 array__ArrayIterator__next(var_28
); /* Direct call array#ArrayIterator#next on <var_28:ArrayIterator[String]>*/
5893 BREAK_label
: (void)0;
5895 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:ArrayIterator[String]> */
5896 RET_LABEL44
:(void)0;
5899 var45
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String
);
5901 ((void (*)(val
*))(var45
->class->vft
[COLOR_kernel__Object__init
]))(var45
) /* init on <var45:HashSet[String]>*/;
5903 var_linker_options
= var45
;
5905 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
5906 var48
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
5907 if (unlikely(var48
== NULL
)) {
5908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5909 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
5913 RET_LABEL47
:(void)0;
5917 var49
= poset__POSetElement__greaters(var46
);
5921 var51
= ((val
* (*)(val
*))(var_50
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_50
) /* iterator on <var_50:Collection[MModule]>*/;
5926 var53
= ((short int (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_52
) /* is_ok on <var_52:Iterator[MModule]>*/;
5930 var54
= ((val
* (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_52
) /* item on <var_52:Iterator[MModule]>*/;
5934 var55
= abstract_compiler__MModule__collect_linker_libs(var_m
);
5938 if (var_libs
== NULL
) {
5939 var57
= 0; /* is null */
5941 var57
= 1; /* arg is null and recv is not */
5944 { /* Inline kernel#Object#!= (var_libs,var56) on <var_libs:nullable Set[String]> */
5947 var61
= ((short int (*)(val
*, val
*))(var_libs
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_libs
, var_other
) /* == on <var_libs:nullable Set[String](Set[String])>*/;
5953 RET_LABEL59
:(void)0;
5959 abstract_collection__SimpleCollection__add_all(var_linker_options
, var_libs
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_linker_options:HashSet[String]>*/
5964 ((void (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_52
) /* next on <var_52:Iterator[MModule]>*/;
5970 BREAK_label63
: (void)0;
5972 { /* Inline abstract_collection#Iterator#finish (var_52) on <var_52:Iterator[MModule]> */
5973 RET_LABEL64
:(void)0;
5979 var67
= "CC = ccache cc\nCXX = ccache c++\nCFLAGS = -g -O2 -Wno-unused-value -Wno-switch\nCINCL = ";
5981 var69
= string__NativeString__to_s_with_length(var67
, var68
);
5988 var72
= "\nLDFLAGS ?= \nLDLIBS ?= -lm `pkg-config --libs bdw-gc`";
5990 var74
= string__NativeString__to_s_with_length(var72
, var73
);
5999 var79
= string__NativeString__to_s_with_length(var77
, var78
);
6004 var80
= string__Collection__join(var_linker_options
, var76
);
6011 var85
= string__NativeString__to_s_with_length(var83
, var84
);
6015 var86
= NEW_array__Array(&type_array__Arraykernel__Object
);
6016 { /* var86 = array_instance Array[Object] */
6018 var88
= NEW_array__NativeArray(var87
, &type_array__NativeArraykernel__Object
);
6019 ((struct instance_array__NativeArray
*)var88
)->values
[0] = (val
*) var66
;
6020 ((struct instance_array__NativeArray
*)var88
)->values
[1] = (val
*) var_cc_includes
;
6021 ((struct instance_array__NativeArray
*)var88
)->values
[2] = (val
*) var71
;
6022 ((struct instance_array__NativeArray
*)var88
)->values
[3] = (val
*) var80
;
6023 ((struct instance_array__NativeArray
*)var88
)->values
[4] = (val
*) var82
;
6025 ((void (*)(val
*, val
*, long))(var86
->class->vft
[COLOR_array__Array__with_native
]))(var86
, var88
, var87
) /* with_native on <var86:Array[Object]>*/;
6029 var89
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_string__Object__to_s
]))(var86
) /* to_s on <var86:Array[Object]>*/;
6032 file__OFStream__write(var_makefile
, var89
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6035 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6036 var92
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6037 if (unlikely(var92
== NULL
)) {
6038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6039 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
6043 RET_LABEL91
:(void)0;
6047 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (var90) on <var90:ToolContext> */
6048 var95
= var90
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <var90:ToolContext> */
6049 if (unlikely(var95
== NULL
)) {
6050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
6051 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 67);
6055 RET_LABEL94
:(void)0;
6059 { /* Inline opts#Option#value (var93) on <var93:OptionString> */
6060 var98
= var93
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var93:OptionString> */
6062 RET_LABEL97
:(void)0;
6067 var102
= varonce101
;
6069 var103
= "libunwind";
6071 var105
= string__NativeString__to_s_with_length(var103
, var104
);
6073 varonce101
= var102
;
6075 if (var_ost
== NULL
) {
6076 var106
= 0; /* <var102:String> cannot be null */
6078 var107
= string__FlatString___61d_61d(var_ost
, var102
);
6086 var110
= varonce109
;
6088 var111
= "nitstack";
6090 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6092 varonce109
= var110
;
6094 if (var_ost
== NULL
) {
6095 var114
= 0; /* <var110:String> cannot be null */
6097 var115
= string__FlatString___61d_61d(var_ost
, var110
);
6105 if (var_platform
== NULL
) {
6106 var119
= 1; /* is null */
6108 var119
= 0; /* arg is null but recv is not */
6111 var120
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var118
) /* == on <var_platform:nullable Platform>*/;
6119 var122
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libunwind
]))(var_platform
) /* supports_libunwind on <var_platform:nullable Platform(Platform)>*/;
6129 var124
= varonce123
;
6131 var125
= "NEED_LIBUNWIND := YesPlease\n";
6133 var127
= string__NativeString__to_s_with_length(var125
, var126
);
6135 varonce123
= var124
;
6138 file__OFStream__write(var_makefile
, var124
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6143 var129
= varonce128
;
6145 var130
= "uname_S := $(shell sh -c \'uname -s 2>/dev/null || echo not\')\n";
6147 var132
= string__NativeString__to_s_with_length(var130
, var131
);
6149 varonce128
= var129
;
6152 file__OFStream__write(var_makefile
, var129
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6155 var134
= varonce133
;
6157 var135
= "ifeq ($(uname_S),Darwin)\n";
6159 var137
= string__NativeString__to_s_with_length(var135
, var136
);
6161 varonce133
= var134
;
6164 file__OFStream__write(var_makefile
, var134
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6167 var139
= varonce138
;
6169 var140
= "\11NEED_LIBUNWIND :=\n";
6171 var142
= string__NativeString__to_s_with_length(var140
, var141
);
6173 varonce138
= var139
;
6176 file__OFStream__write(var_makefile
, var139
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6179 var144
= varonce143
;
6181 var145
= "endif\n\n";
6183 var147
= string__NativeString__to_s_with_length(var145
, var146
);
6185 varonce143
= var144
;
6188 file__OFStream__write(var_makefile
, var144
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6191 var149
= varonce148
;
6193 var150
= "clang_check := $(shell sh -c \'$(CC) -v 2>&1 | grep -q clang; echo $$?\')\nifeq ($(clang_check), 0)\n\11CFLAGS += -Qunused-arguments\nendif\n";
6195 var152
= string__NativeString__to_s_with_length(var150
, var151
);
6197 varonce148
= var149
;
6200 file__OFStream__write(var_makefile
, var149
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6203 var154
= varonce153
;
6205 var155
= "ifdef NEED_LIBUNWIND\n\11LDLIBS += -lunwind\nendif\n";
6207 var157
= string__NativeString__to_s_with_length(var155
, var156
);
6209 varonce153
= var154
;
6212 file__OFStream__write(var_makefile
, var154
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6215 var159
= varonce158
;
6219 var162
= string__NativeString__to_s_with_length(var160
, var161
);
6221 varonce158
= var159
;
6224 var164
= varonce163
;
6228 var167
= string__NativeString__to_s_with_length(var165
, var166
);
6230 varonce163
= var164
;
6232 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
6233 { /* var168 = array_instance Array[Object] */
6235 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
6236 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var159
;
6237 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var_outpath
;
6238 ((struct instance_array__NativeArray
*)var170
)->values
[2] = (val
*) var164
;
6240 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
6244 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
6247 file__OFStream__write(var_makefile
, var171
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6249 var172
= NEW_array__Array(&type_array__Arraystring__String
);
6251 ((void (*)(val
*))(var172
->class->vft
[COLOR_kernel__Object__init
]))(var172
) /* init on <var172:Array[String]>*/;
6253 var_ofiles
= var172
;
6254 var173
= NEW_array__Array(&type_array__Arraystring__String
);
6256 ((void (*)(val
*))(var173
->class->vft
[COLOR_kernel__Object__init
]))(var173
) /* init on <var173:Array[String]>*/;
6258 var_dep_rules
= var173
;
6259 var_174
= var_cfiles
;
6261 var175
= array__AbstractArrayRead__iterator(var_174
);
6266 var177
= array__ArrayIterator__is_ok(var_176
);
6270 var178
= array__ArrayIterator__item(var_176
);
6274 var180
= varonce179
;
6278 var183
= string__NativeString__to_s_with_length(var181
, var182
);
6280 varonce179
= var180
;
6283 var184
= file__String__strip_extension(var_f
, var180
);
6286 var186
= varonce185
;
6290 var189
= string__NativeString__to_s_with_length(var187
, var188
);
6292 varonce185
= var186
;
6295 var190
= string__FlatString___43d(var184
, var186
);
6299 var192
= varonce191
;
6303 var195
= string__NativeString__to_s_with_length(var193
, var194
);
6305 varonce191
= var192
;
6308 var197
= varonce196
;
6310 var198
= "\n\11$(CC) $(CFLAGS) $(CINCL) -c -o ";
6312 var200
= string__NativeString__to_s_with_length(var198
, var199
);
6314 varonce196
= var197
;
6317 var202
= varonce201
;
6321 var205
= string__NativeString__to_s_with_length(var203
, var204
);
6323 varonce201
= var202
;
6326 var207
= varonce206
;
6330 var210
= string__NativeString__to_s_with_length(var208
, var209
);
6332 varonce206
= var207
;
6334 var211
= NEW_array__Array(&type_array__Arraykernel__Object
);
6335 { /* var211 = array_instance Array[Object] */
6337 var213
= NEW_array__NativeArray(var212
, &type_array__NativeArraykernel__Object
);
6338 ((struct instance_array__NativeArray
*)var213
)->values
[0] = (val
*) var_o
;
6339 ((struct instance_array__NativeArray
*)var213
)->values
[1] = (val
*) var192
;
6340 ((struct instance_array__NativeArray
*)var213
)->values
[2] = (val
*) var_f
;
6341 ((struct instance_array__NativeArray
*)var213
)->values
[3] = (val
*) var197
;
6342 ((struct instance_array__NativeArray
*)var213
)->values
[4] = (val
*) var_o
;
6343 ((struct instance_array__NativeArray
*)var213
)->values
[5] = (val
*) var202
;
6344 ((struct instance_array__NativeArray
*)var213
)->values
[6] = (val
*) var_f
;
6345 ((struct instance_array__NativeArray
*)var213
)->values
[7] = (val
*) var207
;
6347 ((void (*)(val
*, val
*, long))(var211
->class->vft
[COLOR_array__Array__with_native
]))(var211
, var213
, var212
) /* with_native on <var211:Array[Object]>*/;
6351 var214
= ((val
* (*)(val
*))(var211
->class->vft
[COLOR_string__Object__to_s
]))(var211
) /* to_s on <var211:Array[Object]>*/;
6354 file__OFStream__write(var_makefile
, var214
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6357 array__Array__add(var_ofiles
, var_o
); /* Direct call array#Array#add on <var_ofiles:Array[String]>*/
6360 array__Array__add(var_dep_rules
, var_o
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
6363 array__ArrayIterator__next(var_176
); /* Direct call array#ArrayIterator#next on <var_176:ArrayIterator[String]>*/
6366 goto BREAK_label215
;
6369 BREAK_label215
: (void)0;
6371 { /* Inline abstract_collection#Iterator#finish (var_176) on <var_176:ArrayIterator[String]> */
6372 RET_LABEL216
:(void)0;
6375 var217
= NEW_array__Array(&type_array__Arrayc_tools__ExternFile
);
6377 ((void (*)(val
*))(var217
->class->vft
[COLOR_kernel__Object__init
]))(var217
) /* init on <var217:Array[ExternFile]>*/;
6379 var_java_files
= var217
;
6381 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (var_compiler) on <var_compiler:AbstractCompiler> */
6382 var220
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <var_compiler:AbstractCompiler> */
6383 if (unlikely(var220
== NULL
)) {
6384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
6385 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 901);
6389 RET_LABEL219
:(void)0;
6394 var222
= array__AbstractArrayRead__iterator(var_221
);
6399 var224
= array__ArrayIterator__is_ok(var_223
);
6403 var225
= array__ArrayIterator__item(var_223
);
6407 var227
= c_tools__ExternCFile__makefile_rule_name(var_f226
);
6411 { /* Inline c_tools#ExternFile#filename (var_f226) on <var_f226:ExternFile> */
6412 var231
= var_f226
->attrs
[COLOR_c_tools__ExternFile___filename
].val
; /* _filename on <var_f226:ExternFile> */
6413 if (unlikely(var231
== NULL
)) {
6414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
6415 PRINT_ERROR(" (%s:%d)\n", "c_tools.nit", 104);
6419 RET_LABEL230
:(void)0;
6423 var233
= varonce232
;
6427 var236
= string__NativeString__to_s_with_length(var234
, var235
);
6429 varonce232
= var233
;
6432 var237
= file__String__basename(var229
, var233
);
6436 var239
= varonce238
;
6440 var242
= string__NativeString__to_s_with_length(var240
, var241
);
6442 varonce238
= var239
;
6445 var244
= varonce243
;
6449 var247
= string__NativeString__to_s_with_length(var245
, var246
);
6451 varonce243
= var244
;
6453 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
6454 { /* var248 = array_instance Array[Object] */
6456 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
6457 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var_o228
;
6458 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var239
;
6459 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var_ff
;
6460 ((struct instance_array__NativeArray
*)var250
)->values
[3] = (val
*) var244
;
6462 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
6466 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
6469 file__OFStream__write(var_makefile
, var251
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6472 var253
= varonce252
;
6476 var256
= string__NativeString__to_s_with_length(var254
, var255
);
6478 varonce252
= var253
;
6481 var257
= c_tools__ExternCFile__makefile_rule_content(var_f226
);
6484 var259
= varonce258
;
6488 var262
= string__NativeString__to_s_with_length(var260
, var261
);
6490 varonce258
= var259
;
6492 var263
= NEW_array__Array(&type_array__Arraykernel__Object
);
6493 { /* var263 = array_instance Array[Object] */
6495 var265
= NEW_array__NativeArray(var264
, &type_array__NativeArraykernel__Object
);
6496 ((struct instance_array__NativeArray
*)var265
)->values
[0] = (val
*) var253
;
6497 ((struct instance_array__NativeArray
*)var265
)->values
[1] = (val
*) var257
;
6498 ((struct instance_array__NativeArray
*)var265
)->values
[2] = (val
*) var259
;
6500 ((void (*)(val
*, val
*, long))(var263
->class->vft
[COLOR_array__Array__with_native
]))(var263
, var265
, var264
) /* with_native on <var263:Array[Object]>*/;
6504 var266
= ((val
* (*)(val
*))(var263
->class->vft
[COLOR_string__Object__to_s
]))(var263
) /* to_s on <var263:Array[Object]>*/;
6507 file__OFStream__write(var_makefile
, var266
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6510 var267
= c_tools__ExternCFile__makefile_rule_name(var_f226
);
6513 array__Array__add(var_dep_rules
, var267
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
6516 var268
= c_tools__ExternCFile__compiles_to_o_file(var_f226
);
6520 array__Array__add(var_ofiles
, var_o228
); /* Direct call array#Array#add on <var_ofiles:Array[String]>*/
6525 var269
= c_tools__ExternFile__add_to_jar(var_f226
);
6529 array__Array__add(var_java_files
, var_f226
); /* Direct call array#Array#add on <var_java_files:Array[ExternFile]>*/
6534 array__ArrayIterator__next(var_223
); /* Direct call array#ArrayIterator#next on <var_223:ArrayIterator[ExternFile]>*/
6537 goto BREAK_label270
;
6540 BREAK_label270
: (void)0;
6542 { /* Inline abstract_collection#Iterator#finish (var_223) on <var_223:ArrayIterator[ExternFile]> */
6543 RET_LABEL271
:(void)0;
6547 var272
= array__AbstractArrayRead__is_empty(var_java_files
);
6552 var275
= varonce274
;
6556 var278
= string__NativeString__to_s_with_length(var276
, var277
);
6558 varonce274
= var275
;
6560 var279
= NEW_array__Array(&type_array__Arraykernel__Object
);
6561 { /* var279 = array_instance Array[Object] */
6563 var281
= NEW_array__NativeArray(var280
, &type_array__NativeArraykernel__Object
);
6564 ((struct instance_array__NativeArray
*)var281
)->values
[0] = (val
*) var_outpath
;
6565 ((struct instance_array__NativeArray
*)var281
)->values
[1] = (val
*) var275
;
6567 ((void (*)(val
*, val
*, long))(var279
->class->vft
[COLOR_array__Array__with_native
]))(var279
, var281
, var280
) /* with_native on <var279:Array[Object]>*/;
6571 var282
= ((val
* (*)(val
*))(var279
->class->vft
[COLOR_string__Object__to_s
]))(var279
) /* to_s on <var279:Array[Object]>*/;
6573 var_jar_file
= var282
;
6574 var283
= NEW_array__Array(&type_array__Arraystring__String
);
6576 ((void (*)(val
*))(var283
->class->vft
[COLOR_kernel__Object__init
]))(var283
) /* init on <var283:Array[String]>*/;
6578 var_class_files_array
= var283
;
6579 var_284
= var_java_files
;
6581 var285
= array__AbstractArrayRead__iterator(var_284
);
6586 var287
= array__ArrayIterator__is_ok(var_286
);
6590 var288
= array__ArrayIterator__item(var_286
);
6594 var290
= c_tools__ExternCFile__makefile_rule_name(var_f289
);
6597 array__Array__add(var_class_files_array
, var290
); /* Direct call array#Array#add on <var_class_files_array:Array[String]>*/
6600 array__ArrayIterator__next(var_286
); /* Direct call array#ArrayIterator#next on <var_286:ArrayIterator[ExternFile]>*/
6603 goto BREAK_label291
;
6606 BREAK_label291
: (void)0;
6608 { /* Inline abstract_collection#Iterator#finish (var_286) on <var_286:ArrayIterator[ExternFile]> */
6609 RET_LABEL292
:(void)0;
6613 var294
= varonce293
;
6617 var297
= string__NativeString__to_s_with_length(var295
, var296
);
6619 varonce293
= var294
;
6622 var298
= string__Collection__join(var_class_files_array
, var294
);
6624 var_class_files
= var298
;
6626 var300
= varonce299
;
6630 var303
= string__NativeString__to_s_with_length(var301
, var302
);
6632 varonce299
= var300
;
6635 var305
= varonce304
;
6639 var308
= string__NativeString__to_s_with_length(var306
, var307
);
6641 varonce304
= var305
;
6643 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
6644 { /* var309 = array_instance Array[Object] */
6646 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
6647 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_jar_file
;
6648 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var300
;
6649 ((struct instance_array__NativeArray
*)var311
)->values
[2] = (val
*) var_class_files
;
6650 ((struct instance_array__NativeArray
*)var311
)->values
[3] = (val
*) var305
;
6652 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
6656 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
6659 file__OFStream__write(var_makefile
, var312
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6662 var314
= varonce313
;
6664 var315
= "\11jar cf ";
6666 var317
= string__NativeString__to_s_with_length(var315
, var316
);
6668 varonce313
= var314
;
6671 var319
= varonce318
;
6675 var322
= string__NativeString__to_s_with_length(var320
, var321
);
6677 varonce318
= var319
;
6680 var324
= varonce323
;
6684 var327
= string__NativeString__to_s_with_length(var325
, var326
);
6686 varonce323
= var324
;
6688 var328
= NEW_array__Array(&type_array__Arraykernel__Object
);
6689 { /* var328 = array_instance Array[Object] */
6691 var330
= NEW_array__NativeArray(var329
, &type_array__NativeArraykernel__Object
);
6692 ((struct instance_array__NativeArray
*)var330
)->values
[0] = (val
*) var314
;
6693 ((struct instance_array__NativeArray
*)var330
)->values
[1] = (val
*) var_jar_file
;
6694 ((struct instance_array__NativeArray
*)var330
)->values
[2] = (val
*) var319
;
6695 ((struct instance_array__NativeArray
*)var330
)->values
[3] = (val
*) var_class_files
;
6696 ((struct instance_array__NativeArray
*)var330
)->values
[4] = (val
*) var324
;
6698 ((void (*)(val
*, val
*, long))(var328
->class->vft
[COLOR_array__Array__with_native
]))(var328
, var330
, var329
) /* with_native on <var328:Array[Object]>*/;
6702 var331
= ((val
* (*)(val
*))(var328
->class->vft
[COLOR_string__Object__to_s
]))(var328
) /* to_s on <var328:Array[Object]>*/;
6705 file__OFStream__write(var_makefile
, var331
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6708 array__Array__add(var_dep_rules
, var_jar_file
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
6713 var333
= varonce332
;
6717 var336
= string__NativeString__to_s_with_length(var334
, var335
);
6719 varonce332
= var333
;
6722 var338
= varonce337
;
6726 var341
= string__NativeString__to_s_with_length(var339
, var340
);
6728 varonce337
= var338
;
6731 var342
= string__Collection__join(var_dep_rules
, var338
);
6734 var344
= varonce343
;
6736 var345
= "\n\11$(CC) $(LDFLAGS) -o ";
6738 var347
= string__NativeString__to_s_with_length(var345
, var346
);
6740 varonce343
= var344
;
6743 var349
= varonce348
;
6747 var352
= string__NativeString__to_s_with_length(var350
, var351
);
6749 varonce348
= var349
;
6752 var354
= varonce353
;
6756 var357
= string__NativeString__to_s_with_length(var355
, var356
);
6758 varonce353
= var354
;
6761 var358
= string__Collection__join(var_ofiles
, var354
);
6764 var360
= varonce359
;
6766 var361
= " $(LDLIBS)\n\n";
6768 var363
= string__NativeString__to_s_with_length(var361
, var362
);
6770 varonce359
= var360
;
6772 var364
= NEW_array__Array(&type_array__Arraykernel__Object
);
6773 { /* var364 = array_instance Array[Object] */
6775 var366
= NEW_array__NativeArray(var365
, &type_array__NativeArraykernel__Object
);
6776 ((struct instance_array__NativeArray
*)var366
)->values
[0] = (val
*) var_outpath
;
6777 ((struct instance_array__NativeArray
*)var366
)->values
[1] = (val
*) var333
;
6778 ((struct instance_array__NativeArray
*)var366
)->values
[2] = (val
*) var342
;
6779 ((struct instance_array__NativeArray
*)var366
)->values
[3] = (val
*) var344
;
6780 ((struct instance_array__NativeArray
*)var366
)->values
[4] = (val
*) var_outpath
;
6781 ((struct instance_array__NativeArray
*)var366
)->values
[5] = (val
*) var349
;
6782 ((struct instance_array__NativeArray
*)var366
)->values
[6] = (val
*) var358
;
6783 ((struct instance_array__NativeArray
*)var366
)->values
[7] = (val
*) var360
;
6785 ((void (*)(val
*, val
*, long))(var364
->class->vft
[COLOR_array__Array__with_native
]))(var364
, var366
, var365
) /* with_native on <var364:Array[Object]>*/;
6789 var367
= ((val
* (*)(val
*))(var364
->class->vft
[COLOR_string__Object__to_s
]))(var364
) /* to_s on <var364:Array[Object]>*/;
6792 file__OFStream__write(var_makefile
, var367
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6795 var369
= varonce368
;
6797 var370
= "clean:\n\11rm ";
6799 var372
= string__NativeString__to_s_with_length(var370
, var371
);
6801 varonce368
= var369
;
6804 var374
= varonce373
;
6808 var377
= string__NativeString__to_s_with_length(var375
, var376
);
6810 varonce373
= var374
;
6813 var378
= string__Collection__join(var_ofiles
, var374
);
6816 var380
= varonce379
;
6818 var381
= " 2>/dev/null\n\n";
6820 var383
= string__NativeString__to_s_with_length(var381
, var382
);
6822 varonce379
= var380
;
6824 var384
= NEW_array__Array(&type_array__Arraykernel__Object
);
6825 { /* var384 = array_instance Array[Object] */
6827 var386
= NEW_array__NativeArray(var385
, &type_array__NativeArraykernel__Object
);
6828 ((struct instance_array__NativeArray
*)var386
)->values
[0] = (val
*) var369
;
6829 ((struct instance_array__NativeArray
*)var386
)->values
[1] = (val
*) var378
;
6830 ((struct instance_array__NativeArray
*)var386
)->values
[2] = (val
*) var380
;
6832 ((void (*)(val
*, val
*, long))(var384
->class->vft
[COLOR_array__Array__with_native
]))(var384
, var386
, var385
) /* with_native on <var384:Array[Object]>*/;
6836 var387
= ((val
* (*)(val
*))(var384
->class->vft
[COLOR_string__Object__to_s
]))(var384
) /* to_s on <var384:Array[Object]>*/;
6839 file__OFStream__write(var_makefile
, var387
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6842 file__OFStream__close(var_makefile
); /* Direct call file#OFStream#close on <var_makefile:OFStream>*/
6845 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6846 var390
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6847 if (unlikely(var390
== NULL
)) {
6848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6849 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
6853 RET_LABEL389
:(void)0;
6857 var392
= varonce391
;
6859 var393
= "Generated makefile: ";
6861 var395
= string__NativeString__to_s_with_length(var393
, var394
);
6863 varonce391
= var392
;
6865 var396
= NEW_array__Array(&type_array__Arraykernel__Object
);
6866 { /* var396 = array_instance Array[Object] */
6868 var398
= NEW_array__NativeArray(var397
, &type_array__NativeArraykernel__Object
);
6869 ((struct instance_array__NativeArray
*)var398
)->values
[0] = (val
*) var392
;
6870 ((struct instance_array__NativeArray
*)var398
)->values
[1] = (val
*) var_makepath
;
6872 ((void (*)(val
*, val
*, long))(var396
->class->vft
[COLOR_array__Array__with_native
]))(var396
, var398
, var397
) /* with_native on <var396:Array[Object]>*/;
6876 var399
= ((val
* (*)(val
*))(var396
->class->vft
[COLOR_string__Object__to_s
]))(var396
) /* to_s on <var396:Array[Object]>*/;
6880 toolcontext__ToolContext__info(var388
, var399
, var400
); /* Direct call toolcontext#ToolContext#info on <var388:ToolContext>*/
6883 var402
= varonce401
;
6885 var403
= "/Makefile";
6887 var405
= string__NativeString__to_s_with_length(var403
, var404
);
6889 varonce401
= var402
;
6891 var406
= NEW_array__Array(&type_array__Arraykernel__Object
);
6892 { /* var406 = array_instance Array[Object] */
6894 var408
= NEW_array__NativeArray(var407
, &type_array__NativeArraykernel__Object
);
6895 ((struct instance_array__NativeArray
*)var408
)->values
[0] = (val
*) var_compile_dir
;
6896 ((struct instance_array__NativeArray
*)var408
)->values
[1] = (val
*) var402
;
6898 ((void (*)(val
*, val
*, long))(var406
->class->vft
[COLOR_array__Array__with_native
]))(var406
, var408
, var407
) /* with_native on <var406:Array[Object]>*/;
6902 var409
= ((val
* (*)(val
*))(var406
->class->vft
[COLOR_string__Object__to_s
]))(var406
) /* to_s on <var406:Array[Object]>*/;
6905 file__String__file_copy_to(var_makepath
, var409
); /* Direct call file#String#file_copy_to on <var_makepath:String>*/
6909 /* method abstract_compiler#MakefileToolchain#write_makefile for (self: Object, AbstractCompiler, String, Array[String]) */
6910 void VIRTUAL_abstract_compiler__MakefileToolchain__write_makefile(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6911 abstract_compiler__MakefileToolchain__write_makefile(self
, p0
, p1
, p2
); /* Direct call abstract_compiler#MakefileToolchain#write_makefile on <self:Object(MakefileToolchain)>*/
6914 /* method abstract_compiler#MakefileToolchain#compile_c_code for (self: MakefileToolchain, AbstractCompiler, String) */
6915 void abstract_compiler__MakefileToolchain__compile_c_code(val
* self
, val
* p0
, val
* p1
) {
6916 val
* var_compiler
/* var compiler: AbstractCompiler */;
6917 val
* var_compile_dir
/* var compile_dir: String */;
6918 val
* var
/* : MModule */;
6919 val
* var2
/* : MModule */;
6920 val
* var3
/* : String */;
6921 val
* var_makename
/* var makename: String */;
6922 val
* var4
/* : ToolContext */;
6923 val
* var6
/* : ToolContext */;
6924 val
* var7
/* : OptionString */;
6925 val
* var9
/* : OptionString */;
6926 val
* var10
/* : nullable Object */;
6927 val
* var12
/* : nullable Object */;
6928 val
* var_makeflags
/* var makeflags: nullable String */;
6929 val
* var13
/* : null */;
6930 short int var14
/* : Bool */;
6931 short int var15
/* : Bool */;
6932 static val
* varonce
;
6933 val
* var16
/* : String */;
6934 char* var17
/* : NativeString */;
6935 long var18
/* : Int */;
6936 val
* var19
/* : FlatString */;
6937 val
* var20
/* : ToolContext */;
6938 val
* var22
/* : ToolContext */;
6939 static val
* varonce23
;
6940 val
* var24
/* : String */;
6941 char* var25
/* : NativeString */;
6942 long var26
/* : Int */;
6943 val
* var27
/* : FlatString */;
6944 static val
* varonce28
;
6945 val
* var29
/* : String */;
6946 char* var30
/* : NativeString */;
6947 long var31
/* : Int */;
6948 val
* var32
/* : FlatString */;
6949 static val
* varonce33
;
6950 val
* var34
/* : String */;
6951 char* var35
/* : NativeString */;
6952 long var36
/* : Int */;
6953 val
* var37
/* : FlatString */;
6954 val
* var38
/* : Array[Object] */;
6955 long var39
/* : Int */;
6956 val
* var40
/* : NativeArray[Object] */;
6957 val
* var41
/* : String */;
6958 long var42
/* : Int */;
6959 val
* var43
/* : ToolContext */;
6960 val
* var45
/* : ToolContext */;
6961 long var46
/* : Int */;
6962 long var48
/* : Int */;
6963 long var49
/* : Int */;
6964 short int var50
/* : Bool */;
6965 short int var52
/* : Bool */;
6968 const char* var_class_name
;
6969 short int var53
/* : Bool */;
6970 val
* var54
/* : Sys */;
6971 val
* var56
/* : Sys */;
6972 static val
* varonce57
;
6973 val
* var58
/* : String */;
6974 char* var59
/* : NativeString */;
6975 long var60
/* : Int */;
6976 val
* var61
/* : FlatString */;
6977 static val
* varonce62
;
6978 val
* var63
/* : String */;
6979 char* var64
/* : NativeString */;
6980 long var65
/* : Int */;
6981 val
* var66
/* : FlatString */;
6982 static val
* varonce67
;
6983 val
* var68
/* : String */;
6984 char* var69
/* : NativeString */;
6985 long var70
/* : Int */;
6986 val
* var71
/* : FlatString */;
6987 static val
* varonce72
;
6988 val
* var73
/* : String */;
6989 char* var74
/* : NativeString */;
6990 long var75
/* : Int */;
6991 val
* var76
/* : FlatString */;
6992 val
* var77
/* : Array[Object] */;
6993 long var78
/* : Int */;
6994 val
* var79
/* : NativeArray[Object] */;
6995 val
* var80
/* : String */;
6996 long var81
/* : Int */;
6997 val
* var82
/* : nullable Object */;
6998 val
* var_res
/* var res: nullable Object */;
6999 val
* var83
/* : Sys */;
7000 val
* var85
/* : Sys */;
7001 static val
* varonce86
;
7002 val
* var87
/* : String */;
7003 char* var88
/* : NativeString */;
7004 long var89
/* : Int */;
7005 val
* var90
/* : FlatString */;
7006 static val
* varonce91
;
7007 val
* var92
/* : String */;
7008 char* var93
/* : NativeString */;
7009 long var94
/* : Int */;
7010 val
* var95
/* : FlatString */;
7011 static val
* varonce96
;
7012 val
* var97
/* : String */;
7013 char* var98
/* : NativeString */;
7014 long var99
/* : Int */;
7015 val
* var100
/* : FlatString */;
7016 static val
* varonce101
;
7017 val
* var102
/* : String */;
7018 char* var103
/* : NativeString */;
7019 long var104
/* : Int */;
7020 val
* var105
/* : FlatString */;
7021 val
* var106
/* : Array[Object] */;
7022 long var107
/* : Int */;
7023 val
* var108
/* : NativeArray[Object] */;
7024 val
* var109
/* : String */;
7025 long var110
/* : Int */;
7026 val
* var111
/* : nullable Object */;
7027 long var112
/* : Int */;
7028 short int var113
/* : Bool */;
7029 short int var114
/* : Bool */;
7030 short int var116
/* : Bool */;
7031 long var117
/* : Int */;
7032 short int var118
/* : Bool */;
7033 val
* var119
/* : ToolContext */;
7034 val
* var121
/* : ToolContext */;
7035 val
* var122
/* : null */;
7036 static val
* varonce123
;
7037 val
* var124
/* : String */;
7038 char* var125
/* : NativeString */;
7039 long var126
/* : Int */;
7040 val
* var127
/* : FlatString */;
7041 static val
* varonce128
;
7042 val
* var129
/* : String */;
7043 char* var130
/* : NativeString */;
7044 long var131
/* : Int */;
7045 val
* var132
/* : FlatString */;
7046 val
* var133
/* : Array[Object] */;
7047 long var134
/* : Int */;
7048 val
* var135
/* : NativeArray[Object] */;
7049 val
* var136
/* : String */;
7051 var_compile_dir
= p1
;
7053 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
7054 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
7055 if (unlikely(var2
== NULL
)) {
7056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7057 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
7065 var3
= abstract_compiler__MakefileToolchain__makefile_name(self
, var
);
7067 var_makename
= var3
;
7069 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
7070 var6
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
7071 if (unlikely(var6
== NULL
)) {
7072 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7073 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
7081 { /* Inline abstract_compiler#ToolContext#opt_make_flags (var4) on <var4:ToolContext> */
7082 var9
= var4
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <var4:ToolContext> */
7083 if (unlikely(var9
== NULL
)) {
7084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
7085 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 39);
7093 { /* Inline opts#Option#value (var7) on <var7:OptionString> */
7094 var12
= var7
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var7:OptionString> */
7096 RET_LABEL11
:(void)0;
7099 var_makeflags
= var10
;
7101 if (var_makeflags
== NULL
) {
7102 var14
= 1; /* is null */
7104 var14
= 0; /* arg is null but recv is not */
7107 var15
= string__FlatString___61d_61d(var_makeflags
, var13
);
7116 var19
= string__NativeString__to_s_with_length(var17
, var18
);
7120 var_makeflags
= var16
;
7124 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
7125 var22
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
7126 if (unlikely(var22
== NULL
)) {
7127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7128 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
7132 RET_LABEL21
:(void)0;
7138 var25
= "make -B -C ";
7140 var27
= string__NativeString__to_s_with_length(var25
, var26
);
7149 var32
= string__NativeString__to_s_with_length(var30
, var31
);
7158 var37
= string__NativeString__to_s_with_length(var35
, var36
);
7162 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
7163 { /* var38 = array_instance Array[Object] */
7165 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
7166 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var24
;
7167 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_compile_dir
;
7168 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var29
;
7169 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var_makename
;
7170 ((struct instance_array__NativeArray
*)var40
)->values
[4] = (val
*) var34
;
7171 ((struct instance_array__NativeArray
*)var40
)->values
[5] = (val
*) var_makeflags
;
7173 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
7177 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
7181 toolcontext__ToolContext__info(var20
, var41
, var42
); /* Direct call toolcontext#ToolContext#info on <var20:ToolContext>*/
7184 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
7185 var45
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
7186 if (unlikely(var45
== NULL
)) {
7187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7188 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
7192 RET_LABEL44
:(void)0;
7196 { /* Inline toolcontext#ToolContext#verbose_level (var43) on <var43:ToolContext> */
7197 var48
= var43
->attrs
[COLOR_toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var43:ToolContext> */
7199 RET_LABEL47
:(void)0;
7204 { /* Inline kernel#Int#>= (var46,var49) on <var46:Int> */
7205 /* Covariant cast for argument 0 (i) <var49:Int> isa OTHER */
7206 /* <var49:Int> isa OTHER */
7207 var52
= 1; /* easy <var49:Int> isa OTHER*/
7208 if (unlikely(!var52
)) {
7209 var_class_name
= type_kernel__Int
.name
;
7210 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7211 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
7214 var53
= var46
>= var49
;
7217 RET_LABEL51
:(void)0;
7222 { /* Inline kernel#Object#sys (self) on <self:MakefileToolchain> */
7226 RET_LABEL55
:(void)0;
7232 var59
= "make -B -C ";
7234 var61
= string__NativeString__to_s_with_length(var59
, var60
);
7243 var66
= string__NativeString__to_s_with_length(var64
, var65
);
7252 var71
= string__NativeString__to_s_with_length(var69
, var70
);
7261 var76
= string__NativeString__to_s_with_length(var74
, var75
);
7265 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
7266 { /* var77 = array_instance Array[Object] */
7268 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
7269 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var58
;
7270 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_compile_dir
;
7271 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var63
;
7272 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var_makename
;
7273 ((struct instance_array__NativeArray
*)var79
)->values
[4] = (val
*) var68
;
7274 ((struct instance_array__NativeArray
*)var79
)->values
[5] = (val
*) var_makeflags
;
7275 ((struct instance_array__NativeArray
*)var79
)->values
[6] = (val
*) var73
;
7277 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
7281 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
7284 var81
= exec__Sys__system(var54
, var80
);
7286 var82
= BOX_kernel__Int(var81
); /* autobox from Int to nullable Object */
7290 { /* Inline kernel#Object#sys (self) on <self:MakefileToolchain> */
7294 RET_LABEL84
:(void)0;
7300 var88
= "make -B -C ";
7302 var90
= string__NativeString__to_s_with_length(var88
, var89
);
7311 var95
= string__NativeString__to_s_with_length(var93
, var94
);
7320 var100
= string__NativeString__to_s_with_length(var98
, var99
);
7325 var102
= varonce101
;
7327 var103
= " 2>&1 >/dev/null";
7329 var105
= string__NativeString__to_s_with_length(var103
, var104
);
7331 varonce101
= var102
;
7333 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
7334 { /* var106 = array_instance Array[Object] */
7336 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
7337 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var87
;
7338 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var_compile_dir
;
7339 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var92
;
7340 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var_makename
;
7341 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var97
;
7342 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var_makeflags
;
7343 ((struct instance_array__NativeArray
*)var108
)->values
[6] = (val
*) var102
;
7345 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
7349 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
7352 var110
= exec__Sys__system(var83
, var109
);
7354 var111
= BOX_kernel__Int(var110
); /* autobox from Int to nullable Object */
7359 { /* Inline kernel#Int#!= (var_res,var112) on <var_res:nullable Object(Int)> */
7360 var116
= (var_res
!= NULL
) && (var_res
->class == &class_kernel__Int
);
7362 var117
= ((struct instance_kernel__Int
*)var_res
)->value
; /* autounbox from nullable Object to Int */;
7363 var116
= (var117
== var112
);
7368 RET_LABEL115
:(void)0;
7374 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
7375 var121
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
7376 if (unlikely(var121
== NULL
)) {
7377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7378 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 140);
7382 RET_LABEL120
:(void)0;
7387 var124
= varonce123
;
7389 var125
= "make failed! Error code: ";
7391 var127
= string__NativeString__to_s_with_length(var125
, var126
);
7393 varonce123
= var124
;
7396 var129
= varonce128
;
7400 var132
= string__NativeString__to_s_with_length(var130
, var131
);
7402 varonce128
= var129
;
7404 var133
= NEW_array__Array(&type_array__Arraykernel__Object
);
7405 { /* var133 = array_instance Array[Object] */
7407 var135
= NEW_array__NativeArray(var134
, &type_array__NativeArraykernel__Object
);
7408 ((struct instance_array__NativeArray
*)var135
)->values
[0] = (val
*) var124
;
7409 ((struct instance_array__NativeArray
*)var135
)->values
[1] = (val
*) var_res
;
7410 ((struct instance_array__NativeArray
*)var135
)->values
[2] = (val
*) var129
;
7412 ((void (*)(val
*, val
*, long))(var133
->class->vft
[COLOR_array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
7416 var136
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
7419 toolcontext__ToolContext__error(var119
, var122
, var136
); /* Direct call toolcontext#ToolContext#error on <var119:ToolContext>*/
7425 /* method abstract_compiler#MakefileToolchain#compile_c_code for (self: Object, AbstractCompiler, String) */
7426 void VIRTUAL_abstract_compiler__MakefileToolchain__compile_c_code(val
* self
, val
* p0
, val
* p1
) {
7427 abstract_compiler__MakefileToolchain__compile_c_code(self
, p0
, p1
); /* Direct call abstract_compiler#MakefileToolchain#compile_c_code on <self:Object(MakefileToolchain)>*/
7430 /* method abstract_compiler#AbstractCompiler#names for (self: AbstractCompiler): HashMap[String, String] */
7431 val
* abstract_compiler__AbstractCompiler__names(val
* self
) {
7432 val
* var
/* : HashMap[String, String] */;
7433 val
* var1
/* : HashMap[String, String] */;
7434 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
7435 if (unlikely(var1
== NULL
)) {
7436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7437 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
7444 /* method abstract_compiler#AbstractCompiler#names for (self: Object): HashMap[String, String] */
7445 val
* VIRTUAL_abstract_compiler__AbstractCompiler__names(val
* self
) {
7446 val
* var
/* : HashMap[String, String] */;
7447 val
* var1
/* : HashMap[String, String] */;
7448 val
* var3
/* : HashMap[String, String] */;
7449 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:Object(AbstractCompiler)> */
7450 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:Object(AbstractCompiler)> */
7451 if (unlikely(var3
== NULL
)) {
7452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7453 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
7463 /* method abstract_compiler#AbstractCompiler#mainmodule for (self: AbstractCompiler): MModule */
7464 val
* abstract_compiler__AbstractCompiler__mainmodule(val
* self
) {
7465 val
* var
/* : MModule */;
7466 val
* var1
/* : MModule */;
7467 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:AbstractCompiler> */
7468 if (unlikely(var1
== NULL
)) {
7469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7470 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
7477 /* method abstract_compiler#AbstractCompiler#mainmodule for (self: Object): MModule */
7478 val
* VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule(val
* self
) {
7479 val
* var
/* : MModule */;
7480 val
* var1
/* : MModule */;
7481 val
* var3
/* : MModule */;
7482 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:Object(AbstractCompiler)> */
7483 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:Object(AbstractCompiler)> */
7484 if (unlikely(var3
== NULL
)) {
7485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7486 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
7496 /* method abstract_compiler#AbstractCompiler#mainmodule= for (self: AbstractCompiler, MModule) */
7497 void abstract_compiler__AbstractCompiler__mainmodule_61d(val
* self
, val
* p0
) {
7498 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= p0
; /* _mainmodule on <self:AbstractCompiler> */
7501 /* method abstract_compiler#AbstractCompiler#mainmodule= for (self: Object, MModule) */
7502 void VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule_61d(val
* self
, val
* p0
) {
7503 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,p0) on <self:Object(AbstractCompiler)> */
7504 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= p0
; /* _mainmodule on <self:Object(AbstractCompiler)> */
7509 /* method abstract_compiler#AbstractCompiler#realmainmodule for (self: AbstractCompiler): MModule */
7510 val
* abstract_compiler__AbstractCompiler__realmainmodule(val
* self
) {
7511 val
* var
/* : MModule */;
7512 val
* var1
/* : MModule */;
7513 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
; /* _realmainmodule on <self:AbstractCompiler> */
7514 if (unlikely(var1
== NULL
)) {
7515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
7516 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 467);
7523 /* method abstract_compiler#AbstractCompiler#realmainmodule for (self: Object): MModule */
7524 val
* VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule(val
* self
) {
7525 val
* var
/* : MModule */;
7526 val
* var1
/* : MModule */;
7527 val
* var3
/* : MModule */;
7528 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule (self) on <self:Object(AbstractCompiler)> */
7529 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
; /* _realmainmodule on <self:Object(AbstractCompiler)> */
7530 if (unlikely(var3
== NULL
)) {
7531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
7532 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 467);
7542 /* method abstract_compiler#AbstractCompiler#realmainmodule= for (self: AbstractCompiler, MModule) */
7543 void abstract_compiler__AbstractCompiler__realmainmodule_61d(val
* self
, val
* p0
) {
7544 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= p0
; /* _realmainmodule on <self:AbstractCompiler> */
7547 /* method abstract_compiler#AbstractCompiler#realmainmodule= for (self: Object, MModule) */
7548 void VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule_61d(val
* self
, val
* p0
) {
7549 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule= (self,p0) on <self:Object(AbstractCompiler)> */
7550 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= p0
; /* _realmainmodule on <self:Object(AbstractCompiler)> */
7555 /* method abstract_compiler#AbstractCompiler#modelbuilder for (self: AbstractCompiler): ModelBuilder */
7556 val
* abstract_compiler__AbstractCompiler__modelbuilder(val
* self
) {
7557 val
* var
/* : ModelBuilder */;
7558 val
* var1
/* : ModelBuilder */;
7559 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
7560 if (unlikely(var1
== NULL
)) {
7561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7562 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
7569 /* method abstract_compiler#AbstractCompiler#modelbuilder for (self: Object): ModelBuilder */
7570 val
* VIRTUAL_abstract_compiler__AbstractCompiler__modelbuilder(val
* self
) {
7571 val
* var
/* : ModelBuilder */;
7572 val
* var1
/* : ModelBuilder */;
7573 val
* var3
/* : ModelBuilder */;
7574 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:Object(AbstractCompiler)> */
7575 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:Object(AbstractCompiler)> */
7576 if (unlikely(var3
== NULL
)) {
7577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7578 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
7588 /* method abstract_compiler#AbstractCompiler#modelbuilder= for (self: AbstractCompiler, ModelBuilder) */
7589 void abstract_compiler__AbstractCompiler__modelbuilder_61d(val
* self
, val
* p0
) {
7590 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= p0
; /* _modelbuilder on <self:AbstractCompiler> */
7593 /* method abstract_compiler#AbstractCompiler#modelbuilder= for (self: Object, ModelBuilder) */
7594 void VIRTUAL_abstract_compiler__AbstractCompiler__modelbuilder_61d(val
* self
, val
* p0
) {
7595 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder= (self,p0) on <self:Object(AbstractCompiler)> */
7596 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= p0
; /* _modelbuilder on <self:Object(AbstractCompiler)> */
7601 /* method abstract_compiler#AbstractCompiler#init for (self: AbstractCompiler, MModule, ModelBuilder) */
7602 void abstract_compiler__AbstractCompiler__init(val
* self
, val
* p0
, val
* p1
) {
7603 val
* var_mainmodule
/* var mainmodule: MModule */;
7604 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7605 var_mainmodule
= p0
;
7606 var_modelbuilder
= p1
;
7608 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mainmodule) on <self:AbstractCompiler> */
7609 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mainmodule
; /* _mainmodule on <self:AbstractCompiler> */
7614 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule= (self,var_mainmodule) on <self:AbstractCompiler> */
7615 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= var_mainmodule
; /* _realmainmodule on <self:AbstractCompiler> */
7620 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder= (self,var_modelbuilder) on <self:AbstractCompiler> */
7621 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= var_modelbuilder
; /* _modelbuilder on <self:AbstractCompiler> */
7627 /* method abstract_compiler#AbstractCompiler#init for (self: Object, MModule, ModelBuilder) */
7628 void VIRTUAL_abstract_compiler__AbstractCompiler__init(val
* self
, val
* p0
, val
* p1
) {
7629 abstract_compiler__AbstractCompiler__init(self
, p0
, p1
); /* Direct call abstract_compiler#AbstractCompiler#init on <self:Object(AbstractCompiler)>*/
7632 /* method abstract_compiler#AbstractCompiler#new_file for (self: AbstractCompiler, String): CodeFile */
7633 val
* abstract_compiler__AbstractCompiler__new_file(val
* self
, val
* p0
) {
7634 val
* var
/* : CodeFile */;
7635 val
* var_name
/* var name: String */;
7636 val
* var1
/* : ModelBuilder */;
7637 val
* var3
/* : ModelBuilder */;
7638 val
* var4
/* : ToolContext */;
7639 val
* var6
/* : ToolContext */;
7640 val
* var7
/* : OptionBool */;
7641 val
* var9
/* : OptionBool */;
7642 val
* var10
/* : nullable Object */;
7643 val
* var12
/* : nullable Object */;
7644 short int var13
/* : Bool */;
7645 val
* var14
/* : List[CodeFile] */;
7646 val
* var16
/* : List[CodeFile] */;
7647 short int var17
/* : Bool */;
7648 val
* var18
/* : CodeFile */;
7649 val
* var19
/* : MModule */;
7650 val
* var21
/* : MModule */;
7651 val
* var22
/* : String */;
7652 val
* var24
/* : String */;
7653 val
* var_f
/* var f: CodeFile */;
7654 val
* var25
/* : List[CodeFile] */;
7655 val
* var27
/* : List[CodeFile] */;
7656 val
* var28
/* : List[CodeFile] */;
7657 val
* var30
/* : List[CodeFile] */;
7658 val
* var31
/* : nullable Object */;
7659 val
* var32
/* : CodeFile */;
7660 val
* var_f33
/* var f: CodeFile */;
7661 val
* var34
/* : List[CodeFile] */;
7662 val
* var36
/* : List[CodeFile] */;
7665 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
7666 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
7667 if (unlikely(var3
== NULL
)) {
7668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7669 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
7677 { /* Inline modelbuilder#ModelBuilder#toolcontext (var1) on <var1:ModelBuilder> */
7678 var6
= var1
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var1:ModelBuilder> */
7679 if (unlikely(var6
== NULL
)) {
7680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7681 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
7689 { /* Inline abstract_compiler#ToolContext#opt_group_c_files (var4) on <var4:ToolContext> */
7690 var9
= var4
->attrs
[COLOR_abstract_compiler__ToolContext___opt_group_c_files
].val
; /* _opt_group_c_files on <var4:ToolContext> */
7691 if (unlikely(var9
== NULL
)) {
7692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_group_c_files");
7693 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 43);
7701 { /* Inline opts#Option#value (var7) on <var7:OptionBool> */
7702 var12
= var7
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var7:OptionBool> */
7704 RET_LABEL11
:(void)0;
7707 var13
= ((struct instance_kernel__Bool
*)var10
)->value
; /* autounbox from nullable Object to Bool */;
7710 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:AbstractCompiler> */
7711 var16
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7712 if (unlikely(var16
== NULL
)) {
7713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7714 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7718 RET_LABEL15
:(void)0;
7722 var17
= list__List__is_empty(var14
);
7725 var18
= NEW_abstract_compiler__CodeFile(&type_abstract_compiler__CodeFile
);
7727 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
7728 var21
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:AbstractCompiler> */
7729 if (unlikely(var21
== NULL
)) {
7730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7731 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
7735 RET_LABEL20
:(void)0;
7739 { /* Inline mmodule#MModule#name (var19) on <var19:MModule> */
7740 var24
= var19
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var19:MModule> */
7741 if (unlikely(var24
== NULL
)) {
7742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7743 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
7747 RET_LABEL23
:(void)0;
7751 ((void (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_compiler__CodeFile__name_61d
]))(var18
, var22
) /* name= on <var18:CodeFile>*/;
7754 ((void (*)(val
*))(var18
->class->vft
[COLOR_kernel__Object__init
]))(var18
) /* init on <var18:CodeFile>*/;
7758 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:AbstractCompiler> */
7759 var27
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7760 if (unlikely(var27
== NULL
)) {
7761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7762 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7766 RET_LABEL26
:(void)0;
7770 abstract_collection__Sequence__add(var25
, var_f
); /* Direct call abstract_collection#Sequence#add on <var25:List[CodeFile]>*/
7775 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:AbstractCompiler> */
7776 var30
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7777 if (unlikely(var30
== NULL
)) {
7778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7779 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7783 RET_LABEL29
:(void)0;
7787 var31
= list__List__first(var28
);
7793 var32
= NEW_abstract_compiler__CodeFile(&type_abstract_compiler__CodeFile
);
7795 ((void (*)(val
*, val
*))(var32
->class->vft
[COLOR_abstract_compiler__CodeFile__name_61d
]))(var32
, var_name
) /* name= on <var32:CodeFile>*/;
7798 ((void (*)(val
*))(var32
->class->vft
[COLOR_kernel__Object__init
]))(var32
) /* init on <var32:CodeFile>*/;
7802 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:AbstractCompiler> */
7803 var36
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7804 if (unlikely(var36
== NULL
)) {
7805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7806 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7810 RET_LABEL35
:(void)0;
7814 abstract_collection__Sequence__add(var34
, var_f33
); /* Direct call abstract_collection#Sequence#add on <var34:List[CodeFile]>*/
7821 /* method abstract_compiler#AbstractCompiler#new_file for (self: Object, String): CodeFile */
7822 val
* VIRTUAL_abstract_compiler__AbstractCompiler__new_file(val
* self
, val
* p0
) {
7823 val
* var
/* : CodeFile */;
7824 val
* var1
/* : CodeFile */;
7825 var1
= abstract_compiler__AbstractCompiler__new_file(self
, p0
);
7830 /* method abstract_compiler#AbstractCompiler#files for (self: AbstractCompiler): List[CodeFile] */
7831 val
* abstract_compiler__AbstractCompiler__files(val
* self
) {
7832 val
* var
/* : List[CodeFile] */;
7833 val
* var1
/* : List[CodeFile] */;
7834 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7835 if (unlikely(var1
== NULL
)) {
7836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7837 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7844 /* method abstract_compiler#AbstractCompiler#files for (self: Object): List[CodeFile] */
7845 val
* VIRTUAL_abstract_compiler__AbstractCompiler__files(val
* self
) {
7846 val
* var
/* : List[CodeFile] */;
7847 val
* var1
/* : List[CodeFile] */;
7848 val
* var3
/* : List[CodeFile] */;
7849 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:Object(AbstractCompiler)> */
7850 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:Object(AbstractCompiler)> */
7851 if (unlikely(var3
== NULL
)) {
7852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7853 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 499);
7863 /* method abstract_compiler#AbstractCompiler#header for (self: AbstractCompiler): CodeWriter */
7864 val
* abstract_compiler__AbstractCompiler__header(val
* self
) {
7865 val
* var
/* : CodeWriter */;
7866 val
* var1
/* : CodeWriter */;
7867 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
7868 if (unlikely(var1
== NULL
)) {
7869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
7870 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
7877 /* method abstract_compiler#AbstractCompiler#header for (self: Object): CodeWriter */
7878 val
* VIRTUAL_abstract_compiler__AbstractCompiler__header(val
* self
) {
7879 val
* var
/* : CodeWriter */;
7880 val
* var1
/* : CodeWriter */;
7881 val
* var3
/* : CodeWriter */;
7882 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:Object(AbstractCompiler)> */
7883 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:Object(AbstractCompiler)> */
7884 if (unlikely(var3
== NULL
)) {
7885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
7886 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
7896 /* method abstract_compiler#AbstractCompiler#header= for (self: AbstractCompiler, CodeWriter) */
7897 void abstract_compiler__AbstractCompiler__header_61d(val
* self
, val
* p0
) {
7898 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
= p0
; /* _header on <self:AbstractCompiler> */
7901 /* method abstract_compiler#AbstractCompiler#header= for (self: Object, CodeWriter) */
7902 void VIRTUAL_abstract_compiler__AbstractCompiler__header_61d(val
* self
, val
* p0
) {
7903 { /* Inline abstract_compiler#AbstractCompiler#header= (self,p0) on <self:Object(AbstractCompiler)> */
7904 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
= p0
; /* _header on <self:Object(AbstractCompiler)> */
7909 /* method abstract_compiler#AbstractCompiler#provide_declaration for (self: AbstractCompiler, String, String) */
7910 void abstract_compiler__AbstractCompiler__provide_declaration(val
* self
, val
* p0
, val
* p1
) {
7911 val
* var_key
/* var key: String */;
7912 val
* var_s
/* var s: String */;
7913 val
* var
/* : HashMap[String, String] */;
7914 val
* var2
/* : HashMap[String, String] */;
7915 short int var3
/* : Bool */;
7916 val
* var4
/* : HashMap[String, String] */;
7917 val
* var6
/* : HashMap[String, String] */;
7918 val
* var7
/* : nullable Object */;
7919 short int var8
/* : Bool */;
7920 short int var9
/* : Bool */;
7921 val
* var10
/* : HashMap[String, String] */;
7922 val
* var12
/* : HashMap[String, String] */;
7926 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7927 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7928 if (unlikely(var2
== NULL
)) {
7929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7930 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
7938 var3
= abstract_collection__MapRead__has_key(var
, var_key
);
7942 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7943 var6
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7944 if (unlikely(var6
== NULL
)) {
7945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7946 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
7954 var7
= hash_collection__HashMap___91d_93d(var4
, var_key
);
7957 var9
= string__FlatString___61d_61d(var7
, var_s
);
7960 if (unlikely(!var8
)) {
7961 PRINT_ERROR("Runtime error: %s", "Assert failed");
7962 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 513);
7968 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7969 var12
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7970 if (unlikely(var12
== NULL
)) {
7971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7972 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
7976 RET_LABEL11
:(void)0;
7980 hash_collection__HashMap___91d_93d_61d(var10
, var_key
, var_s
); /* Direct call hash_collection#HashMap#[]= on <var10:HashMap[String, String]>*/
7984 /* method abstract_compiler#AbstractCompiler#provide_declaration for (self: Object, String, String) */
7985 void VIRTUAL_abstract_compiler__AbstractCompiler__provide_declaration(val
* self
, val
* p0
, val
* p1
) {
7986 abstract_compiler__AbstractCompiler__provide_declaration(self
, p0
, p1
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:Object(AbstractCompiler)>*/
7989 /* method abstract_compiler#AbstractCompiler#provided_declarations for (self: AbstractCompiler): HashMap[String, String] */
7990 val
* abstract_compiler__AbstractCompiler__provided_declarations(val
* self
) {
7991 val
* var
/* : HashMap[String, String] */;
7992 val
* var1
/* : HashMap[String, String] */;
7993 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7994 if (unlikely(var1
== NULL
)) {
7995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7996 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
8003 /* method abstract_compiler#AbstractCompiler#provided_declarations for (self: Object): HashMap[String, String] */
8004 val
* VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations(val
* self
) {
8005 val
* var
/* : HashMap[String, String] */;
8006 val
* var1
/* : HashMap[String, String] */;
8007 val
* var3
/* : HashMap[String, String] */;
8008 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:Object(AbstractCompiler)> */
8009 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:Object(AbstractCompiler)> */
8010 if (unlikely(var3
== NULL
)) {
8011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
8012 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 518);
8022 /* method abstract_compiler#AbstractCompiler#requirers_of_declarations for (self: AbstractCompiler): HashMap[String, ANode] */
8023 val
* abstract_compiler__AbstractCompiler__requirers_of_declarations(val
* self
) {
8024 val
* var
/* : HashMap[String, ANode] */;
8025 val
* var1
/* : HashMap[String, ANode] */;
8026 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <self:AbstractCompiler> */
8027 if (unlikely(var1
== NULL
)) {
8028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
8029 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 520);
8036 /* method abstract_compiler#AbstractCompiler#requirers_of_declarations for (self: Object): HashMap[String, ANode] */
8037 val
* VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations(val
* self
) {
8038 val
* var
/* : HashMap[String, ANode] */;
8039 val
* var1
/* : HashMap[String, ANode] */;
8040 val
* var3
/* : HashMap[String, ANode] */;
8041 { /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (self) on <self:Object(AbstractCompiler)> */
8042 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <self:Object(AbstractCompiler)> */
8043 if (unlikely(var3
== NULL
)) {
8044 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
8045 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 520);
8055 /* method abstract_compiler#AbstractCompiler#build_c_to_nit_bindings for (self: AbstractCompiler) */
8056 void abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(val
* self
) {
8057 val
* var
/* : ModelBuilder */;
8058 val
* var2
/* : ModelBuilder */;
8059 val
* var3
/* : String */;
8060 val
* var5
/* : String */;
8061 val
* var_compile_dir
/* var compile_dir: String */;
8062 val
* var6
/* : OFStream */;
8063 static val
* varonce
;
8064 val
* var7
/* : String */;
8065 char* var8
/* : NativeString */;
8066 long var9
/* : Int */;
8067 val
* var10
/* : FlatString */;
8068 val
* var11
/* : Array[Object] */;
8069 long var12
/* : Int */;
8070 val
* var13
/* : NativeArray[Object] */;
8071 val
* var14
/* : String */;
8072 val
* var_stream
/* var stream: OFStream */;
8073 static val
* varonce15
;
8074 val
* var16
/* : String */;
8075 char* var17
/* : NativeString */;
8076 long var18
/* : Int */;
8077 val
* var19
/* : FlatString */;
8078 static val
* varonce20
;
8079 val
* var21
/* : String */;
8080 char* var22
/* : NativeString */;
8081 long var23
/* : Int */;
8082 val
* var24
/* : FlatString */;
8083 static val
* varonce25
;
8084 val
* var26
/* : String */;
8085 char* var27
/* : NativeString */;
8086 long var28
/* : Int */;
8087 val
* var29
/* : FlatString */;
8088 static val
* varonce30
;
8089 val
* var31
/* : String */;
8090 char* var32
/* : NativeString */;
8091 long var33
/* : Int */;
8092 val
* var34
/* : FlatString */;
8093 static val
* varonce35
;
8094 val
* var36
/* : String */;
8095 char* var37
/* : NativeString */;
8096 long var38
/* : Int */;
8097 val
* var39
/* : FlatString */;
8098 static val
* varonce40
;
8099 val
* var41
/* : String */;
8100 char* var42
/* : NativeString */;
8101 long var43
/* : Int */;
8102 val
* var44
/* : FlatString */;
8103 static val
* varonce45
;
8104 val
* var46
/* : String */;
8105 char* var47
/* : NativeString */;
8106 long var48
/* : Int */;
8107 val
* var49
/* : FlatString */;
8108 static val
* varonce50
;
8109 val
* var51
/* : String */;
8110 char* var52
/* : NativeString */;
8111 long var53
/* : Int */;
8112 val
* var54
/* : FlatString */;
8113 static val
* varonce55
;
8114 val
* var56
/* : String */;
8115 char* var57
/* : NativeString */;
8116 long var58
/* : Int */;
8117 val
* var59
/* : FlatString */;
8118 val
* var60
/* : HashMap[String, String] */;
8119 val
* var62
/* : HashMap[String, String] */;
8120 long var63
/* : Int */;
8121 static val
* varonce64
;
8122 val
* var65
/* : String */;
8123 char* var66
/* : NativeString */;
8124 long var67
/* : Int */;
8125 val
* var68
/* : FlatString */;
8126 val
* var69
/* : Array[Object] */;
8127 long var70
/* : Int */;
8128 val
* var71
/* : NativeArray[Object] */;
8129 val
* var72
/* : Object */;
8130 val
* var73
/* : String */;
8131 val
* var74
/* : HashMap[String, String] */;
8132 val
* var76
/* : HashMap[String, String] */;
8133 val
* var77
/* : RemovableCollection[Object] */;
8134 val
* var79
/* : RemovableCollection[Object] */;
8135 val
* var_
/* var : RemovableCollection[String] */;
8136 val
* var80
/* : Iterator[nullable Object] */;
8137 val
* var_81
/* var : Iterator[String] */;
8138 short int var82
/* : Bool */;
8139 val
* var83
/* : nullable Object */;
8140 val
* var_i
/* var i: String */;
8141 static val
* varonce84
;
8142 val
* var85
/* : String */;
8143 char* var86
/* : NativeString */;
8144 long var87
/* : Int */;
8145 val
* var88
/* : FlatString */;
8146 static val
* varonce89
;
8147 val
* var90
/* : String */;
8148 char* var91
/* : NativeString */;
8149 long var92
/* : Int */;
8150 val
* var93
/* : FlatString */;
8151 val
* var94
/* : HashMap[String, String] */;
8152 val
* var96
/* : HashMap[String, String] */;
8153 val
* var97
/* : nullable Object */;
8154 static val
* varonce98
;
8155 val
* var99
/* : String */;
8156 char* var100
/* : NativeString */;
8157 long var101
/* : Int */;
8158 val
* var102
/* : FlatString */;
8159 static val
* varonce104
;
8160 val
* var105
/* : String */;
8161 char* var106
/* : NativeString */;
8162 long var107
/* : Int */;
8163 val
* var108
/* : FlatString */;
8164 static val
* varonce109
;
8165 val
* var110
/* : String */;
8166 char* var111
/* : NativeString */;
8167 long var112
/* : Int */;
8168 val
* var113
/* : FlatString */;
8169 static val
* varonce114
;
8170 val
* var115
/* : String */;
8171 char* var116
/* : NativeString */;
8172 long var117
/* : Int */;
8173 val
* var118
/* : FlatString */;
8174 val
* var119
/* : HashMap[String, String] */;
8175 val
* var121
/* : HashMap[String, String] */;
8176 long var122
/* : Int */;
8177 static val
* varonce123
;
8178 val
* var124
/* : String */;
8179 char* var125
/* : NativeString */;
8180 long var126
/* : Int */;
8181 val
* var127
/* : FlatString */;
8182 val
* var128
/* : Array[Object] */;
8183 long var129
/* : Int */;
8184 val
* var130
/* : NativeArray[Object] */;
8185 val
* var131
/* : Object */;
8186 val
* var132
/* : String */;
8187 static val
* varonce133
;
8188 val
* var134
/* : String */;
8189 char* var135
/* : NativeString */;
8190 long var136
/* : Int */;
8191 val
* var137
/* : FlatString */;
8192 static val
* varonce138
;
8193 val
* var139
/* : String */;
8194 char* var140
/* : NativeString */;
8195 long var141
/* : Int */;
8196 val
* var142
/* : FlatString */;
8197 static val
* varonce143
;
8198 val
* var144
/* : String */;
8199 char* var145
/* : NativeString */;
8200 long var146
/* : Int */;
8201 val
* var147
/* : FlatString */;
8202 static val
* varonce148
;
8203 val
* var149
/* : String */;
8204 char* var150
/* : NativeString */;
8205 long var151
/* : Int */;
8206 val
* var152
/* : FlatString */;
8207 static val
* varonce153
;
8208 val
* var154
/* : String */;
8209 char* var155
/* : NativeString */;
8210 long var156
/* : Int */;
8211 val
* var157
/* : FlatString */;
8212 static val
* varonce158
;
8213 val
* var159
/* : String */;
8214 char* var160
/* : NativeString */;
8215 long var161
/* : Int */;
8216 val
* var162
/* : FlatString */;
8217 static val
* varonce163
;
8218 val
* var164
/* : String */;
8219 char* var165
/* : NativeString */;
8220 long var166
/* : Int */;
8221 val
* var167
/* : FlatString */;
8222 static val
* varonce168
;
8223 val
* var169
/* : String */;
8224 char* var170
/* : NativeString */;
8225 long var171
/* : Int */;
8226 val
* var172
/* : FlatString */;
8227 val
* var173
/* : OFStream */;
8228 static val
* varonce174
;
8229 val
* var175
/* : String */;
8230 char* var176
/* : NativeString */;
8231 long var177
/* : Int */;
8232 val
* var178
/* : FlatString */;
8233 val
* var179
/* : Array[Object] */;
8234 long var180
/* : Int */;
8235 val
* var181
/* : NativeArray[Object] */;
8236 val
* var182
/* : String */;
8237 static val
* varonce183
;
8238 val
* var184
/* : String */;
8239 char* var185
/* : NativeString */;
8240 long var186
/* : Int */;
8241 val
* var187
/* : FlatString */;
8242 val
* var188
/* : Array[ExternFile] */;
8243 val
* var190
/* : Array[ExternFile] */;
8244 val
* var191
/* : ExternCFile */;
8245 static val
* varonce192
;
8246 val
* var193
/* : String */;
8247 char* var194
/* : NativeString */;
8248 long var195
/* : Int */;
8249 val
* var196
/* : FlatString */;
8250 val
* var197
/* : Array[Object] */;
8251 long var198
/* : Int */;
8252 val
* var199
/* : NativeArray[Object] */;
8253 val
* var200
/* : String */;
8254 static val
* varonce201
;
8255 val
* var202
/* : String */;
8256 char* var203
/* : NativeString */;
8257 long var204
/* : Int */;
8258 val
* var205
/* : FlatString */;
8260 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
8261 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
8262 if (unlikely(var2
== NULL
)) {
8263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8264 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
8272 { /* Inline abstract_compiler#ModelBuilder#compile_dir (var) on <var:ModelBuilder> */
8273 var5
= var
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <var:ModelBuilder> */
8274 if (unlikely(var5
== NULL
)) {
8275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
8276 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 117);
8283 var_compile_dir
= var3
;
8284 var6
= NEW_file__OFStream(&type_file__OFStream
);
8288 var8
= "/c_functions_hash.c";
8290 var10
= string__NativeString__to_s_with_length(var8
, var9
);
8294 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
8295 { /* var11 = array_instance Array[Object] */
8297 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraykernel__Object
);
8298 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_compile_dir
;
8299 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var7
;
8301 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[Object]>*/;
8305 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_string__Object__to_s
]))(var11
) /* to_s on <var11:Array[Object]>*/;
8308 file__OFStream__open(var6
, var14
); /* Direct call file#OFStream#open on <var6:OFStream>*/
8314 var17
= "#include <string.h>\n";
8316 var19
= string__NativeString__to_s_with_length(var17
, var18
);
8321 file__OFStream__write(var_stream
, var16
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8326 var22
= "#include <stdlib.h>\n";
8328 var24
= string__NativeString__to_s_with_length(var22
, var23
);
8333 file__OFStream__write(var_stream
, var21
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8338 var27
= "#include \"c_functions_hash.h\"\n";
8340 var29
= string__NativeString__to_s_with_length(var27
, var28
);
8345 file__OFStream__write(var_stream
, var26
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8350 var32
= "typedef struct C_Nit_Names{char* name; char* nit_name;}C_Nit_Names;\n";
8352 var34
= string__NativeString__to_s_with_length(var32
, var33
);
8357 file__OFStream__write(var_stream
, var31
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8362 var37
= "const char* get_nit_name(register const char* procproc, register unsigned int len){\n";
8364 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8369 file__OFStream__write(var_stream
, var36
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8374 var42
= "char* procname = malloc(len+1);";
8376 var44
= string__NativeString__to_s_with_length(var42
, var43
);
8381 file__OFStream__write(var_stream
, var41
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8386 var47
= "memcpy(procname, procproc, len);";
8388 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8393 file__OFStream__write(var_stream
, var46
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8398 var52
= "procname[len] = \'\\0\';";
8400 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8405 file__OFStream__write(var_stream
, var51
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8410 var57
= "static const C_Nit_Names map[";
8412 var59
= string__NativeString__to_s_with_length(var57
, var58
);
8417 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
8418 var62
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
8419 if (unlikely(var62
== NULL
)) {
8420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
8421 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
8425 RET_LABEL61
:(void)0;
8429 var63
= hash_collection__HashMap__length(var60
);
8436 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8440 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
8441 { /* var69 = array_instance Array[Object] */
8443 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
8444 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var56
;
8445 var72
= BOX_kernel__Int(var63
); /* autobox from Int to Object */
8446 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var72
;
8447 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var65
;
8449 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
8453 var73
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
8456 file__OFStream__write(var_stream
, var73
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8459 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
8460 var76
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
8461 if (unlikely(var76
== NULL
)) {
8462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
8463 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
8467 RET_LABEL75
:(void)0;
8471 { /* Inline hash_collection#HashMap#keys (var74) on <var74:HashMap[String, String]> */
8472 var79
= var74
->attrs
[COLOR_hash_collection__HashMap___keys
].val
; /* _keys on <var74:HashMap[String, String]> */
8473 if (unlikely(var79
== NULL
)) {
8474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
8475 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/hash_collection.nit", 249);
8479 RET_LABEL78
:(void)0;
8484 var80
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:RemovableCollection[String]>*/;
8489 var82
= ((short int (*)(val
*))(var_81
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_81
) /* is_ok on <var_81:Iterator[String]>*/;
8493 var83
= ((val
* (*)(val
*))(var_81
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_81
) /* item on <var_81:Iterator[String]>*/;
8501 var88
= string__NativeString__to_s_with_length(var86
, var87
);
8506 file__OFStream__write(var_stream
, var85
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8509 file__OFStream__write(var_stream
, var_i
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8516 var93
= string__NativeString__to_s_with_length(var91
, var92
);
8521 file__OFStream__write(var_stream
, var90
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8524 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
8525 var96
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
8526 if (unlikely(var96
== NULL
)) {
8527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
8528 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
8532 RET_LABEL95
:(void)0;
8536 var97
= hash_collection__HashMap___91d_93d(var94
, var_i
);
8539 file__OFStream__write(var_stream
, var97
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8546 var102
= string__NativeString__to_s_with_length(var100
, var101
);
8551 file__OFStream__write(var_stream
, var99
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8554 ((void (*)(val
*))(var_81
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_81
) /* next on <var_81:Iterator[String]>*/;
8560 BREAK_label
: (void)0;
8562 { /* Inline abstract_collection#Iterator#finish (var_81) on <var_81:Iterator[String]> */
8563 RET_LABEL103
:(void)0;
8567 var105
= varonce104
;
8571 var108
= string__NativeString__to_s_with_length(var106
, var107
);
8573 varonce104
= var105
;
8576 file__OFStream__write(var_stream
, var105
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8579 var110
= varonce109
;
8583 var113
= string__NativeString__to_s_with_length(var111
, var112
);
8585 varonce109
= var110
;
8588 file__OFStream__write(var_stream
, var110
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8591 var115
= varonce114
;
8593 var116
= "for(i = 0; i < ";
8595 var118
= string__NativeString__to_s_with_length(var116
, var117
);
8597 varonce114
= var115
;
8600 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
8601 var121
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
8602 if (unlikely(var121
== NULL
)) {
8603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
8604 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
8608 RET_LABEL120
:(void)0;
8612 var122
= hash_collection__HashMap__length(var119
);
8615 var124
= varonce123
;
8619 var127
= string__NativeString__to_s_with_length(var125
, var126
);
8621 varonce123
= var124
;
8623 var128
= NEW_array__Array(&type_array__Arraykernel__Object
);
8624 { /* var128 = array_instance Array[Object] */
8626 var130
= NEW_array__NativeArray(var129
, &type_array__NativeArraykernel__Object
);
8627 ((struct instance_array__NativeArray
*)var130
)->values
[0] = (val
*) var115
;
8628 var131
= BOX_kernel__Int(var122
); /* autobox from Int to Object */
8629 ((struct instance_array__NativeArray
*)var130
)->values
[1] = (val
*) var131
;
8630 ((struct instance_array__NativeArray
*)var130
)->values
[2] = (val
*) var124
;
8632 ((void (*)(val
*, val
*, long))(var128
->class->vft
[COLOR_array__Array__with_native
]))(var128
, var130
, var129
) /* with_native on <var128:Array[Object]>*/;
8636 var132
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_string__Object__to_s
]))(var128
) /* to_s on <var128:Array[Object]>*/;
8639 file__OFStream__write(var_stream
, var132
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8642 var134
= varonce133
;
8644 var135
= "if(strcmp(procname,map[i].name) == 0){";
8646 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8648 varonce133
= var134
;
8651 file__OFStream__write(var_stream
, var134
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8654 var139
= varonce138
;
8656 var140
= "free(procname);";
8658 var142
= string__NativeString__to_s_with_length(var140
, var141
);
8660 varonce138
= var139
;
8663 file__OFStream__write(var_stream
, var139
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8666 var144
= varonce143
;
8668 var145
= "return map[i].nit_name;";
8670 var147
= string__NativeString__to_s_with_length(var145
, var146
);
8672 varonce143
= var144
;
8675 file__OFStream__write(var_stream
, var144
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8678 var149
= varonce148
;
8682 var152
= string__NativeString__to_s_with_length(var150
, var151
);
8684 varonce148
= var149
;
8687 file__OFStream__write(var_stream
, var149
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8690 var154
= varonce153
;
8694 var157
= string__NativeString__to_s_with_length(var155
, var156
);
8696 varonce153
= var154
;
8699 file__OFStream__write(var_stream
, var154
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8702 var159
= varonce158
;
8704 var160
= "free(procname);";
8706 var162
= string__NativeString__to_s_with_length(var160
, var161
);
8708 varonce158
= var159
;
8711 file__OFStream__write(var_stream
, var159
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8714 var164
= varonce163
;
8716 var165
= "return NULL;";
8718 var167
= string__NativeString__to_s_with_length(var165
, var166
);
8720 varonce163
= var164
;
8723 file__OFStream__write(var_stream
, var164
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8726 var169
= varonce168
;
8730 var172
= string__NativeString__to_s_with_length(var170
, var171
);
8732 varonce168
= var169
;
8735 file__OFStream__write(var_stream
, var169
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8738 file__OFStream__close(var_stream
); /* Direct call file#OFStream#close on <var_stream:OFStream>*/
8740 var173
= NEW_file__OFStream(&type_file__OFStream
);
8742 var175
= varonce174
;
8744 var176
= "/c_functions_hash.h";
8746 var178
= string__NativeString__to_s_with_length(var176
, var177
);
8748 varonce174
= var175
;
8750 var179
= NEW_array__Array(&type_array__Arraykernel__Object
);
8751 { /* var179 = array_instance Array[Object] */
8753 var181
= NEW_array__NativeArray(var180
, &type_array__NativeArraykernel__Object
);
8754 ((struct instance_array__NativeArray
*)var181
)->values
[0] = (val
*) var_compile_dir
;
8755 ((struct instance_array__NativeArray
*)var181
)->values
[1] = (val
*) var175
;
8757 ((void (*)(val
*, val
*, long))(var179
->class->vft
[COLOR_array__Array__with_native
]))(var179
, var181
, var180
) /* with_native on <var179:Array[Object]>*/;
8761 var182
= ((val
* (*)(val
*))(var179
->class->vft
[COLOR_string__Object__to_s
]))(var179
) /* to_s on <var179:Array[Object]>*/;
8764 file__OFStream__open(var173
, var182
); /* Direct call file#OFStream#open on <var173:OFStream>*/
8766 var_stream
= var173
;
8768 var184
= varonce183
;
8770 var185
= "const char* get_nit_name(register const char* procname, register unsigned int len);\n";
8772 var187
= string__NativeString__to_s_with_length(var185
, var186
);
8774 varonce183
= var184
;
8777 file__OFStream__write(var_stream
, var184
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
8780 file__OFStream__close(var_stream
); /* Direct call file#OFStream#close on <var_stream:OFStream>*/
8783 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (self) on <self:AbstractCompiler> */
8784 var190
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <self:AbstractCompiler> */
8785 if (unlikely(var190
== NULL
)) {
8786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
8787 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 901);
8791 RET_LABEL189
:(void)0;
8794 var191
= NEW_c_tools__ExternCFile(&type_c_tools__ExternCFile
);
8796 var193
= varonce192
;
8798 var194
= "/c_functions_hash.c";
8800 var196
= string__NativeString__to_s_with_length(var194
, var195
);
8802 varonce192
= var193
;
8804 var197
= NEW_array__Array(&type_array__Arraykernel__Object
);
8805 { /* var197 = array_instance Array[Object] */
8807 var199
= NEW_array__NativeArray(var198
, &type_array__NativeArraykernel__Object
);
8808 ((struct instance_array__NativeArray
*)var199
)->values
[0] = (val
*) var_compile_dir
;
8809 ((struct instance_array__NativeArray
*)var199
)->values
[1] = (val
*) var193
;
8811 ((void (*)(val
*, val
*, long))(var197
->class->vft
[COLOR_array__Array__with_native
]))(var197
, var199
, var198
) /* with_native on <var197:Array[Object]>*/;
8815 var200
= ((val
* (*)(val
*))(var197
->class->vft
[COLOR_string__Object__to_s
]))(var197
) /* to_s on <var197:Array[Object]>*/;
8818 var202
= varonce201
;
8822 var205
= string__NativeString__to_s_with_length(var203
, var204
);
8824 varonce201
= var202
;
8827 c_tools__ExternCFile__init(var191
, var200
, var202
); /* Direct call c_tools#ExternCFile#init on <var191:ExternCFile>*/
8830 array__Array__add(var188
, var191
); /* Direct call array#Array#add on <var188:Array[ExternFile]>*/
8834 /* method abstract_compiler#AbstractCompiler#build_c_to_nit_bindings for (self: Object) */
8835 void VIRTUAL_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(val
* self
) {
8836 abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(self
); /* Direct call abstract_compiler#AbstractCompiler#build_c_to_nit_bindings on <self:Object(AbstractCompiler)>*/
8839 /* method abstract_compiler#AbstractCompiler#compile_header for (self: AbstractCompiler) */
8840 void abstract_compiler__AbstractCompiler__compile_header(val
* self
) {
8841 val
* var
/* : CodeWriter */;
8842 val
* var2
/* : CodeWriter */;
8843 static val
* varonce
;
8844 val
* var3
/* : String */;
8845 char* var4
/* : NativeString */;
8846 long var5
/* : Int */;
8847 val
* var6
/* : FlatString */;
8848 val
* var7
/* : CodeWriter */;
8849 val
* var9
/* : CodeWriter */;
8850 static val
* varonce10
;
8851 val
* var11
/* : String */;
8852 char* var12
/* : NativeString */;
8853 long var13
/* : Int */;
8854 val
* var14
/* : FlatString */;
8855 val
* var15
/* : CodeWriter */;
8856 val
* var17
/* : CodeWriter */;
8857 static val
* varonce18
;
8858 val
* var19
/* : String */;
8859 char* var20
/* : NativeString */;
8860 long var21
/* : Int */;
8861 val
* var22
/* : FlatString */;
8862 val
* var23
/* : CodeWriter */;
8863 val
* var25
/* : CodeWriter */;
8864 static val
* varonce26
;
8865 val
* var27
/* : String */;
8866 char* var28
/* : NativeString */;
8867 long var29
/* : Int */;
8868 val
* var30
/* : FlatString */;
8869 val
* var31
/* : CodeWriter */;
8870 val
* var33
/* : CodeWriter */;
8871 static val
* varonce34
;
8872 val
* var35
/* : String */;
8873 char* var36
/* : NativeString */;
8874 long var37
/* : Int */;
8875 val
* var38
/* : FlatString */;
8876 val
* var39
/* : CodeWriter */;
8877 val
* var41
/* : CodeWriter */;
8878 static val
* varonce42
;
8879 val
* var43
/* : String */;
8880 char* var44
/* : NativeString */;
8881 long var45
/* : Int */;
8882 val
* var46
/* : FlatString */;
8883 val
* var47
/* : CodeWriter */;
8884 val
* var49
/* : CodeWriter */;
8885 static val
* varonce50
;
8886 val
* var51
/* : String */;
8887 char* var52
/* : NativeString */;
8888 long var53
/* : Int */;
8889 val
* var54
/* : FlatString */;
8890 val
* var55
/* : CodeWriter */;
8891 val
* var57
/* : CodeWriter */;
8892 static val
* varonce58
;
8893 val
* var59
/* : String */;
8894 char* var60
/* : NativeString */;
8895 long var61
/* : Int */;
8896 val
* var62
/* : FlatString */;
8897 val
* var63
/* : CodeWriter */;
8898 val
* var65
/* : CodeWriter */;
8899 static val
* varonce66
;
8900 val
* var67
/* : String */;
8901 char* var68
/* : NativeString */;
8902 long var69
/* : Int */;
8903 val
* var70
/* : FlatString */;
8904 val
* var71
/* : CodeWriter */;
8905 val
* var73
/* : CodeWriter */;
8906 static val
* varonce74
;
8907 val
* var75
/* : String */;
8908 char* var76
/* : NativeString */;
8909 long var77
/* : Int */;
8910 val
* var78
/* : FlatString */;
8911 val
* var79
/* : ModelBuilder */;
8912 val
* var81
/* : ModelBuilder */;
8913 val
* var82
/* : ToolContext */;
8914 val
* var84
/* : ToolContext */;
8915 val
* var85
/* : OptionArray */;
8916 val
* var87
/* : OptionArray */;
8917 val
* var88
/* : nullable Object */;
8918 val
* var90
/* : nullable Object */;
8919 val
* var_gccd_disable
/* var gccd_disable: Array[String] */;
8920 short int var91
/* : Bool */;
8921 static val
* varonce92
;
8922 val
* var93
/* : String */;
8923 char* var94
/* : NativeString */;
8924 long var95
/* : Int */;
8925 val
* var96
/* : FlatString */;
8926 short int var97
/* : Bool */;
8927 short int var_
/* var : Bool */;
8928 static val
* varonce98
;
8929 val
* var99
/* : String */;
8930 char* var100
/* : NativeString */;
8931 long var101
/* : Int */;
8932 val
* var102
/* : FlatString */;
8933 short int var103
/* : Bool */;
8934 val
* var104
/* : CodeWriter */;
8935 val
* var106
/* : CodeWriter */;
8936 static val
* varonce107
;
8937 val
* var108
/* : String */;
8938 char* var109
/* : NativeString */;
8939 long var110
/* : Int */;
8940 val
* var111
/* : FlatString */;
8941 val
* var112
/* : CodeWriter */;
8942 val
* var114
/* : CodeWriter */;
8943 static val
* varonce115
;
8944 val
* var116
/* : String */;
8945 char* var117
/* : NativeString */;
8946 long var118
/* : Int */;
8947 val
* var119
/* : FlatString */;
8948 short int var120
/* : Bool */;
8949 static val
* varonce121
;
8950 val
* var122
/* : String */;
8951 char* var123
/* : NativeString */;
8952 long var124
/* : Int */;
8953 val
* var125
/* : FlatString */;
8954 short int var126
/* : Bool */;
8955 short int var_127
/* var : Bool */;
8956 static val
* varonce128
;
8957 val
* var129
/* : String */;
8958 char* var130
/* : NativeString */;
8959 long var131
/* : Int */;
8960 val
* var132
/* : FlatString */;
8961 short int var133
/* : Bool */;
8962 val
* var134
/* : CodeWriter */;
8963 val
* var136
/* : CodeWriter */;
8964 static val
* varonce137
;
8965 val
* var138
/* : String */;
8966 char* var139
/* : NativeString */;
8967 long var140
/* : Int */;
8968 val
* var141
/* : FlatString */;
8969 val
* var142
/* : CodeWriter */;
8970 val
* var144
/* : CodeWriter */;
8971 static val
* varonce145
;
8972 val
* var146
/* : String */;
8973 char* var147
/* : NativeString */;
8974 long var148
/* : Int */;
8975 val
* var149
/* : FlatString */;
8976 static val
* varonce150
;
8977 val
* var151
/* : String */;
8978 char* var152
/* : NativeString */;
8979 long var153
/* : Int */;
8980 val
* var154
/* : FlatString */;
8981 short int var155
/* : Bool */;
8982 val
* var156
/* : CodeWriter */;
8983 val
* var158
/* : CodeWriter */;
8984 static val
* varonce159
;
8985 val
* var160
/* : String */;
8986 char* var161
/* : NativeString */;
8987 long var162
/* : Int */;
8988 val
* var163
/* : FlatString */;
8989 val
* var164
/* : CodeWriter */;
8990 val
* var166
/* : CodeWriter */;
8991 static val
* varonce167
;
8992 val
* var168
/* : String */;
8993 char* var169
/* : NativeString */;
8994 long var170
/* : Int */;
8995 val
* var171
/* : FlatString */;
8996 val
* var172
/* : CodeWriter */;
8997 val
* var174
/* : CodeWriter */;
8998 static val
* varonce175
;
8999 val
* var176
/* : String */;
9000 char* var177
/* : NativeString */;
9001 long var178
/* : Int */;
9002 val
* var179
/* : FlatString */;
9003 val
* var180
/* : CodeWriter */;
9004 val
* var182
/* : CodeWriter */;
9005 static val
* varonce183
;
9006 val
* var184
/* : String */;
9007 char* var185
/* : NativeString */;
9008 long var186
/* : Int */;
9009 val
* var187
/* : FlatString */;
9010 val
* var188
/* : CodeWriter */;
9011 val
* var190
/* : CodeWriter */;
9012 static val
* varonce191
;
9013 val
* var192
/* : String */;
9014 char* var193
/* : NativeString */;
9015 long var194
/* : Int */;
9016 val
* var195
/* : FlatString */;
9017 val
* var196
/* : CodeWriter */;
9018 val
* var198
/* : CodeWriter */;
9019 static val
* varonce199
;
9020 val
* var200
/* : String */;
9021 char* var201
/* : NativeString */;
9022 long var202
/* : Int */;
9023 val
* var203
/* : FlatString */;
9024 val
* var204
/* : CodeWriter */;
9025 val
* var206
/* : CodeWriter */;
9026 static val
* varonce207
;
9027 val
* var208
/* : String */;
9028 char* var209
/* : NativeString */;
9029 long var210
/* : Int */;
9030 val
* var211
/* : FlatString */;
9032 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9033 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9034 if (unlikely(var2
== NULL
)) {
9035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9036 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9046 var4
= "#include <stdlib.h>";
9048 var6
= string__NativeString__to_s_with_length(var4
, var5
);
9053 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
9056 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9057 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9058 if (unlikely(var9
== NULL
)) {
9059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9060 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9070 var12
= "#include <stdio.h>";
9072 var14
= string__NativeString__to_s_with_length(var12
, var13
);
9077 abstract_compiler__CodeWriter__add_decl(var7
, var11
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var7:CodeWriter>*/
9080 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9081 var17
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9082 if (unlikely(var17
== NULL
)) {
9083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9084 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9088 RET_LABEL16
:(void)0;
9094 var20
= "#include <string.h>";
9096 var22
= string__NativeString__to_s_with_length(var20
, var21
);
9101 abstract_compiler__CodeWriter__add_decl(var15
, var19
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var15:CodeWriter>*/
9104 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9105 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9106 if (unlikely(var25
== NULL
)) {
9107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9108 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9112 RET_LABEL24
:(void)0;
9118 var28
= "#include \"gc_chooser.h\"";
9120 var30
= string__NativeString__to_s_with_length(var28
, var29
);
9125 abstract_compiler__CodeWriter__add_decl(var23
, var27
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var23:CodeWriter>*/
9128 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9129 var33
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9130 if (unlikely(var33
== NULL
)) {
9131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9132 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9136 RET_LABEL32
:(void)0;
9142 var36
= "#ifdef ANDROID";
9144 var38
= string__NativeString__to_s_with_length(var36
, var37
);
9149 abstract_compiler__CodeWriter__add_decl(var31
, var35
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var31:CodeWriter>*/
9152 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9153 var41
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9154 if (unlikely(var41
== NULL
)) {
9155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9156 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9160 RET_LABEL40
:(void)0;
9166 var44
= "\11#include <android/log.h>";
9168 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9173 abstract_compiler__CodeWriter__add_decl(var39
, var43
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var39:CodeWriter>*/
9176 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9177 var49
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9178 if (unlikely(var49
== NULL
)) {
9179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9180 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9184 RET_LABEL48
:(void)0;
9190 var52
= "\11#define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)";
9192 var54
= string__NativeString__to_s_with_length(var52
, var53
);
9197 abstract_compiler__CodeWriter__add_decl(var47
, var51
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var47:CodeWriter>*/
9200 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9201 var57
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9202 if (unlikely(var57
== NULL
)) {
9203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9204 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9208 RET_LABEL56
:(void)0;
9216 var62
= string__NativeString__to_s_with_length(var60
, var61
);
9221 abstract_compiler__CodeWriter__add_decl(var55
, var59
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var55:CodeWriter>*/
9224 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9225 var65
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9226 if (unlikely(var65
== NULL
)) {
9227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9228 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9232 RET_LABEL64
:(void)0;
9238 var68
= "\11#define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)";
9240 var70
= string__NativeString__to_s_with_length(var68
, var69
);
9245 abstract_compiler__CodeWriter__add_decl(var63
, var67
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var63:CodeWriter>*/
9248 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9249 var73
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9250 if (unlikely(var73
== NULL
)) {
9251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9252 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9256 RET_LABEL72
:(void)0;
9264 var78
= string__NativeString__to_s_with_length(var76
, var77
);
9269 abstract_compiler__CodeWriter__add_decl(var71
, var75
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var71:CodeWriter>*/
9272 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header_structs
]))(self
) /* compile_header_structs on <self:AbstractCompiler>*/;
9275 separate_compiler__SeparateCompiler__compile_nitni_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_nitni_structs on <self:AbstractCompiler>*/
9278 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
9279 var81
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
9280 if (unlikely(var81
== NULL
)) {
9281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9282 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
9286 RET_LABEL80
:(void)0;
9290 { /* Inline modelbuilder#ModelBuilder#toolcontext (var79) on <var79:ModelBuilder> */
9291 var84
= var79
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var79:ModelBuilder> */
9292 if (unlikely(var84
== NULL
)) {
9293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9294 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
9298 RET_LABEL83
:(void)0;
9302 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (var82) on <var82:ToolContext> */
9303 var87
= var82
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <var82:ToolContext> */
9304 if (unlikely(var87
== NULL
)) {
9305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
9306 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 69);
9310 RET_LABEL86
:(void)0;
9314 { /* Inline opts#Option#value (var85) on <var85:OptionArray> */
9315 var90
= var85
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var85:OptionArray> */
9317 RET_LABEL89
:(void)0;
9320 var_gccd_disable
= var88
;
9326 var96
= string__NativeString__to_s_with_length(var94
, var95
);
9331 var97
= array__AbstractArrayRead__has(var_gccd_disable
, var93
);
9342 var102
= string__NativeString__to_s_with_length(var100
, var101
);
9347 var103
= array__AbstractArrayRead__has(var_gccd_disable
, var99
);
9353 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9354 var106
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9355 if (unlikely(var106
== NULL
)) {
9356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9357 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9361 RET_LABEL105
:(void)0;
9365 var108
= varonce107
;
9367 var109
= "void show_backtrace(int);";
9369 var111
= string__NativeString__to_s_with_length(var109
, var110
);
9371 varonce107
= var108
;
9374 abstract_compiler__CodeWriter__add_decl(var104
, var108
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var104:CodeWriter>*/
9378 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9379 var114
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9380 if (unlikely(var114
== NULL
)) {
9381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9382 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9386 RET_LABEL113
:(void)0;
9390 var116
= varonce115
;
9392 var117
= "void show_backtrace(int) __attribute__ ((noreturn));";
9394 var119
= string__NativeString__to_s_with_length(var117
, var118
);
9396 varonce115
= var116
;
9399 abstract_compiler__CodeWriter__add_decl(var112
, var116
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var112:CodeWriter>*/
9403 var122
= varonce121
;
9407 var125
= string__NativeString__to_s_with_length(var123
, var124
);
9409 varonce121
= var122
;
9412 var126
= array__AbstractArrayRead__has(var_gccd_disable
, var122
);
9419 var129
= varonce128
;
9423 var132
= string__NativeString__to_s_with_length(var130
, var131
);
9425 varonce128
= var129
;
9428 var133
= array__AbstractArrayRead__has(var_gccd_disable
, var129
);
9434 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9435 var136
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9436 if (unlikely(var136
== NULL
)) {
9437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9438 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9442 RET_LABEL135
:(void)0;
9446 var138
= varonce137
;
9448 var139
= "#define likely(x) (x)";
9450 var141
= string__NativeString__to_s_with_length(var139
, var140
);
9452 varonce137
= var138
;
9455 abstract_compiler__CodeWriter__add_decl(var134
, var138
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var134:CodeWriter>*/
9458 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9459 var144
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9460 if (unlikely(var144
== NULL
)) {
9461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9462 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9466 RET_LABEL143
:(void)0;
9470 var146
= varonce145
;
9472 var147
= "#define unlikely(x) (x)";
9474 var149
= string__NativeString__to_s_with_length(var147
, var148
);
9476 varonce145
= var146
;
9479 abstract_compiler__CodeWriter__add_decl(var142
, var146
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var142:CodeWriter>*/
9483 var151
= varonce150
;
9485 var152
= "correct-likely";
9487 var154
= string__NativeString__to_s_with_length(var152
, var153
);
9489 varonce150
= var151
;
9492 var155
= array__AbstractArrayRead__has(var_gccd_disable
, var151
);
9496 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9497 var158
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9498 if (unlikely(var158
== NULL
)) {
9499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9500 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9504 RET_LABEL157
:(void)0;
9508 var160
= varonce159
;
9510 var161
= "#define likely(x) __builtin_expect((x),0)";
9512 var163
= string__NativeString__to_s_with_length(var161
, var162
);
9514 varonce159
= var160
;
9517 abstract_compiler__CodeWriter__add_decl(var156
, var160
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var156:CodeWriter>*/
9520 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9521 var166
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9522 if (unlikely(var166
== NULL
)) {
9523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9524 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9528 RET_LABEL165
:(void)0;
9532 var168
= varonce167
;
9534 var169
= "#define unlikely(x) __builtin_expect((x),1)";
9536 var171
= string__NativeString__to_s_with_length(var169
, var170
);
9538 varonce167
= var168
;
9541 abstract_compiler__CodeWriter__add_decl(var164
, var168
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var164:CodeWriter>*/
9545 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9546 var174
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9547 if (unlikely(var174
== NULL
)) {
9548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9549 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9553 RET_LABEL173
:(void)0;
9557 var176
= varonce175
;
9559 var177
= "#define likely(x) __builtin_expect((x),1)";
9561 var179
= string__NativeString__to_s_with_length(var177
, var178
);
9563 varonce175
= var176
;
9566 abstract_compiler__CodeWriter__add_decl(var172
, var176
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var172:CodeWriter>*/
9569 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9570 var182
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9571 if (unlikely(var182
== NULL
)) {
9572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9573 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9577 RET_LABEL181
:(void)0;
9581 var184
= varonce183
;
9583 var185
= "#define unlikely(x) __builtin_expect((x),0)";
9585 var187
= string__NativeString__to_s_with_length(var185
, var186
);
9587 varonce183
= var184
;
9590 abstract_compiler__CodeWriter__add_decl(var180
, var184
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var180:CodeWriter>*/
9595 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9596 var190
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9597 if (unlikely(var190
== NULL
)) {
9598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9599 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9603 RET_LABEL189
:(void)0;
9607 var192
= varonce191
;
9609 var193
= "extern int glob_argc;";
9611 var195
= string__NativeString__to_s_with_length(var193
, var194
);
9613 varonce191
= var192
;
9616 abstract_compiler__CodeWriter__add_decl(var188
, var192
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var188:CodeWriter>*/
9619 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9620 var198
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9621 if (unlikely(var198
== NULL
)) {
9622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9623 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9627 RET_LABEL197
:(void)0;
9631 var200
= varonce199
;
9633 var201
= "extern char **glob_argv;";
9635 var203
= string__NativeString__to_s_with_length(var201
, var202
);
9637 varonce199
= var200
;
9640 abstract_compiler__CodeWriter__add_decl(var196
, var200
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var196:CodeWriter>*/
9643 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9644 var206
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9645 if (unlikely(var206
== NULL
)) {
9646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9647 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9651 RET_LABEL205
:(void)0;
9655 var208
= varonce207
;
9657 var209
= "extern val *glob_sys;";
9659 var211
= string__NativeString__to_s_with_length(var209
, var210
);
9661 varonce207
= var208
;
9664 abstract_compiler__CodeWriter__add_decl(var204
, var208
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var204:CodeWriter>*/
9668 /* method abstract_compiler#AbstractCompiler#compile_header for (self: Object) */
9669 void VIRTUAL_abstract_compiler__AbstractCompiler__compile_header(val
* self
) {
9670 abstract_compiler__AbstractCompiler__compile_header(self
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <self:Object(AbstractCompiler)>*/
9673 /* method abstract_compiler#AbstractCompiler#compile_nitni_structs for (self: AbstractCompiler) */
9674 void abstract_compiler__AbstractCompiler__compile_nitni_structs(val
* self
) {
9675 val
* var
/* : CodeWriter */;
9676 val
* var2
/* : CodeWriter */;
9677 static val
* varonce
;
9678 val
* var3
/* : String */;
9679 char* var4
/* : NativeString */;
9680 long var5
/* : Int */;
9681 val
* var6
/* : FlatString */;
9683 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
9684 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
9685 if (unlikely(var2
== NULL
)) {
9686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
9687 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
9697 var4
= "/* Native reference to Nit objects */\n/* This structure is used to represent every Nit type in extern methods and custom C code. */\nstruct nitni_ref {\n\11struct nitni_ref *next,\n\11\11*prev; /* adjacent global references in global list */\n\11int count; /* number of time this global reference has been marked */\n};\n\n/* List of global references from C code to Nit objects */\n/* Instanciated empty at init of Nit system and filled explicitly by user in C code */\nstruct nitni_global_ref_list_t {\n\11struct nitni_ref *head, *tail;\n};\nextern struct nitni_global_ref_list_t *nitni_global_ref_list;\n\n/* Initializer of global reference list */\nextern void nitni_global_ref_list_init();\n\n/* Intern function to add a global reference to the list */\nextern void nitni_global_ref_add( struct nitni_ref *ref );\n\n/* Intern function to remove a global reference from the list */\nextern void nitni_global_ref_remove( struct nitni_ref *ref );\n\n/* Increase count on an existing global reference */\nextern void nitni_global_ref_incr( struct nitni_ref *ref );\n\n/* Decrease count on an existing global reference */\nextern void nitni_global_ref_decr( struct nitni_ref *ref );\n";
9699 var6
= string__NativeString__to_s_with_length(var4
, var5
);
9704 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
9708 /* method abstract_compiler#AbstractCompiler#compile_nitni_structs for (self: Object) */
9709 void VIRTUAL_abstract_compiler__AbstractCompiler__compile_nitni_structs(val
* self
) {
9710 abstract_compiler__AbstractCompiler__compile_nitni_structs(self
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_structs on <self:Object(AbstractCompiler)>*/
9713 /* method abstract_compiler#AbstractCompiler#compile_finalizer_function for (self: AbstractCompiler) */
9714 void abstract_compiler__AbstractCompiler__compile_finalizer_function(val
* self
) {
9715 val
* var
/* : MModule */;
9716 val
* var2
/* : MModule */;
9717 val
* var3
/* : nullable MClassType */;
9718 val
* var_finalizable_type
/* var finalizable_type: nullable MClassType */;
9719 val
* var4
/* : null */;
9720 short int var5
/* : Bool */;
9721 short int var6
/* : Bool */;
9722 val
* var_other
/* var other: nullable Object */;
9723 short int var8
/* : Bool */;
9724 short int var10
/* : Bool */;
9725 val
* var11
/* : MModule */;
9726 val
* var13
/* : MModule */;
9727 static val
* varonce
;
9728 val
* var14
/* : String */;
9729 char* var15
/* : NativeString */;
9730 long var16
/* : Int */;
9731 val
* var17
/* : FlatString */;
9732 val
* var18
/* : MClass */;
9733 val
* var20
/* : MClass */;
9734 val
* var21
/* : nullable MMethod */;
9735 val
* var_finalize_meth
/* var finalize_meth: nullable MMethod */;
9736 val
* var22
/* : null */;
9737 short int var23
/* : Bool */;
9738 short int var24
/* : Bool */;
9739 short int var26
/* : Bool */;
9740 short int var28
/* : Bool */;
9741 val
* var29
/* : ModelBuilder */;
9742 val
* var31
/* : ModelBuilder */;
9743 val
* var32
/* : ToolContext */;
9744 val
* var34
/* : ToolContext */;
9745 val
* var35
/* : null */;
9746 static val
* varonce36
;
9747 val
* var37
/* : String */;
9748 char* var38
/* : NativeString */;
9749 long var39
/* : Int */;
9750 val
* var40
/* : FlatString */;
9751 val
* var41
/* : AbstractCompilerVisitor */;
9752 val
* var_v
/* var v: AbstractCompilerVisitor */;
9753 static val
* varonce42
;
9754 val
* var43
/* : String */;
9755 char* var44
/* : NativeString */;
9756 long var45
/* : Int */;
9757 val
* var46
/* : FlatString */;
9758 static val
* varonce47
;
9759 val
* var48
/* : String */;
9760 char* var49
/* : NativeString */;
9761 long var50
/* : Int */;
9762 val
* var51
/* : FlatString */;
9763 val
* var52
/* : RuntimeVariable */;
9764 val
* var_recv
/* var recv: RuntimeVariable */;
9765 val
* var53
/* : Array[RuntimeVariable] */;
9766 long var54
/* : Int */;
9767 val
* var_
/* var : Array[RuntimeVariable] */;
9768 val
* var55
/* : nullable RuntimeVariable */;
9769 static val
* varonce56
;
9770 val
* var57
/* : String */;
9771 char* var58
/* : NativeString */;
9772 long var59
/* : Int */;
9773 val
* var60
/* : FlatString */;
9775 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
9776 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:AbstractCompiler> */
9777 if (unlikely(var2
== NULL
)) {
9778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
9779 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
9787 var3
= model__MModule__finalizable_type(var
);
9789 var_finalizable_type
= var3
;
9791 if (var_finalizable_type
== NULL
) {
9792 var5
= 1; /* is null */
9794 var5
= 0; /* arg is null but recv is not */
9797 { /* Inline kernel#Object#== (var_finalizable_type,var4) on <var_finalizable_type:nullable MClassType> */
9800 { /* Inline kernel#Object#is_same_instance (var_finalizable_type,var_other) on <var_finalizable_type:nullable MClassType(MClassType)> */
9801 var10
= var_finalizable_type
== var_other
;
9818 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
9819 var13
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:AbstractCompiler> */
9820 if (unlikely(var13
== NULL
)) {
9821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
9822 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
9826 RET_LABEL12
:(void)0;
9834 var17
= string__NativeString__to_s_with_length(var15
, var16
);
9839 { /* Inline model#MClassType#mclass (var_finalizable_type) on <var_finalizable_type:nullable MClassType(MClassType)> */
9840 var20
= var_finalizable_type
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_finalizable_type:nullable MClassType(MClassType)> */
9841 if (unlikely(var20
== NULL
)) {
9842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9843 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
9847 RET_LABEL19
:(void)0;
9851 var21
= model__MModule__try_get_primitive_method(var11
, var14
, var18
);
9853 var_finalize_meth
= var21
;
9855 if (var_finalize_meth
== NULL
) {
9856 var23
= 1; /* is null */
9858 var23
= 0; /* arg is null but recv is not */
9861 { /* Inline kernel#Object#== (var_finalize_meth,var22) on <var_finalize_meth:nullable MMethod> */
9864 { /* Inline kernel#Object#is_same_instance (var_finalize_meth,var_other) on <var_finalize_meth:nullable MMethod(MMethod)> */
9865 var28
= var_finalize_meth
== var_other
;
9868 RET_LABEL27
:(void)0;
9873 RET_LABEL25
:(void)0;
9879 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
9880 var31
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
9881 if (unlikely(var31
== NULL
)) {
9882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9883 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
9887 RET_LABEL30
:(void)0;
9891 { /* Inline modelbuilder#ModelBuilder#toolcontext (var29) on <var29:ModelBuilder> */
9892 var34
= var29
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var29:ModelBuilder> */
9893 if (unlikely(var34
== NULL
)) {
9894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9895 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
9899 RET_LABEL33
:(void)0;
9906 var38
= "The `Finalizable` class doesn\'t declare the `finalize` method.";
9908 var40
= string__NativeString__to_s_with_length(var38
, var39
);
9913 toolcontext__ToolContext__error(var32
, var35
, var37
); /* Direct call toolcontext#ToolContext#error on <var32:ToolContext>*/
9919 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:AbstractCompiler>*/;
9925 var44
= "void gc_finalize (void *obj, void *client_data) {";
9927 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9932 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var43
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
9939 var51
= string__NativeString__to_s_with_length(var49
, var50
);
9944 var52
= abstract_compiler__AbstractCompilerVisitor__new_expr(var_v
, var48
, var_finalizable_type
);
9947 var53
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
9950 array__Array__with_capacity(var53
, var54
); /* Direct call array#Array#with_capacity on <var53:Array[RuntimeVariable]>*/
9954 array__AbstractArray__push(var_
, var_recv
); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
9957 var55
= separate_compiler__SeparateCompilerVisitor__send(var_v
, var_finalize_meth
, var_
);
9964 var60
= string__NativeString__to_s_with_length(var58
, var59
);
9969 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var57
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
9973 /* method abstract_compiler#AbstractCompiler#compile_finalizer_function for (self: Object) */
9974 void VIRTUAL_abstract_compiler__AbstractCompiler__compile_finalizer_function(val
* self
) {
9975 abstract_compiler__AbstractCompiler__compile_finalizer_function(self
); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on <self:Object(AbstractCompiler)>*/