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", "src/abstract_compiler.nit", 28);
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", "src/abstract_compiler.nit", 28);
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", "src/abstract_compiler.nit", 30);
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", "src/abstract_compiler.nit", 30);
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", "src/abstract_compiler.nit", 32);
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", "src/abstract_compiler.nit", 32);
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", "src/abstract_compiler.nit", 34);
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", "src/abstract_compiler.nit", 34);
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", "src/abstract_compiler.nit", 36);
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", "src/abstract_compiler.nit", 36);
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", "src/abstract_compiler.nit", 38);
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", "src/abstract_compiler.nit", 38);
200 /* method abstract_compiler#ToolContext#opt_compile_dir for (self: ToolContext): OptionString */
201 val
* abstract_compiler__ToolContext__opt_compile_dir(val
* self
) {
202 val
* var
/* : OptionString */;
203 val
* var1
/* : OptionString */;
204 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:ToolContext> */
205 if (unlikely(var1
== NULL
)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
207 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 40);
214 /* method abstract_compiler#ToolContext#opt_compile_dir for (self: Object): OptionString */
215 val
* VIRTUAL_abstract_compiler__ToolContext__opt_compile_dir(val
* self
) {
216 val
* var
/* : OptionString */;
217 val
* var1
/* : OptionString */;
218 val
* var3
/* : OptionString */;
219 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (self) on <self:Object(ToolContext)> */
220 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:Object(ToolContext)> */
221 if (unlikely(var3
== NULL
)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
223 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 40);
233 /* method abstract_compiler#ToolContext#opt_hardening for (self: ToolContext): OptionBool */
234 val
* abstract_compiler__ToolContext__opt_hardening(val
* self
) {
235 val
* var
/* : OptionBool */;
236 val
* var1
/* : OptionBool */;
237 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:ToolContext> */
238 if (unlikely(var1
== NULL
)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
240 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 42);
247 /* method abstract_compiler#ToolContext#opt_hardening for (self: Object): OptionBool */
248 val
* VIRTUAL_abstract_compiler__ToolContext__opt_hardening(val
* self
) {
249 val
* var
/* : OptionBool */;
250 val
* var1
/* : OptionBool */;
251 val
* var3
/* : OptionBool */;
252 { /* Inline abstract_compiler#ToolContext#opt_hardening (self) on <self:Object(ToolContext)> */
253 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:Object(ToolContext)> */
254 if (unlikely(var3
== NULL
)) {
255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
256 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 42);
266 /* method abstract_compiler#ToolContext#opt_no_shortcut_range for (self: ToolContext): OptionBool */
267 val
* abstract_compiler__ToolContext__opt_no_shortcut_range(val
* self
) {
268 val
* var
/* : OptionBool */;
269 val
* var1
/* : OptionBool */;
270 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_shortcut_range
].val
; /* _opt_no_shortcut_range on <self:ToolContext> */
271 if (unlikely(var1
== NULL
)) {
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
273 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 44);
280 /* method abstract_compiler#ToolContext#opt_no_shortcut_range for (self: Object): OptionBool */
281 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_shortcut_range(val
* self
) {
282 val
* var
/* : OptionBool */;
283 val
* var1
/* : OptionBool */;
284 val
* var3
/* : OptionBool */;
285 { /* Inline abstract_compiler#ToolContext#opt_no_shortcut_range (self) on <self:Object(ToolContext)> */
286 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_shortcut_range
].val
; /* _opt_no_shortcut_range on <self:Object(ToolContext)> */
287 if (unlikely(var3
== NULL
)) {
288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
289 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 44);
299 /* method abstract_compiler#ToolContext#opt_no_check_covariance for (self: ToolContext): OptionBool */
300 val
* abstract_compiler__ToolContext__opt_no_check_covariance(val
* self
) {
301 val
* var
/* : OptionBool */;
302 val
* var1
/* : OptionBool */;
303 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:ToolContext> */
304 if (unlikely(var1
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
306 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 46);
313 /* method abstract_compiler#ToolContext#opt_no_check_covariance for (self: Object): OptionBool */
314 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_covariance(val
* self
) {
315 val
* var
/* : OptionBool */;
316 val
* var1
/* : OptionBool */;
317 val
* var3
/* : OptionBool */;
318 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (self) on <self:Object(ToolContext)> */
319 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:Object(ToolContext)> */
320 if (unlikely(var3
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
322 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 46);
332 /* method abstract_compiler#ToolContext#opt_no_check_attr_isset for (self: ToolContext): OptionBool */
333 val
* abstract_compiler__ToolContext__opt_no_check_attr_isset(val
* self
) {
334 val
* var
/* : OptionBool */;
335 val
* var1
/* : OptionBool */;
336 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:ToolContext> */
337 if (unlikely(var1
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
339 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 48);
346 /* method abstract_compiler#ToolContext#opt_no_check_attr_isset for (self: Object): OptionBool */
347 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_attr_isset(val
* self
) {
348 val
* var
/* : OptionBool */;
349 val
* var1
/* : OptionBool */;
350 val
* var3
/* : OptionBool */;
351 { /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (self) on <self:Object(ToolContext)> */
352 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:Object(ToolContext)> */
353 if (unlikely(var3
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
355 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 48);
365 /* method abstract_compiler#ToolContext#opt_no_check_assert for (self: ToolContext): OptionBool */
366 val
* abstract_compiler__ToolContext__opt_no_check_assert(val
* self
) {
367 val
* var
/* : OptionBool */;
368 val
* var1
/* : OptionBool */;
369 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:ToolContext> */
370 if (unlikely(var1
== NULL
)) {
371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
372 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 50);
379 /* method abstract_compiler#ToolContext#opt_no_check_assert for (self: Object): OptionBool */
380 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_assert(val
* self
) {
381 val
* var
/* : OptionBool */;
382 val
* var1
/* : OptionBool */;
383 val
* var3
/* : OptionBool */;
384 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (self) on <self:Object(ToolContext)> */
385 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:Object(ToolContext)> */
386 if (unlikely(var3
== NULL
)) {
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
388 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 50);
398 /* method abstract_compiler#ToolContext#opt_no_check_autocast for (self: ToolContext): OptionBool */
399 val
* abstract_compiler__ToolContext__opt_no_check_autocast(val
* self
) {
400 val
* var
/* : OptionBool */;
401 val
* var1
/* : OptionBool */;
402 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:ToolContext> */
403 if (unlikely(var1
== NULL
)) {
404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
405 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 52);
412 /* method abstract_compiler#ToolContext#opt_no_check_autocast for (self: Object): OptionBool */
413 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_autocast(val
* self
) {
414 val
* var
/* : OptionBool */;
415 val
* var1
/* : OptionBool */;
416 val
* var3
/* : OptionBool */;
417 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (self) on <self:Object(ToolContext)> */
418 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:Object(ToolContext)> */
419 if (unlikely(var3
== NULL
)) {
420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
421 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 52);
431 /* method abstract_compiler#ToolContext#opt_no_check_other for (self: ToolContext): OptionBool */
432 val
* abstract_compiler__ToolContext__opt_no_check_other(val
* self
) {
433 val
* var
/* : OptionBool */;
434 val
* var1
/* : OptionBool */;
435 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_other
].val
; /* _opt_no_check_other on <self:ToolContext> */
436 if (unlikely(var1
== NULL
)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_other");
438 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 54);
445 /* method abstract_compiler#ToolContext#opt_no_check_other for (self: Object): OptionBool */
446 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_check_other(val
* self
) {
447 val
* var
/* : OptionBool */;
448 val
* var1
/* : OptionBool */;
449 val
* var3
/* : OptionBool */;
450 { /* Inline abstract_compiler#ToolContext#opt_no_check_other (self) on <self:Object(ToolContext)> */
451 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_other
].val
; /* _opt_no_check_other on <self:Object(ToolContext)> */
452 if (unlikely(var3
== NULL
)) {
453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_other");
454 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 54);
464 /* method abstract_compiler#ToolContext#opt_typing_test_metrics for (self: ToolContext): OptionBool */
465 val
* abstract_compiler__ToolContext__opt_typing_test_metrics(val
* self
) {
466 val
* var
/* : OptionBool */;
467 val
* var1
/* : OptionBool */;
468 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:ToolContext> */
469 if (unlikely(var1
== NULL
)) {
470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
471 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 56);
478 /* method abstract_compiler#ToolContext#opt_typing_test_metrics for (self: Object): OptionBool */
479 val
* VIRTUAL_abstract_compiler__ToolContext__opt_typing_test_metrics(val
* self
) {
480 val
* var
/* : OptionBool */;
481 val
* var1
/* : OptionBool */;
482 val
* var3
/* : OptionBool */;
483 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (self) on <self:Object(ToolContext)> */
484 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:Object(ToolContext)> */
485 if (unlikely(var3
== NULL
)) {
486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
487 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 56);
497 /* method abstract_compiler#ToolContext#opt_invocation_metrics for (self: ToolContext): OptionBool */
498 val
* abstract_compiler__ToolContext__opt_invocation_metrics(val
* self
) {
499 val
* var
/* : OptionBool */;
500 val
* var1
/* : OptionBool */;
501 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:ToolContext> */
502 if (unlikely(var1
== NULL
)) {
503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
504 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 58);
511 /* method abstract_compiler#ToolContext#opt_invocation_metrics for (self: Object): OptionBool */
512 val
* VIRTUAL_abstract_compiler__ToolContext__opt_invocation_metrics(val
* self
) {
513 val
* var
/* : OptionBool */;
514 val
* var1
/* : OptionBool */;
515 val
* var3
/* : OptionBool */;
516 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (self) on <self:Object(ToolContext)> */
517 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:Object(ToolContext)> */
518 if (unlikely(var3
== NULL
)) {
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
520 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 58);
530 /* method abstract_compiler#ToolContext#opt_isset_checks_metrics for (self: ToolContext): OptionBool */
531 val
* abstract_compiler__ToolContext__opt_isset_checks_metrics(val
* self
) {
532 val
* var
/* : OptionBool */;
533 val
* var1
/* : OptionBool */;
534 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:ToolContext> */
535 if (unlikely(var1
== NULL
)) {
536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
537 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 60);
544 /* method abstract_compiler#ToolContext#opt_isset_checks_metrics for (self: Object): OptionBool */
545 val
* VIRTUAL_abstract_compiler__ToolContext__opt_isset_checks_metrics(val
* self
) {
546 val
* var
/* : OptionBool */;
547 val
* var1
/* : OptionBool */;
548 val
* var3
/* : OptionBool */;
549 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (self) on <self:Object(ToolContext)> */
550 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:Object(ToolContext)> */
551 if (unlikely(var3
== NULL
)) {
552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
553 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 60);
563 /* method abstract_compiler#ToolContext#opt_stacktrace for (self: ToolContext): OptionString */
564 val
* abstract_compiler__ToolContext__opt_stacktrace(val
* self
) {
565 val
* var
/* : OptionString */;
566 val
* var1
/* : OptionString */;
567 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
568 if (unlikely(var1
== NULL
)) {
569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
570 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
577 /* method abstract_compiler#ToolContext#opt_stacktrace for (self: Object): OptionString */
578 val
* VIRTUAL_abstract_compiler__ToolContext__opt_stacktrace(val
* self
) {
579 val
* var
/* : OptionString */;
580 val
* var1
/* : OptionString */;
581 val
* var3
/* : OptionString */;
582 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:Object(ToolContext)> */
583 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:Object(ToolContext)> */
584 if (unlikely(var3
== NULL
)) {
585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
586 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
596 /* method abstract_compiler#ToolContext#opt_no_gcc_directive for (self: ToolContext): OptionArray */
597 val
* abstract_compiler__ToolContext__opt_no_gcc_directive(val
* self
) {
598 val
* var
/* : OptionArray */;
599 val
* var1
/* : OptionArray */;
600 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:ToolContext> */
601 if (unlikely(var1
== NULL
)) {
602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
603 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 64);
610 /* method abstract_compiler#ToolContext#opt_no_gcc_directive for (self: Object): OptionArray */
611 val
* VIRTUAL_abstract_compiler__ToolContext__opt_no_gcc_directive(val
* self
) {
612 val
* var
/* : OptionArray */;
613 val
* var1
/* : OptionArray */;
614 val
* var3
/* : OptionArray */;
615 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (self) on <self:Object(ToolContext)> */
616 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:Object(ToolContext)> */
617 if (unlikely(var3
== NULL
)) {
618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
619 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 64);
629 /* method abstract_compiler#ToolContext#opt_release for (self: ToolContext): OptionBool */
630 val
* abstract_compiler__ToolContext__opt_release(val
* self
) {
631 val
* var
/* : OptionBool */;
632 val
* var1
/* : OptionBool */;
633 var1
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:ToolContext> */
634 if (unlikely(var1
== NULL
)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
636 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 66);
643 /* method abstract_compiler#ToolContext#opt_release for (self: Object): OptionBool */
644 val
* VIRTUAL_abstract_compiler__ToolContext__opt_release(val
* self
) {
645 val
* var
/* : OptionBool */;
646 val
* var1
/* : OptionBool */;
647 val
* var3
/* : OptionBool */;
648 { /* Inline abstract_compiler#ToolContext#opt_release (self) on <self:Object(ToolContext)> */
649 var3
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:Object(ToolContext)> */
650 if (unlikely(var3
== NULL
)) {
651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
652 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 66);
662 /* method abstract_compiler#ToolContext#init for (self: ToolContext) */
663 void abstract_compiler__ToolContext__init(val
* self
) {
664 val
* var
/* : OptionContext */;
665 val
* var2
/* : OptionContext */;
666 val
* var3
/* : OptionString */;
667 val
* var5
/* : OptionString */;
668 val
* var6
/* : OptionString */;
669 val
* var8
/* : OptionString */;
670 val
* var9
/* : OptionBool */;
671 val
* var11
/* : OptionBool */;
672 val
* var12
/* : OptionBool */;
673 val
* var14
/* : OptionBool */;
674 val
* var15
/* : OptionString */;
675 val
* var17
/* : OptionString */;
676 val
* var18
/* : OptionString */;
677 val
* var20
/* : OptionString */;
678 val
* var21
/* : OptionBool */;
679 val
* var23
/* : OptionBool */;
680 val
* var24
/* : OptionBool */;
681 val
* var26
/* : OptionBool */;
682 val
* var27
/* : Array[Option] */;
683 long var28
/* : Int */;
684 val
* var29
/* : NativeArray[Option] */;
685 val
* var30
/* : OptionContext */;
686 val
* var32
/* : OptionContext */;
687 val
* var33
/* : OptionBool */;
688 val
* var35
/* : OptionBool */;
689 val
* var36
/* : OptionBool */;
690 val
* var38
/* : OptionBool */;
691 val
* var39
/* : OptionBool */;
692 val
* var41
/* : OptionBool */;
693 val
* var42
/* : OptionBool */;
694 val
* var44
/* : OptionBool */;
695 val
* var45
/* : OptionBool */;
696 val
* var47
/* : OptionBool */;
697 val
* var48
/* : Array[Option] */;
698 long var49
/* : Int */;
699 val
* var50
/* : NativeArray[Option] */;
700 val
* var51
/* : OptionContext */;
701 val
* var53
/* : OptionContext */;
702 val
* var54
/* : OptionBool */;
703 val
* var56
/* : OptionBool */;
704 val
* var57
/* : OptionBool */;
705 val
* var59
/* : OptionBool */;
706 val
* var60
/* : OptionBool */;
707 val
* var62
/* : OptionBool */;
708 val
* var63
/* : Array[Option] */;
709 long var64
/* : Int */;
710 val
* var65
/* : NativeArray[Option] */;
711 val
* var66
/* : OptionContext */;
712 val
* var68
/* : OptionContext */;
713 val
* var69
/* : OptionString */;
714 val
* var71
/* : OptionString */;
715 val
* var72
/* : Array[Option] */;
716 long var73
/* : Int */;
717 val
* var74
/* : NativeArray[Option] */;
718 val
* var75
/* : OptionContext */;
719 val
* var77
/* : OptionContext */;
720 val
* var78
/* : OptionArray */;
721 val
* var80
/* : OptionArray */;
722 val
* var81
/* : Array[Option] */;
723 long var82
/* : Int */;
724 val
* var83
/* : NativeArray[Option] */;
725 val
* var84
/* : OptionContext */;
726 val
* var86
/* : OptionContext */;
727 val
* var87
/* : OptionBool */;
728 val
* var89
/* : OptionBool */;
729 val
* var90
/* : Array[Option] */;
730 long var91
/* : Int */;
731 val
* var92
/* : NativeArray[Option] */;
733 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
736 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
737 var2
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
738 if (unlikely(var2
== NULL
)) {
739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
740 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
748 { /* Inline abstract_compiler#ToolContext#opt_output (self) on <self:ToolContext> */
749 var5
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:ToolContext> */
750 if (unlikely(var5
== NULL
)) {
751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
752 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 28);
760 { /* Inline abstract_compiler#ToolContext#opt_dir (self) on <self:ToolContext> */
761 var8
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:ToolContext> */
762 if (unlikely(var8
== NULL
)) {
763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
764 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 30);
772 { /* Inline abstract_compiler#ToolContext#opt_no_cc (self) on <self:ToolContext> */
773 var11
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <self:ToolContext> */
774 if (unlikely(var11
== NULL
)) {
775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
776 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 32);
784 { /* Inline abstract_compiler#ToolContext#opt_no_main (self) on <self:ToolContext> */
785 var14
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_main
].val
; /* _opt_no_main on <self:ToolContext> */
786 if (unlikely(var14
== NULL
)) {
787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_main");
788 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 34);
796 { /* Inline abstract_compiler#ToolContext#opt_make_flags (self) on <self:ToolContext> */
797 var17
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <self:ToolContext> */
798 if (unlikely(var17
== NULL
)) {
799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
800 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 38);
808 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (self) on <self:ToolContext> */
809 var20
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <self:ToolContext> */
810 if (unlikely(var20
== NULL
)) {
811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
812 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 40);
820 { /* Inline abstract_compiler#ToolContext#opt_hardening (self) on <self:ToolContext> */
821 var23
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <self:ToolContext> */
822 if (unlikely(var23
== NULL
)) {
823 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
824 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 42);
832 { /* Inline abstract_compiler#ToolContext#opt_no_shortcut_range (self) on <self:ToolContext> */
833 var26
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_shortcut_range
].val
; /* _opt_no_shortcut_range on <self:ToolContext> */
834 if (unlikely(var26
== NULL
)) {
835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
836 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 44);
843 var27
= NEW_array__Array(&type_array__Arrayopts__Option
);
844 { /* var27 = array_instance Array[Option] */
846 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArrayopts__Option
);
847 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var3
;
848 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var6
;
849 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var9
;
850 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var12
;
851 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var15
;
852 ((struct instance_array__NativeArray
*)var29
)->values
[5] = (val
*) var18
;
853 ((struct instance_array__NativeArray
*)var29
)->values
[6] = (val
*) var21
;
854 ((struct instance_array__NativeArray
*)var29
)->values
[7] = (val
*) var24
;
856 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Option]>*/;
860 opts__OptionContext__add_option(var
, var27
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
863 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
864 var32
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
865 if (unlikely(var32
== NULL
)) {
866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
867 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
875 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (self) on <self:ToolContext> */
876 var35
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_covariance
].val
; /* _opt_no_check_covariance on <self:ToolContext> */
877 if (unlikely(var35
== NULL
)) {
878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
879 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 46);
887 { /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (self) on <self:ToolContext> */
888 var38
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_attr_isset
].val
; /* _opt_no_check_attr_isset on <self:ToolContext> */
889 if (unlikely(var38
== NULL
)) {
890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
891 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 48);
899 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (self) on <self:ToolContext> */
900 var41
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_assert
].val
; /* _opt_no_check_assert on <self:ToolContext> */
901 if (unlikely(var41
== NULL
)) {
902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
903 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 50);
911 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (self) on <self:ToolContext> */
912 var44
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_autocast
].val
; /* _opt_no_check_autocast on <self:ToolContext> */
913 if (unlikely(var44
== NULL
)) {
914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
915 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 52);
923 { /* Inline abstract_compiler#ToolContext#opt_no_check_other (self) on <self:ToolContext> */
924 var47
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_other
].val
; /* _opt_no_check_other on <self:ToolContext> */
925 if (unlikely(var47
== NULL
)) {
926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_other");
927 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 54);
934 var48
= NEW_array__Array(&type_array__Arrayopts__Option
);
935 { /* var48 = array_instance Array[Option] */
937 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArrayopts__Option
);
938 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var33
;
939 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var36
;
940 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var39
;
941 ((struct instance_array__NativeArray
*)var50
)->values
[3] = (val
*) var42
;
942 ((struct instance_array__NativeArray
*)var50
)->values
[4] = (val
*) var45
;
944 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Option]>*/;
948 opts__OptionContext__add_option(var30
, var48
); /* Direct call opts#OptionContext#add_option on <var30:OptionContext>*/
951 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
952 var53
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
953 if (unlikely(var53
== NULL
)) {
954 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
955 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
963 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (self) on <self:ToolContext> */
964 var56
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <self:ToolContext> */
965 if (unlikely(var56
== NULL
)) {
966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
967 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 56);
975 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (self) on <self:ToolContext> */
976 var59
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_invocation_metrics
].val
; /* _opt_invocation_metrics on <self:ToolContext> */
977 if (unlikely(var59
== NULL
)) {
978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
979 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 58);
987 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (self) on <self:ToolContext> */
988 var62
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <self:ToolContext> */
989 if (unlikely(var62
== NULL
)) {
990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
991 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 60);
998 var63
= NEW_array__Array(&type_array__Arrayopts__Option
);
999 { /* var63 = array_instance Array[Option] */
1001 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArrayopts__Option
);
1002 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
1003 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1004 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var60
;
1006 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Option]>*/;
1010 opts__OptionContext__add_option(var51
, var63
); /* Direct call opts#OptionContext#add_option on <var51:OptionContext>*/
1013 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1014 var68
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1015 if (unlikely(var68
== NULL
)) {
1016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1017 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
1021 RET_LABEL67
:(void)0;
1025 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1026 var71
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1027 if (unlikely(var71
== NULL
)) {
1028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1029 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
1033 RET_LABEL70
:(void)0;
1036 var72
= NEW_array__Array(&type_array__Arrayopts__Option
);
1037 { /* var72 = array_instance Array[Option] */
1039 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArrayopts__Option
);
1040 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var69
;
1042 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Option]>*/;
1046 opts__OptionContext__add_option(var66
, var72
); /* Direct call opts#OptionContext#add_option on <var66:OptionContext>*/
1049 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1050 var77
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1051 if (unlikely(var77
== NULL
)) {
1052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1053 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
1057 RET_LABEL76
:(void)0;
1061 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (self) on <self:ToolContext> */
1062 var80
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <self:ToolContext> */
1063 if (unlikely(var80
== NULL
)) {
1064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
1065 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 64);
1069 RET_LABEL79
:(void)0;
1072 var81
= NEW_array__Array(&type_array__Arrayopts__Option
);
1073 { /* var81 = array_instance Array[Option] */
1075 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArrayopts__Option
);
1076 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var78
;
1078 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Option]>*/;
1082 opts__OptionContext__add_option(var75
, var81
); /* Direct call opts#OptionContext#add_option on <var75:OptionContext>*/
1085 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
1086 var86
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
1087 if (unlikely(var86
== NULL
)) {
1088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
1089 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
1093 RET_LABEL85
:(void)0;
1097 { /* Inline abstract_compiler#ToolContext#opt_release (self) on <self:ToolContext> */
1098 var89
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_release
].val
; /* _opt_release on <self:ToolContext> */
1099 if (unlikely(var89
== NULL
)) {
1100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_release");
1101 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 66);
1105 RET_LABEL88
:(void)0;
1108 var90
= NEW_array__Array(&type_array__Arrayopts__Option
);
1109 { /* var90 = array_instance Array[Option] */
1111 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArrayopts__Option
);
1112 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var87
;
1114 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Option]>*/;
1118 opts__OptionContext__add_option(var84
, var90
); /* Direct call opts#OptionContext#add_option on <var84:OptionContext>*/
1122 /* method abstract_compiler#ToolContext#init for (self: Object) */
1123 void VIRTUAL_abstract_compiler__ToolContext__init(val
* self
) {
1124 abstract_compiler__ToolContext__init(self
); /* Direct call abstract_compiler#ToolContext#init on <self:Object(ToolContext)>*/
1127 /* method abstract_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
1128 void abstract_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
1129 val
* var_args
/* var args: Sequence[String] */;
1130 val
* var
/* : OptionString */;
1131 val
* var2
/* : OptionString */;
1132 val
* var3
/* : nullable Object */;
1133 val
* var5
/* : nullable Object */;
1134 val
* var_st
/* var st: nullable String */;
1135 short int var6
/* : Bool */;
1136 short int var7
/* : Bool */;
1137 static val
* varonce
;
1138 val
* var8
/* : String */;
1139 char* var9
/* : NativeString */;
1140 long var10
/* : Int */;
1141 val
* var11
/* : FlatString */;
1142 short int var12
/* : Bool */;
1143 short int var13
/* : Bool */;
1144 short int var_
/* var : Bool */;
1145 static val
* varonce14
;
1146 val
* var15
/* : String */;
1147 char* var16
/* : NativeString */;
1148 long var17
/* : Int */;
1149 val
* var18
/* : FlatString */;
1150 short int var19
/* : Bool */;
1151 short int var20
/* : Bool */;
1152 short int var_21
/* var : Bool */;
1153 static val
* varonce22
;
1154 val
* var23
/* : String */;
1155 char* var24
/* : NativeString */;
1156 long var25
/* : Int */;
1157 val
* var26
/* : FlatString */;
1158 short int var27
/* : Bool */;
1159 short int var28
/* : Bool */;
1160 short int var29
/* : Bool */;
1161 static val
* varonce30
;
1162 val
* var31
/* : String */;
1163 char* var32
/* : NativeString */;
1164 long var33
/* : Int */;
1165 val
* var34
/* : FlatString */;
1166 short int var35
/* : Bool */;
1167 short int var36
/* : Bool */;
1168 short int var_37
/* var : Bool */;
1169 val
* var38
/* : null */;
1170 short int var39
/* : Bool */;
1171 short int var40
/* : Bool */;
1172 val
* var41
/* : OptionString */;
1173 val
* var43
/* : OptionString */;
1174 static val
* varonce44
;
1175 val
* var45
/* : String */;
1176 char* var46
/* : NativeString */;
1177 long var47
/* : Int */;
1178 val
* var48
/* : FlatString */;
1179 short int var50
/* : Bool */;
1182 const struct type
* type_struct
;
1183 const char* var_class_name
;
1184 static val
* varonce51
;
1185 val
* var52
/* : String */;
1186 char* var53
/* : NativeString */;
1187 long var54
/* : Int */;
1188 val
* var55
/* : FlatString */;
1189 static val
* varonce56
;
1190 val
* var57
/* : String */;
1191 char* var58
/* : NativeString */;
1192 long var59
/* : Int */;
1193 val
* var60
/* : FlatString */;
1194 val
* var61
/* : Array[Object] */;
1195 long var62
/* : Int */;
1196 val
* var63
/* : NativeArray[Object] */;
1197 val
* var64
/* : String */;
1198 long var65
/* : Int */;
1199 short int var67
/* : Bool */;
1200 val
* var68
/* : OptionString */;
1201 val
* var70
/* : OptionString */;
1202 val
* var71
/* : nullable Object */;
1203 val
* var73
/* : nullable Object */;
1204 val
* var74
/* : null */;
1205 short int var75
/* : Bool */;
1206 short int var76
/* : Bool */;
1207 val
* var_other
/* var other: nullable Object */;
1208 short int var78
/* : Bool */;
1209 short int var79
/* : Bool */;
1210 short int var80
/* : Bool */;
1211 short int var_81
/* var : Bool */;
1212 val
* var82
/* : OptionString */;
1213 val
* var84
/* : OptionString */;
1214 val
* var85
/* : nullable Object */;
1215 val
* var87
/* : nullable Object */;
1216 val
* var88
/* : null */;
1217 short int var89
/* : Bool */;
1218 short int var90
/* : Bool */;
1219 short int var92
/* : Bool */;
1220 short int var93
/* : Bool */;
1221 short int var94
/* : Bool */;
1222 static val
* varonce95
;
1223 val
* var96
/* : String */;
1224 char* var97
/* : NativeString */;
1225 long var98
/* : Int */;
1226 val
* var99
/* : FlatString */;
1227 long var100
/* : Int */;
1230 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ToolContext__process_options
]))(self
, p0
) /* process_options on <self:ToolContext>*/;
1233 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1234 var2
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1235 if (unlikely(var2
== NULL
)) {
1236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1237 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
1245 { /* Inline opts#Option#value (var) on <var:OptionString> */
1246 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionString> */
1257 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1261 if (var_st
== NULL
) {
1262 var12
= 0; /* <var8:String> cannot be null */
1264 var13
= string__FlatString___61d_61d(var_st
, var8
);
1274 var16
= "libunwind";
1276 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1280 if (var_st
== NULL
) {
1281 var19
= 0; /* <var15:String> cannot be null */
1283 var20
= string__FlatString___61d_61d(var_st
, var15
);
1297 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1301 if (var_st
== NULL
) {
1302 var27
= 0; /* <var23:String> cannot be null */
1304 var28
= string__FlatString___61d_61d(var_st
, var23
);
1316 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1320 if (var_st
== NULL
) {
1321 var35
= 0; /* <var31:String> cannot be null */
1323 var36
= string__FlatString___61d_61d(var_st
, var31
);
1331 if (var_st
== NULL
) {
1332 var39
= 1; /* is null */
1334 var39
= 0; /* arg is null but recv is not */
1337 var40
= string__FlatString___61d_61d(var_st
, var38
);
1344 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (self) on <self:ToolContext> */
1345 var43
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <self:ToolContext> */
1346 if (unlikely(var43
== NULL
)) {
1347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1348 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
1352 RET_LABEL42
:(void)0;
1360 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1365 { /* Inline opts#Option#value= (var41,var45) on <var41:OptionString> */
1366 /* Covariant cast for argument 0 (value) <var45:String> isa VALUE */
1367 /* <var45:String> isa VALUE */
1368 type_struct
= var41
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
1369 cltype
= type_struct
->color
;
1370 idtype
= type_struct
->id
;
1371 if(cltype
>= var45
->type
->table_size
) {
1374 var50
= var45
->type
->type_table
[cltype
] == idtype
;
1376 if (unlikely(!var50
)) {
1377 var_class_name
= var45
== NULL ?
"null" : var45
->type
->name
;
1378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
1379 PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40);
1382 var41
->attrs
[COLOR_opts__Option___value
].val
= var45
; /* _value on <var41:OptionString> */
1383 RET_LABEL49
:(void)0;
1390 var53
= "Error: unknown value `";
1392 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1399 var58
= "` for --stacktrace. Use `none`, `libunwind`, `nitstack` or `auto`.";
1401 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1405 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
1406 { /* var61 = array_instance Array[Object] */
1408 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
1409 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var52
;
1410 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var_st
;
1411 ((struct instance_array__NativeArray
*)var63
)->values
[2] = (val
*) var57
;
1413 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
1417 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
1420 file__Object__print(self
, var64
); /* Direct call file#Object#print on <self:ToolContext>*/
1424 { /* Inline kernel#Object#exit (self,var65) on <self:ToolContext> */
1426 RET_LABEL66
:(void)0;
1432 { /* Inline abstract_compiler#ToolContext#opt_output (self) on <self:ToolContext> */
1433 var70
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <self:ToolContext> */
1434 if (unlikely(var70
== NULL
)) {
1435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
1436 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 28);
1440 RET_LABEL69
:(void)0;
1444 { /* Inline opts#Option#value (var68) on <var68:OptionString> */
1445 var73
= var68
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var68:OptionString> */
1447 RET_LABEL72
:(void)0;
1451 if (var71
== NULL
) {
1452 var75
= 0; /* is null */
1454 var75
= 1; /* arg is null and recv is not */
1457 { /* Inline kernel#Object#!= (var71,var74) on <var71:nullable Object(nullable String)> */
1460 var79
= ((short int (*)(val
*, val
*))(var71
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var71
, var_other
) /* == on <var71:nullable String(String)>*/;
1466 RET_LABEL77
:(void)0;
1473 { /* Inline abstract_compiler#ToolContext#opt_dir (self) on <self:ToolContext> */
1474 var84
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <self:ToolContext> */
1475 if (unlikely(var84
== NULL
)) {
1476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
1477 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 30);
1481 RET_LABEL83
:(void)0;
1485 { /* Inline opts#Option#value (var82) on <var82:OptionString> */
1486 var87
= var82
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var82:OptionString> */
1488 RET_LABEL86
:(void)0;
1492 if (var85
== NULL
) {
1493 var89
= 0; /* is null */
1495 var89
= 1; /* arg is null and recv is not */
1498 { /* Inline kernel#Object#!= (var85,var88) on <var85:nullable Object(nullable String)> */
1501 var93
= ((short int (*)(val
*, val
*))(var85
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var85
, var_other
) /* == on <var85:nullable String(String)>*/;
1507 RET_LABEL91
:(void)0;
1519 var97
= "Error: cannot use both --dir and --output";
1521 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1526 file__Object__print(self
, var96
); /* Direct call file#Object#print on <self:ToolContext>*/
1530 { /* Inline kernel#Object#exit (self,var100) on <self:ToolContext> */
1532 RET_LABEL101
:(void)0;
1539 /* method abstract_compiler#ToolContext#process_options for (self: Object, Sequence[String]) */
1540 void VIRTUAL_abstract_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
1541 abstract_compiler__ToolContext__process_options(self
, p0
); /* Direct call abstract_compiler#ToolContext#process_options on <self:Object(ToolContext)>*/
1544 /* method abstract_compiler#ModelBuilder#compile_dir for (self: ModelBuilder): String */
1545 val
* abstract_compiler__ModelBuilder__compile_dir(val
* self
) {
1546 val
* var
/* : String */;
1547 val
* var1
/* : String */;
1548 var1
= self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <self:ModelBuilder> */
1549 if (unlikely(var1
== NULL
)) {
1550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
1551 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 103);
1558 /* method abstract_compiler#ModelBuilder#compile_dir for (self: Object): String */
1559 val
* VIRTUAL_abstract_compiler__ModelBuilder__compile_dir(val
* self
) {
1560 val
* var
/* : String */;
1561 val
* var1
/* : String */;
1562 val
* var3
/* : String */;
1563 { /* Inline abstract_compiler#ModelBuilder#compile_dir (self) on <self:Object(ModelBuilder)> */
1564 var3
= self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <self:Object(ModelBuilder)> */
1565 if (unlikely(var3
== NULL
)) {
1566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
1567 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 103);
1577 /* method abstract_compiler#ModelBuilder#compile_dir= for (self: ModelBuilder, String) */
1578 void abstract_compiler__ModelBuilder__compile_dir_61d(val
* self
, val
* p0
) {
1579 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= p0
; /* _compile_dir on <self:ModelBuilder> */
1582 /* method abstract_compiler#ModelBuilder#compile_dir= for (self: Object, String) */
1583 void VIRTUAL_abstract_compiler__ModelBuilder__compile_dir_61d(val
* self
, val
* p0
) {
1584 { /* Inline abstract_compiler#ModelBuilder#compile_dir= (self,p0) on <self:Object(ModelBuilder)> */
1585 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= p0
; /* _compile_dir on <self:Object(ModelBuilder)> */
1590 /* method abstract_compiler#ModelBuilder#write_and_make for (self: ModelBuilder, AbstractCompiler) */
1591 void abstract_compiler__ModelBuilder__write_and_make(val
* self
, val
* p0
) {
1592 val
* var_compiler
/* var compiler: AbstractCompiler */;
1593 val
* var
/* : MModule */;
1594 val
* var2
/* : MModule */;
1595 val
* var3
/* : nullable Platform */;
1596 val
* var_platform
/* var platform: nullable Platform */;
1597 val
* var4
/* : null */;
1598 short int var5
/* : Bool */;
1599 short int var6
/* : Bool */;
1600 val
* var7
/* : MakefileToolchain */;
1601 val
* var8
/* : ToolContext */;
1602 val
* var10
/* : ToolContext */;
1603 val
* var_toolchain
/* var toolchain: nullable Object */;
1604 val
* var12
/* : ToolContext */;
1605 val
* var14
/* : ToolContext */;
1606 val
* var15
/* : Toolchain */;
1607 val
* var16
/* : String */;
1610 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
1611 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
1612 if (unlikely(var2
== NULL
)) {
1613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1614 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
1622 var3
= platform__MModule__target_platform(var
);
1624 var_platform
= var3
;
1626 if (var_platform
== NULL
) {
1627 var5
= 1; /* is null */
1629 var5
= 0; /* arg is null but recv is not */
1632 var6
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var4
) /* == on <var_platform:nullable Platform>*/;
1636 var7
= NEW_abstract_compiler__MakefileToolchain(&type_abstract_compiler__MakefileToolchain
);
1638 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1639 var10
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1640 if (unlikely(var10
== NULL
)) {
1641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1642 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1650 { /* Inline abstract_compiler#Toolchain#init (var7,var8) on <var7:MakefileToolchain> */
1651 var7
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
= var8
; /* _toolcontext on <var7:MakefileToolchain> */
1652 RET_LABEL11
:(void)0;
1655 var_toolchain
= var7
;
1658 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1659 var14
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1660 if (unlikely(var14
== NULL
)) {
1661 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1662 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
1666 RET_LABEL13
:(void)0;
1670 var15
= ((val
* (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_abstract_compiler__Platform__toolchain
]))(var_platform
, var12
) /* toolchain on <var_platform:nullable Platform(Platform)>*/;
1672 var_toolchain
= var15
;
1675 var16
= abstract_compiler__Toolchain__compile_dir(var_toolchain
);
1678 { /* Inline abstract_compiler#ModelBuilder#compile_dir= (self,var16) on <self:ModelBuilder> */
1679 self
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
= var16
; /* _compile_dir on <self:ModelBuilder> */
1680 RET_LABEL17
:(void)0;
1684 abstract_compiler__MakefileToolchain__write_and_make(var_toolchain
, var_compiler
); /* Direct call abstract_compiler#MakefileToolchain#write_and_make on <var_toolchain:nullable Object(Toolchain)>*/
1688 /* method abstract_compiler#ModelBuilder#write_and_make for (self: Object, AbstractCompiler) */
1689 void VIRTUAL_abstract_compiler__ModelBuilder__write_and_make(val
* self
, val
* p0
) {
1690 abstract_compiler__ModelBuilder__write_and_make(self
, p0
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:Object(ModelBuilder)>*/
1693 /* method abstract_compiler#Platform#toolchain for (self: Platform, ToolContext): Toolchain */
1694 val
* abstract_compiler__Platform__toolchain(val
* self
, val
* p0
) {
1695 val
* var
/* : Toolchain */;
1696 const char* var_class_name
;
1697 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
1698 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "toolchain", var_class_name
);
1699 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 122);
1704 /* method abstract_compiler#Platform#toolchain for (self: Object, ToolContext): Toolchain */
1705 val
* VIRTUAL_abstract_compiler__Platform__toolchain(val
* self
, val
* p0
) {
1706 val
* var
/* : Toolchain */;
1707 val
* var1
/* : Toolchain */;
1708 const char* var_class_name
;
1709 { /* Inline abstract_compiler#Platform#toolchain (self,p0) on <self:Object(Platform)> */
1710 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
1711 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "toolchain", var_class_name
);
1712 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 122);
1720 /* method abstract_compiler#Toolchain#toolcontext for (self: Toolchain): ToolContext */
1721 val
* abstract_compiler__Toolchain__toolcontext(val
* self
) {
1722 val
* var
/* : ToolContext */;
1723 val
* var1
/* : ToolContext */;
1724 var1
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Toolchain> */
1725 if (unlikely(var1
== NULL
)) {
1726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1727 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
1734 /* method abstract_compiler#Toolchain#toolcontext for (self: Object): ToolContext */
1735 val
* VIRTUAL_abstract_compiler__Toolchain__toolcontext(val
* self
) {
1736 val
* var
/* : ToolContext */;
1737 val
* var1
/* : ToolContext */;
1738 val
* var3
/* : ToolContext */;
1739 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:Object(Toolchain)> */
1740 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Object(Toolchain)> */
1741 if (unlikely(var3
== NULL
)) {
1742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1743 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
1753 /* method abstract_compiler#Toolchain#compile_dir for (self: Toolchain): String */
1754 val
* abstract_compiler__Toolchain__compile_dir(val
* self
) {
1755 val
* var
/* : String */;
1756 val
* var1
/* : ToolContext */;
1757 val
* var3
/* : ToolContext */;
1758 val
* var4
/* : OptionString */;
1759 val
* var6
/* : OptionString */;
1760 val
* var7
/* : nullable Object */;
1761 val
* var9
/* : nullable Object */;
1762 val
* var_compile_dir
/* var compile_dir: nullable String */;
1763 val
* var10
/* : null */;
1764 short int var11
/* : Bool */;
1765 short int var12
/* : Bool */;
1766 static val
* varonce
;
1767 val
* var13
/* : String */;
1768 char* var14
/* : NativeString */;
1769 long var15
/* : Int */;
1770 val
* var16
/* : FlatString */;
1772 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:Toolchain> */
1773 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:Toolchain> */
1774 if (unlikely(var3
== NULL
)) {
1775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1776 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
1784 { /* Inline abstract_compiler#ToolContext#opt_compile_dir (var1) on <var1:ToolContext> */
1785 var6
= var1
->attrs
[COLOR_abstract_compiler__ToolContext___opt_compile_dir
].val
; /* _opt_compile_dir on <var1:ToolContext> */
1786 if (unlikely(var6
== NULL
)) {
1787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_compile_dir");
1788 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 40);
1796 { /* Inline opts#Option#value (var4) on <var4:OptionString> */
1797 var9
= var4
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var4:OptionString> */
1802 var_compile_dir
= var7
;
1804 if (var_compile_dir
== NULL
) {
1805 var11
= 1; /* is null */
1807 var11
= 0; /* arg is null but recv is not */
1810 var12
= string__FlatString___61d_61d(var_compile_dir
, var10
);
1817 var14
= ".nit_compile";
1819 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1823 var_compile_dir
= var13
;
1826 var
= var_compile_dir
;
1831 /* method abstract_compiler#Toolchain#compile_dir for (self: Object): String */
1832 val
* VIRTUAL_abstract_compiler__Toolchain__compile_dir(val
* self
) {
1833 val
* var
/* : String */;
1834 val
* var1
/* : String */;
1835 var1
= abstract_compiler__Toolchain__compile_dir(self
);
1840 /* method abstract_compiler#Toolchain#init for (self: Toolchain, ToolContext) */
1841 void abstract_compiler__Toolchain__init(val
* self
, val
* p0
) {
1842 self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
= p0
; /* _toolcontext on <self:Toolchain> */
1845 /* method abstract_compiler#Toolchain#init for (self: Object, ToolContext) */
1846 void VIRTUAL_abstract_compiler__Toolchain__init(val
* self
, val
* p0
) {
1847 { /* Inline abstract_compiler#Toolchain#init (self,p0) on <self:Object(Toolchain)> */
1848 self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
= p0
; /* _toolcontext on <self:Object(Toolchain)> */
1853 /* method abstract_compiler#MakefileToolchain#cc_paths for (self: MakefileToolchain): Array[String] */
1854 val
* abstract_compiler__MakefileToolchain__cc_paths(val
* self
) {
1855 val
* var
/* : Array[String] */;
1856 val
* var1
/* : Array[String] */;
1857 var1
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
1858 if (unlikely(var1
== NULL
)) {
1859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
1860 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
1867 /* method abstract_compiler#MakefileToolchain#cc_paths for (self: Object): Array[String] */
1868 val
* VIRTUAL_abstract_compiler__MakefileToolchain__cc_paths(val
* self
) {
1869 val
* var
/* : Array[String] */;
1870 val
* var1
/* : Array[String] */;
1871 val
* var3
/* : Array[String] */;
1872 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:Object(MakefileToolchain)> */
1873 var3
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:Object(MakefileToolchain)> */
1874 if (unlikely(var3
== NULL
)) {
1875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
1876 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
1886 /* method abstract_compiler#MakefileToolchain#gather_cc_paths for (self: MakefileToolchain) */
1887 void abstract_compiler__MakefileToolchain__gather_cc_paths(val
* self
) {
1888 val
* var
/* : ToolContext */;
1889 val
* var2
/* : ToolContext */;
1890 val
* var3
/* : nullable String */;
1891 val
* var5
/* : nullable String */;
1892 val
* var_path_env
/* var path_env: nullable String */;
1893 val
* var6
/* : null */;
1894 short int var7
/* : Bool */;
1895 short int var8
/* : Bool */;
1896 val
* var_other
/* var other: nullable Object */;
1897 short int var10
/* : Bool */;
1898 short int var11
/* : Bool */;
1899 short int var12
/* : Bool */;
1900 static val
* varonce
;
1901 val
* var13
/* : String */;
1902 char* var14
/* : NativeString */;
1903 long var15
/* : Int */;
1904 val
* var16
/* : FlatString */;
1905 val
* var17
/* : Array[Object] */;
1906 long var18
/* : Int */;
1907 val
* var19
/* : NativeArray[Object] */;
1908 val
* var20
/* : String */;
1909 val
* var_libname
/* var libname: String */;
1910 short int var21
/* : Bool */;
1911 val
* var22
/* : Array[String] */;
1912 val
* var24
/* : Array[String] */;
1913 val
* var25
/* : Array[String] */;
1914 val
* var27
/* : Array[String] */;
1915 short int var28
/* : Bool */;
1916 val
* var29
/* : ToolContext */;
1917 val
* var31
/* : ToolContext */;
1918 val
* var32
/* : null */;
1919 static val
* varonce33
;
1920 val
* var34
/* : String */;
1921 char* var35
/* : NativeString */;
1922 long var36
/* : Int */;
1923 val
* var37
/* : FlatString */;
1924 val
* var38
/* : Array[String] */;
1925 val
* var40
/* : Array[String] */;
1926 val
* var41
/* : ToolContext */;
1927 val
* var43
/* : ToolContext */;
1928 val
* var44
/* : OptionArray */;
1929 val
* var46
/* : OptionArray */;
1930 val
* var47
/* : nullable Object */;
1931 val
* var49
/* : nullable Object */;
1932 static val
* varonce50
;
1933 val
* var51
/* : String */;
1934 char* var52
/* : NativeString */;
1935 long var53
/* : Int */;
1936 val
* var54
/* : FlatString */;
1937 val
* var55
/* : String */;
1938 short int var56
/* : Bool */;
1939 short int var57
/* : Bool */;
1940 val
* var58
/* : Array[String] */;
1941 val
* var60
/* : Array[String] */;
1942 char var61
/* : Char */;
1943 val
* var62
/* : Array[Text] */;
1944 val
* var63
/* : Pattern */;
1946 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
1947 var2
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
1948 if (unlikely(var2
== NULL
)) {
1949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1950 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
1958 { /* Inline toolcontext#ToolContext#nit_dir (var) on <var:ToolContext> */
1959 var5
= var
->attrs
[COLOR_toolcontext__ToolContext___nit_dir
].val
; /* _nit_dir on <var:ToolContext> */
1964 var_path_env
= var3
;
1966 if (var_path_env
== NULL
) {
1967 var7
= 0; /* is null */
1969 var7
= 1; /* arg is null and recv is not */
1972 { /* Inline kernel#Object#!= (var_path_env,var6) on <var_path_env:nullable String> */
1975 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)>*/;
1991 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1995 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
1996 { /* var17 = array_instance Array[Object] */
1998 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
1999 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_path_env
;
2000 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
2002 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
2006 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
2008 var_libname
= var20
;
2010 var21
= file__String__file_exists(var_libname
);
2014 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2015 var24
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2016 if (unlikely(var24
== NULL
)) {
2017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2018 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
2022 RET_LABEL23
:(void)0;
2026 array__Array__add(var22
, var_libname
); /* Direct call array#Array#add on <var22:Array[String]>*/
2033 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2034 var27
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2035 if (unlikely(var27
== NULL
)) {
2036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2037 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
2041 RET_LABEL26
:(void)0;
2045 var28
= array__AbstractArrayRead__is_empty(var25
);
2049 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2050 var31
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2051 if (unlikely(var31
== NULL
)) {
2052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2053 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2057 RET_LABEL30
:(void)0;
2064 var35
= "Cannot determine the nit clib path. define envvar NIT_DIR.";
2066 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2071 toolcontext__ToolContext__error(var29
, var32
, var34
); /* Direct call toolcontext#ToolContext#error on <var29:ToolContext>*/
2076 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2077 var40
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2078 if (unlikely(var40
== NULL
)) {
2079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2080 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
2084 RET_LABEL39
:(void)0;
2088 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2089 var43
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2090 if (unlikely(var43
== NULL
)) {
2091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2092 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2096 RET_LABEL42
:(void)0;
2100 { /* Inline abstract_compiler#ToolContext#opt_cc_path (var41) on <var41:ToolContext> */
2101 var46
= var41
->attrs
[COLOR_abstract_compiler__ToolContext___opt_cc_path
].val
; /* _opt_cc_path on <var41:ToolContext> */
2102 if (unlikely(var46
== NULL
)) {
2103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_cc_path");
2104 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 36);
2108 RET_LABEL45
:(void)0;
2112 { /* Inline opts#Option#value (var44) on <var44:OptionArray> */
2113 var49
= var44
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var44:OptionArray> */
2115 RET_LABEL48
:(void)0;
2119 abstract_collection__Sequence__append(var38
, var47
); /* Direct call abstract_collection#Sequence#append on <var38:Array[String]>*/
2124 var52
= "NIT_CC_PATH";
2126 var54
= string__NativeString__to_s_with_length(var52
, var53
);
2131 var55
= environ__String__environ(var51
);
2133 var_path_env
= var55
;
2135 var56
= string__Text__is_empty(var_path_env
);
2140 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
2141 var60
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
2142 if (unlikely(var60
== NULL
)) {
2143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
2144 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
2148 RET_LABEL59
:(void)0;
2153 var63
= BOX_kernel__Char(var61
); /* autobox from Char to Pattern */
2154 var62
= string_search__Text__split_with(var_path_env
, var63
);
2157 abstract_collection__Sequence__append(var58
, var62
); /* Direct call abstract_collection#Sequence#append on <var58:Array[String]>*/
2163 /* method abstract_compiler#MakefileToolchain#gather_cc_paths for (self: Object) */
2164 void VIRTUAL_abstract_compiler__MakefileToolchain__gather_cc_paths(val
* self
) {
2165 abstract_compiler__MakefileToolchain__gather_cc_paths(self
); /* Direct call abstract_compiler#MakefileToolchain#gather_cc_paths on <self:Object(MakefileToolchain)>*/
2168 /* method abstract_compiler#MakefileToolchain#write_and_make for (self: MakefileToolchain, AbstractCompiler) */
2169 void abstract_compiler__MakefileToolchain__write_and_make(val
* self
, val
* p0
) {
2170 val
* var_compiler
/* var compiler: AbstractCompiler */;
2171 val
* var
/* : MModule */;
2172 val
* var2
/* : MModule */;
2173 val
* var_mainmodule
/* var mainmodule: MModule */;
2174 val
* var3
/* : String */;
2175 val
* var_compile_dir
/* var compile_dir: String */;
2176 long var4
/* : Int */;
2177 long var6
/* : Int */;
2178 long var_time0
/* var time0: Int */;
2179 val
* var7
/* : ToolContext */;
2180 val
* var9
/* : ToolContext */;
2181 static val
* varonce
;
2182 val
* var10
/* : String */;
2183 char* var11
/* : NativeString */;
2184 long var12
/* : Int */;
2185 val
* var13
/* : FlatString */;
2186 long var14
/* : Int */;
2187 val
* var15
/* : Array[String] */;
2188 val
* var_cfiles
/* var cfiles: Array[String] */;
2189 long var16
/* : Int */;
2190 long var18
/* : Int */;
2191 long var_time1
/* var time1: Int */;
2192 val
* var19
/* : ToolContext */;
2193 val
* var21
/* : ToolContext */;
2194 static val
* varonce22
;
2195 val
* var23
/* : String */;
2196 char* var24
/* : NativeString */;
2197 long var25
/* : Int */;
2198 val
* var26
/* : FlatString */;
2199 long var27
/* : Int */;
2200 short int var29
/* : Bool */;
2203 const char* var_class_name
;
2204 long var30
/* : Int */;
2205 static val
* varonce31
;
2206 val
* var32
/* : String */;
2207 char* var33
/* : NativeString */;
2208 long var34
/* : Int */;
2209 val
* var35
/* : FlatString */;
2210 val
* var36
/* : Array[Object] */;
2211 long var37
/* : Int */;
2212 val
* var38
/* : NativeArray[Object] */;
2213 val
* var39
/* : Object */;
2214 val
* var40
/* : String */;
2215 long var41
/* : Int */;
2216 val
* var42
/* : ToolContext */;
2217 val
* var44
/* : ToolContext */;
2218 val
* var45
/* : OptionBool */;
2219 val
* var47
/* : OptionBool */;
2220 val
* var48
/* : nullable Object */;
2221 val
* var50
/* : nullable Object */;
2222 short int var51
/* : Bool */;
2223 val
* var52
/* : ToolContext */;
2224 val
* var54
/* : ToolContext */;
2225 static val
* varonce55
;
2226 val
* var56
/* : String */;
2227 char* var57
/* : NativeString */;
2228 long var58
/* : Int */;
2229 val
* var59
/* : FlatString */;
2230 long var60
/* : Int */;
2231 long var61
/* : Int */;
2232 long var63
/* : Int */;
2233 val
* var64
/* : ToolContext */;
2234 val
* var66
/* : ToolContext */;
2235 static val
* varonce67
;
2236 val
* var68
/* : String */;
2237 char* var69
/* : NativeString */;
2238 long var70
/* : Int */;
2239 val
* var71
/* : FlatString */;
2240 long var72
/* : Int */;
2241 short int var74
/* : Bool */;
2244 const char* var_class_name77
;
2245 long var78
/* : Int */;
2246 static val
* varonce79
;
2247 val
* var80
/* : String */;
2248 char* var81
/* : NativeString */;
2249 long var82
/* : Int */;
2250 val
* var83
/* : FlatString */;
2251 val
* var84
/* : Array[Object] */;
2252 long var85
/* : Int */;
2253 val
* var86
/* : NativeArray[Object] */;
2254 val
* var87
/* : Object */;
2255 val
* var88
/* : String */;
2256 long var89
/* : Int */;
2259 abstract_compiler__MakefileToolchain__gather_cc_paths(self
); /* Direct call abstract_compiler#MakefileToolchain#gather_cc_paths on <self:MakefileToolchain>*/
2262 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
2263 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
2264 if (unlikely(var2
== NULL
)) {
2265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2266 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
2273 var_mainmodule
= var
;
2275 var3
= abstract_compiler__Toolchain__compile_dir(self
);
2277 var_compile_dir
= var3
;
2279 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2280 var6
= kernel_Any_Any_get_time_0(self
);
2288 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2289 var9
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2290 if (unlikely(var9
== NULL
)) {
2291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2292 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2302 var11
= "*** WRITING C ***";
2304 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2310 toolcontext__ToolContext__info(var7
, var10
, var14
); /* Direct call toolcontext#ToolContext#info on <var7:ToolContext>*/
2313 file__String__mkdir(var_compile_dir
); /* Direct call file#String#mkdir on <var_compile_dir:String>*/
2315 var15
= NEW_array__Array(&type_array__Arraystring__String
);
2317 array__Array__init(var15
); /* Direct call array#Array#init on <var15:Array[String]>*/
2321 abstract_compiler__MakefileToolchain__write_files(self
, var_compiler
, var_compile_dir
, var_cfiles
); /* Direct call abstract_compiler#MakefileToolchain#write_files on <self:MakefileToolchain>*/
2324 abstract_compiler__MakefileToolchain__write_makefile(self
, var_compiler
, var_compile_dir
, var_cfiles
); /* Direct call abstract_compiler#MakefileToolchain#write_makefile on <self:MakefileToolchain>*/
2327 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2328 var18
= kernel_Any_Any_get_time_0(self
);
2331 RET_LABEL17
:(void)0;
2336 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2337 var21
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2338 if (unlikely(var21
== NULL
)) {
2339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2340 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2344 RET_LABEL20
:(void)0;
2350 var24
= "*** END WRITING C: ";
2352 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2357 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
2358 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
2359 /* <var_time0:Int> isa OTHER */
2360 var29
= 1; /* easy <var_time0:Int> isa OTHER*/
2361 if (unlikely(!var29
)) {
2362 var_class_name
= type_kernel__Int
.name
;
2363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2364 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
2367 var30
= var_time1
- var_time0
;
2370 RET_LABEL28
:(void)0;
2378 var35
= string__NativeString__to_s_with_length(var33
, var34
);
2382 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
2383 { /* var36 = array_instance Array[Object] */
2385 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
2386 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var23
;
2387 var39
= BOX_kernel__Int(var27
); /* autobox from Int to Object */
2388 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var39
;
2389 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var32
;
2391 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
2395 var40
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
2399 toolcontext__ToolContext__info(var19
, var40
, var41
); /* Direct call toolcontext#ToolContext#info on <var19:ToolContext>*/
2402 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2403 var44
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2404 if (unlikely(var44
== NULL
)) {
2405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2406 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2410 RET_LABEL43
:(void)0;
2414 { /* Inline abstract_compiler#ToolContext#opt_no_cc (var42) on <var42:ToolContext> */
2415 var47
= var42
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_cc
].val
; /* _opt_no_cc on <var42:ToolContext> */
2416 if (unlikely(var47
== NULL
)) {
2417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_cc");
2418 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 32);
2422 RET_LABEL46
:(void)0;
2426 { /* Inline opts#Option#value (var45) on <var45:OptionBool> */
2427 var50
= var45
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var45:OptionBool> */
2429 RET_LABEL49
:(void)0;
2432 var51
= ((struct instance_kernel__Bool
*)var48
)->value
; /* autounbox from nullable Object to Bool */;
2437 var_time0
= var_time1
;
2439 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2440 var54
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2441 if (unlikely(var54
== NULL
)) {
2442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2443 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2447 RET_LABEL53
:(void)0;
2453 var57
= "*** COMPILING C ***";
2455 var59
= string__NativeString__to_s_with_length(var57
, var58
);
2461 toolcontext__ToolContext__info(var52
, var56
, var60
); /* Direct call toolcontext#ToolContext#info on <var52:ToolContext>*/
2464 abstract_compiler__MakefileToolchain__compile_c_code(self
, var_compiler
, var_compile_dir
); /* Direct call abstract_compiler#MakefileToolchain#compile_c_code on <self:MakefileToolchain>*/
2467 { /* Inline time#Object#get_time (self) on <self:MakefileToolchain> */
2468 var63
= kernel_Any_Any_get_time_0(self
);
2471 RET_LABEL62
:(void)0;
2476 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
2477 var66
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
2478 if (unlikely(var66
== NULL
)) {
2479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2480 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
2484 RET_LABEL65
:(void)0;
2490 var69
= "*** END COMPILING C: ";
2492 var71
= string__NativeString__to_s_with_length(var69
, var70
);
2497 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
2498 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
2499 /* <var_time0:Int> isa OTHER */
2500 var74
= 1; /* easy <var_time0:Int> isa OTHER*/
2501 if (unlikely(!var74
)) {
2502 var_class_name77
= type_kernel__Int
.name
;
2503 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77
);
2504 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
2507 var78
= var_time1
- var_time0
;
2510 RET_LABEL73
:(void)0;
2518 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2522 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
2523 { /* var84 = array_instance Array[Object] */
2525 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
2526 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var68
;
2527 var87
= BOX_kernel__Int(var72
); /* autobox from Int to Object */
2528 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var87
;
2529 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var80
;
2531 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
2535 var88
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
2539 toolcontext__ToolContext__info(var64
, var88
, var89
); /* Direct call toolcontext#ToolContext#info on <var64:ToolContext>*/
2543 /* method abstract_compiler#MakefileToolchain#write_and_make for (self: Object, AbstractCompiler) */
2544 void VIRTUAL_abstract_compiler__MakefileToolchain__write_and_make(val
* self
, val
* p0
) {
2545 abstract_compiler__MakefileToolchain__write_and_make(self
, p0
); /* Direct call abstract_compiler#MakefileToolchain#write_and_make on <self:Object(MakefileToolchain)>*/
2548 /* method abstract_compiler#MakefileToolchain#write_files for (self: MakefileToolchain, AbstractCompiler, String, Array[String]) */
2549 void abstract_compiler__MakefileToolchain__write_files(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2550 val
* var_compiler
/* var compiler: AbstractCompiler */;
2551 val
* var_compile_dir
/* var compile_dir: String */;
2552 val
* var_cfiles
/* var cfiles: Array[String] */;
2553 val
* var
/* : MModule */;
2554 val
* var2
/* : MModule */;
2555 val
* var3
/* : nullable Platform */;
2556 val
* var_platform
/* var platform: nullable Platform */;
2557 short int var4
/* : Bool */;
2558 val
* var5
/* : ToolContext */;
2559 val
* var7
/* : ToolContext */;
2560 val
* var8
/* : OptionString */;
2561 val
* var10
/* : OptionString */;
2562 val
* var11
/* : nullable Object */;
2563 val
* var13
/* : nullable Object */;
2564 static val
* varonce
;
2565 val
* var14
/* : String */;
2566 char* var15
/* : NativeString */;
2567 long var16
/* : Int */;
2568 val
* var17
/* : FlatString */;
2569 short int var18
/* : Bool */;
2570 short int var19
/* : Bool */;
2571 short int var_
/* var : Bool */;
2572 short int var20
/* : Bool */;
2573 val
* var21
/* : null */;
2574 short int var22
/* : Bool */;
2575 short int var23
/* : Bool */;
2576 short int var_24
/* var : Bool */;
2577 short int var25
/* : Bool */;
2578 static val
* varonce26
;
2579 val
* var27
/* : String */;
2580 char* var28
/* : NativeString */;
2581 long var29
/* : Int */;
2582 val
* var30
/* : FlatString */;
2583 val
* var_cc_opt_with_libgc
/* var cc_opt_with_libgc: String */;
2584 short int var31
/* : Bool */;
2585 val
* var32
/* : null */;
2586 short int var33
/* : Bool */;
2587 short int var34
/* : Bool */;
2588 short int var_35
/* var : Bool */;
2589 short int var36
/* : Bool */;
2590 short int var37
/* : Bool */;
2591 static val
* varonce38
;
2592 val
* var39
/* : String */;
2593 char* var40
/* : NativeString */;
2594 long var41
/* : Int */;
2595 val
* var42
/* : FlatString */;
2596 val
* var43
/* : ExternCFile */;
2597 static val
* varonce44
;
2598 val
* var45
/* : String */;
2599 char* var46
/* : NativeString */;
2600 long var47
/* : Int */;
2601 val
* var48
/* : FlatString */;
2602 val
* var_gc_chooser
/* var gc_chooser: ExternCFile */;
2603 val
* var49
/* : Array[ExternFile] */;
2604 val
* var51
/* : Array[ExternFile] */;
2605 val
* var52
/* : Array[String] */;
2606 val
* var54
/* : Array[String] */;
2607 val
* var55
/* : Array[String] */;
2608 val
* var57
/* : Array[String] */;
2609 val
* var58
/* : nullable Object */;
2610 static val
* varonce59
;
2611 val
* var60
/* : String */;
2612 char* var61
/* : NativeString */;
2613 long var62
/* : Int */;
2614 val
* var63
/* : FlatString */;
2615 val
* var64
/* : Array[Object] */;
2616 long var65
/* : Int */;
2617 val
* var66
/* : NativeArray[Object] */;
2618 val
* var67
/* : String */;
2619 val
* var68
/* : Array[String] */;
2620 val
* var70
/* : Array[String] */;
2621 val
* var71
/* : Array[String] */;
2622 val
* var73
/* : Array[String] */;
2623 val
* var74
/* : nullable Object */;
2624 static val
* varonce75
;
2625 val
* var76
/* : String */;
2626 char* var77
/* : NativeString */;
2627 long var78
/* : Int */;
2628 val
* var79
/* : FlatString */;
2629 val
* var80
/* : Array[Object] */;
2630 long var81
/* : Int */;
2631 val
* var82
/* : NativeArray[Object] */;
2632 val
* var83
/* : String */;
2633 val
* var84
/* : ToolContext */;
2634 val
* var86
/* : ToolContext */;
2635 val
* var87
/* : ModelBuilder */;
2636 val
* var88
/* : HashMap[MModule, AModule] */;
2637 val
* var90
/* : HashMap[MModule, AModule] */;
2638 val
* var_m2m
/* var m2m: HashMap[MModule, AModule] */;
2639 val
* var91
/* : MModule */;
2640 val
* var93
/* : MModule */;
2641 val
* var94
/* : POSetElement[MModule] */;
2642 val
* var96
/* : POSetElement[MModule] */;
2643 val
* var97
/* : Collection[Object] */;
2644 val
* var98
/* : Iterator[nullable Object] */;
2645 short int var99
/* : Bool */;
2646 val
* var100
/* : nullable Object */;
2647 val
* var_m
/* var m: MModule */;
2648 val
* var101
/* : Array[String] */;
2649 val
* var103
/* : Array[String] */;
2650 val
* var104
/* : ArrayIterator[nullable Object] */;
2651 short int var105
/* : Bool */;
2652 val
* var106
/* : nullable Object */;
2653 val
* var_src
/* var src: String */;
2654 static val
* varonce107
;
2655 val
* var108
/* : String */;
2656 char* var109
/* : NativeString */;
2657 long var110
/* : Int */;
2658 val
* var111
/* : FlatString */;
2659 val
* var112
/* : String */;
2660 val
* var_basename
/* var basename: String */;
2661 static val
* varonce113
;
2662 val
* var114
/* : String */;
2663 char* var115
/* : NativeString */;
2664 long var116
/* : Int */;
2665 val
* var117
/* : FlatString */;
2666 val
* var118
/* : Array[Object] */;
2667 long var119
/* : Int */;
2668 val
* var120
/* : NativeArray[Object] */;
2669 val
* var121
/* : String */;
2670 val
* var_dst
/* var dst: String */;
2671 val
* var123
/* : CodeWriter */;
2672 val
* var125
/* : CodeWriter */;
2673 val
* var126
/* : CodeFile */;
2674 val
* var128
/* : CodeFile */;
2675 val
* var129
/* : String */;
2676 val
* var131
/* : String */;
2677 static val
* varonce132
;
2678 val
* var133
/* : String */;
2679 char* var134
/* : NativeString */;
2680 long var135
/* : Int */;
2681 val
* var136
/* : FlatString */;
2682 val
* var137
/* : String */;
2683 val
* var_hfilename
/* var hfilename: String */;
2684 static val
* varonce138
;
2685 val
* var139
/* : String */;
2686 char* var140
/* : NativeString */;
2687 long var141
/* : Int */;
2688 val
* var142
/* : FlatString */;
2689 val
* var143
/* : Array[Object] */;
2690 long var144
/* : Int */;
2691 val
* var145
/* : NativeArray[Object] */;
2692 val
* var146
/* : String */;
2693 val
* var_hfilepath
/* var hfilepath: String */;
2694 val
* var147
/* : OFStream */;
2695 val
* var_h
/* var h: OFStream */;
2696 val
* var148
/* : CodeWriter */;
2697 val
* var150
/* : CodeWriter */;
2698 val
* var151
/* : List[String] */;
2699 val
* var153
/* : List[String] */;
2700 val
* var154
/* : ListIterator[nullable Object] */;
2701 short int var155
/* : Bool */;
2702 val
* var156
/* : nullable Object */;
2703 val
* var_l
/* var l: String */;
2704 static val
* varonce157
;
2705 val
* var158
/* : String */;
2706 char* var159
/* : NativeString */;
2707 long var160
/* : Int */;
2708 val
* var161
/* : FlatString */;
2709 val
* var163
/* : CodeWriter */;
2710 val
* var165
/* : CodeWriter */;
2711 val
* var166
/* : List[String] */;
2712 val
* var168
/* : List[String] */;
2713 val
* var169
/* : ListIterator[nullable Object] */;
2714 short int var170
/* : Bool */;
2715 val
* var171
/* : nullable Object */;
2716 val
* var_l172
/* var l: String */;
2717 static val
* varonce173
;
2718 val
* var174
/* : String */;
2719 char* var175
/* : NativeString */;
2720 long var176
/* : Int */;
2721 val
* var177
/* : FlatString */;
2722 val
* var179
/* : List[CodeFile] */;
2723 val
* var181
/* : List[CodeFile] */;
2724 val
* var182
/* : ListIterator[nullable Object] */;
2725 short int var183
/* : Bool */;
2726 val
* var184
/* : nullable Object */;
2727 val
* var_f
/* var f: CodeFile */;
2728 long var185
/* : Int */;
2729 long var_i
/* var i: Int */;
2730 val
* var186
/* : null */;
2731 val
* var_hfile
/* var hfile: nullable OFStream */;
2732 long var187
/* : Int */;
2733 long var_count
/* var count: Int */;
2734 val
* var188
/* : String */;
2735 val
* var190
/* : String */;
2736 static val
* varonce191
;
2737 val
* var192
/* : String */;
2738 char* var193
/* : NativeString */;
2739 long var194
/* : Int */;
2740 val
* var195
/* : FlatString */;
2741 val
* var196
/* : Array[Object] */;
2742 long var197
/* : Int */;
2743 val
* var198
/* : NativeArray[Object] */;
2744 val
* var199
/* : String */;
2745 val
* var_cfilename
/* var cfilename: String */;
2746 static val
* varonce200
;
2747 val
* var201
/* : String */;
2748 char* var202
/* : NativeString */;
2749 long var203
/* : Int */;
2750 val
* var204
/* : FlatString */;
2751 val
* var205
/* : Array[Object] */;
2752 long var206
/* : Int */;
2753 val
* var207
/* : NativeArray[Object] */;
2754 val
* var208
/* : String */;
2755 val
* var_cfilepath
/* var cfilepath: String */;
2756 val
* var209
/* : OFStream */;
2757 static val
* varonce210
;
2758 val
* var211
/* : String */;
2759 char* var212
/* : NativeString */;
2760 long var213
/* : Int */;
2761 val
* var214
/* : FlatString */;
2762 static val
* varonce215
;
2763 val
* var216
/* : String */;
2764 char* var217
/* : NativeString */;
2765 long var218
/* : Int */;
2766 val
* var219
/* : FlatString */;
2767 val
* var220
/* : Array[Object] */;
2768 long var221
/* : Int */;
2769 val
* var222
/* : NativeArray[Object] */;
2770 val
* var223
/* : String */;
2771 val
* var224
/* : HashSet[String] */;
2772 val
* var226
/* : HashSet[String] */;
2773 val
* var227
/* : Iterator[Object] */;
2774 short int var228
/* : Bool */;
2775 val
* var229
/* : nullable Object */;
2776 val
* var_key
/* var key: String */;
2777 val
* var230
/* : HashMap[String, String] */;
2778 val
* var232
/* : HashMap[String, String] */;
2779 short int var233
/* : Bool */;
2780 short int var234
/* : Bool */;
2781 val
* var235
/* : HashMap[String, ANode] */;
2782 val
* var237
/* : HashMap[String, ANode] */;
2783 val
* var238
/* : nullable Object */;
2784 val
* var_node
/* var node: nullable ANode */;
2785 val
* var239
/* : null */;
2786 short int var240
/* : Bool */;
2787 short int var241
/* : Bool */;
2788 val
* var_other
/* var other: nullable Object */;
2789 short int var243
/* : Bool */;
2790 short int var244
/* : Bool */;
2791 short int var245
/* : Bool */;
2792 static val
* varonce246
;
2793 val
* var247
/* : String */;
2794 char* var248
/* : NativeString */;
2795 long var249
/* : Int */;
2796 val
* var250
/* : FlatString */;
2797 val
* var251
/* : Array[Object] */;
2798 long var252
/* : Int */;
2799 val
* var253
/* : NativeArray[Object] */;
2800 val
* var254
/* : String */;
2801 static val
* varonce255
;
2802 val
* var256
/* : String */;
2803 char* var257
/* : NativeString */;
2804 long var258
/* : Int */;
2805 val
* var259
/* : FlatString */;
2806 val
* var260
/* : Array[Object] */;
2807 long var261
/* : Int */;
2808 val
* var262
/* : NativeArray[Object] */;
2809 val
* var263
/* : String */;
2810 val
* var264
/* : HashMap[String, String] */;
2811 val
* var266
/* : HashMap[String, String] */;
2812 val
* var267
/* : nullable Object */;
2813 static val
* varonce268
;
2814 val
* var269
/* : String */;
2815 char* var270
/* : NativeString */;
2816 long var271
/* : Int */;
2817 val
* var272
/* : FlatString */;
2818 val
* var274
/* : null */;
2819 val
* var_file
/* var file: nullable OFStream */;
2820 val
* var275
/* : Array[CodeWriter] */;
2821 val
* var277
/* : Array[CodeWriter] */;
2822 val
* var278
/* : ArrayIterator[nullable Object] */;
2823 short int var279
/* : Bool */;
2824 val
* var280
/* : nullable Object */;
2825 val
* var_vis
/* var vis: CodeWriter */;
2826 val
* var281
/* : CodeWriter */;
2827 val
* var283
/* : CodeWriter */;
2828 short int var284
/* : Bool */;
2829 short int var285
/* : Bool */;
2830 val
* var_other287
/* var other: nullable Object */;
2831 short int var288
/* : Bool */;
2832 short int var290
/* : Bool */;
2833 val
* var292
/* : List[String] */;
2834 val
* var294
/* : List[String] */;
2835 long var295
/* : Int */;
2836 val
* var296
/* : List[String] */;
2837 val
* var298
/* : List[String] */;
2838 long var299
/* : Int */;
2839 long var300
/* : Int */;
2840 short int var302
/* : Bool */;
2843 const char* var_class_name
;
2844 long var303
/* : Int */;
2845 long var_total_lines
/* var total_lines: Int */;
2846 long var304
/* : Int */;
2847 short int var305
/* : Bool */;
2848 short int var306
/* : Bool */;
2849 short int var308
/* : Bool */;
2850 long var309
/* : Int */;
2851 short int var311
/* : Bool */;
2854 const char* var_class_name314
;
2855 long var315
/* : Int */;
2856 short int var316
/* : Bool */;
2857 val
* var317
/* : null */;
2858 short int var318
/* : Bool */;
2859 short int var319
/* : Bool */;
2860 short int var321
/* : Bool */;
2861 short int var323
/* : Bool */;
2862 short int var_324
/* var : Bool */;
2863 long var325
/* : Int */;
2864 short int var326
/* : Bool */;
2865 short int var328
/* : Bool */;
2868 const char* var_class_name331
;
2869 short int var332
/* : Bool */;
2870 long var333
/* : Int */;
2871 long var334
/* : Int */;
2872 short int var336
/* : Bool */;
2875 const char* var_class_name339
;
2876 long var340
/* : Int */;
2877 val
* var341
/* : null */;
2878 short int var342
/* : Bool */;
2879 short int var343
/* : Bool */;
2880 short int var345
/* : Bool */;
2881 short int var346
/* : Bool */;
2882 short int var347
/* : Bool */;
2883 val
* var348
/* : String */;
2884 val
* var350
/* : String */;
2885 static val
* varonce351
;
2886 val
* var352
/* : String */;
2887 char* var353
/* : NativeString */;
2888 long var354
/* : Int */;
2889 val
* var355
/* : FlatString */;
2890 static val
* varonce356
;
2891 val
* var357
/* : String */;
2892 char* var358
/* : NativeString */;
2893 long var359
/* : Int */;
2894 val
* var360
/* : FlatString */;
2895 val
* var361
/* : Array[Object] */;
2896 long var362
/* : Int */;
2897 val
* var363
/* : NativeArray[Object] */;
2898 val
* var364
/* : Object */;
2899 val
* var365
/* : String */;
2900 static val
* varonce366
;
2901 val
* var367
/* : String */;
2902 char* var368
/* : NativeString */;
2903 long var369
/* : Int */;
2904 val
* var370
/* : FlatString */;
2905 val
* var371
/* : Array[Object] */;
2906 long var372
/* : Int */;
2907 val
* var373
/* : NativeArray[Object] */;
2908 val
* var374
/* : String */;
2909 val
* var375
/* : ToolContext */;
2910 val
* var377
/* : ToolContext */;
2911 static val
* varonce378
;
2912 val
* var379
/* : String */;
2913 char* var380
/* : NativeString */;
2914 long var381
/* : Int */;
2915 val
* var382
/* : FlatString */;
2916 val
* var383
/* : Array[Object] */;
2917 long var384
/* : Int */;
2918 val
* var385
/* : NativeArray[Object] */;
2919 val
* var386
/* : String */;
2920 long var387
/* : Int */;
2921 val
* var388
/* : OFStream */;
2922 static val
* varonce389
;
2923 val
* var390
/* : String */;
2924 char* var391
/* : NativeString */;
2925 long var392
/* : Int */;
2926 val
* var393
/* : FlatString */;
2927 val
* var394
/* : String */;
2928 val
* var396
/* : String */;
2929 static val
* varonce397
;
2930 val
* var398
/* : String */;
2931 char* var399
/* : NativeString */;
2932 long var400
/* : Int */;
2933 val
* var401
/* : FlatString */;
2934 val
* var402
/* : Array[Object] */;
2935 long var403
/* : Int */;
2936 val
* var404
/* : NativeArray[Object] */;
2937 val
* var405
/* : String */;
2938 val
* var406
/* : List[String] */;
2939 val
* var408
/* : List[String] */;
2940 val
* var409
/* : ListIterator[nullable Object] */;
2941 short int var410
/* : Bool */;
2942 val
* var411
/* : nullable Object */;
2943 val
* var_l412
/* var l: String */;
2944 static val
* varonce413
;
2945 val
* var414
/* : String */;
2946 char* var415
/* : NativeString */;
2947 long var416
/* : Int */;
2948 val
* var417
/* : FlatString */;
2949 val
* var419
/* : List[String] */;
2950 val
* var421
/* : List[String] */;
2951 val
* var422
/* : ListIterator[nullable Object] */;
2952 short int var423
/* : Bool */;
2953 val
* var424
/* : nullable Object */;
2954 val
* var_l425
/* var l: String */;
2955 static val
* varonce426
;
2956 val
* var427
/* : String */;
2957 char* var428
/* : NativeString */;
2958 long var429
/* : Int */;
2959 val
* var430
/* : FlatString */;
2960 val
* var432
/* : null */;
2961 short int var433
/* : Bool */;
2962 short int var434
/* : Bool */;
2963 short int var436
/* : Bool */;
2964 short int var437
/* : Bool */;
2965 short int var438
/* : Bool */;
2966 val
* var440
/* : ToolContext */;
2967 val
* var442
/* : ToolContext */;
2968 static val
* varonce443
;
2969 val
* var444
/* : String */;
2970 char* var445
/* : NativeString */;
2971 long var446
/* : Int */;
2972 val
* var447
/* : FlatString */;
2973 long var448
/* : Int */;
2974 val
* var449
/* : Array[Object] */;
2975 long var450
/* : Int */;
2976 val
* var451
/* : NativeArray[Object] */;
2977 val
* var452
/* : Object */;
2978 val
* var453
/* : String */;
2979 long var454
/* : Int */;
2981 var_compile_dir
= p1
;
2984 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
2985 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
2986 if (unlikely(var2
== NULL
)) {
2987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2988 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
2996 var3
= platform__MModule__target_platform(var
);
2998 var_platform
= var3
;
3000 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
3001 var7
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
3002 if (unlikely(var7
== NULL
)) {
3003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3004 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
3012 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (var5) on <var5:ToolContext> */
3013 var10
= var5
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <var5:ToolContext> */
3014 if (unlikely(var10
== NULL
)) {
3015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
3016 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
3024 { /* Inline opts#Option#value (var8) on <var8:OptionString> */
3025 var13
= var8
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var8:OptionString> */
3027 RET_LABEL12
:(void)0;
3035 var17
= string__NativeString__to_s_with_length(var15
, var16
);
3039 if (var11
== NULL
) {
3040 var18
= 0; /* <var14:String> cannot be null */
3042 var19
= string__FlatString___61d_61d(var11
, var14
);
3048 if (var_platform
== NULL
) {
3049 var22
= 1; /* is null */
3051 var22
= 0; /* arg is null but recv is not */
3054 var23
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var21
) /* == on <var_platform:nullable Platform>*/;
3062 var25
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libunwind
]))(var_platform
) /* supports_libunwind on <var_platform:nullable Platform(Platform)>*/;
3072 abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#build_c_to_nit_bindings on <var_compiler:AbstractCompiler>*/
3079 var28
= "-DWITH_LIBGC";
3081 var30
= string__NativeString__to_s_with_length(var28
, var29
);
3085 var_cc_opt_with_libgc
= var27
;
3087 if (var_platform
== NULL
) {
3088 var33
= 0; /* is null */
3090 var33
= 1; /* arg is null and recv is not */
3093 var34
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_platform
, var32
) /* != on <var_platform:nullable Platform>*/;
3099 var36
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libgc
]))(var_platform
) /* supports_libgc on <var_platform:nullable Platform(Platform)>*/;
3112 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3116 var_cc_opt_with_libgc
= var39
;
3119 var43
= NEW_c_tools__ExternCFile(&type_c_tools__ExternCFile
);
3123 var46
= "gc_chooser.c";
3125 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3130 c_tools__ExternCFile__init(var43
, var45
, var_cc_opt_with_libgc
); /* Direct call c_tools#ExternCFile#init on <var43:ExternCFile>*/
3132 var_gc_chooser
= var43
;
3134 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (var_compiler) on <var_compiler:AbstractCompiler> */
3135 var51
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <var_compiler:AbstractCompiler> */
3136 if (unlikely(var51
== NULL
)) {
3137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
3138 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 847);
3142 RET_LABEL50
:(void)0;
3146 array__Array__add(var49
, var_gc_chooser
); /* Direct call array#Array#add on <var49:Array[ExternFile]>*/
3149 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3150 var54
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3151 if (unlikely(var54
== NULL
)) {
3152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3153 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 850);
3157 RET_LABEL53
:(void)0;
3161 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
3162 var57
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
3163 if (unlikely(var57
== NULL
)) {
3164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
3165 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
3169 RET_LABEL56
:(void)0;
3173 var58
= abstract_collection__SequenceRead__first(var55
);
3178 var61
= "/gc_chooser.c";
3180 var63
= string__NativeString__to_s_with_length(var61
, var62
);
3184 var64
= NEW_array__Array(&type_array__Arraykernel__Object
);
3185 { /* var64 = array_instance Array[Object] */
3187 var66
= NEW_array__NativeArray(var65
, &type_array__NativeArraykernel__Object
);
3188 ((struct instance_array__NativeArray
*)var66
)->values
[0] = (val
*) var58
;
3189 ((struct instance_array__NativeArray
*)var66
)->values
[1] = (val
*) var60
;
3191 ((void (*)(val
*, val
*, long))(var64
->class->vft
[COLOR_array__Array__with_native
]))(var64
, var66
, var65
) /* with_native on <var64:Array[Object]>*/;
3195 var67
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_string__Object__to_s
]))(var64
) /* to_s on <var64:Array[Object]>*/;
3198 array__Array__add(var52
, var67
); /* Direct call array#Array#add on <var52:Array[String]>*/
3201 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3202 var70
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3203 if (unlikely(var70
== NULL
)) {
3204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3205 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 850);
3209 RET_LABEL69
:(void)0;
3213 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
3214 var73
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
3215 if (unlikely(var73
== NULL
)) {
3216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
3217 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
3221 RET_LABEL72
:(void)0;
3225 var74
= abstract_collection__SequenceRead__first(var71
);
3230 var77
= "/gc_chooser.h";
3232 var79
= string__NativeString__to_s_with_length(var77
, var78
);
3236 var80
= NEW_array__Array(&type_array__Arraykernel__Object
);
3237 { /* var80 = array_instance Array[Object] */
3239 var82
= NEW_array__NativeArray(var81
, &type_array__NativeArraykernel__Object
);
3240 ((struct instance_array__NativeArray
*)var82
)->values
[0] = (val
*) var74
;
3241 ((struct instance_array__NativeArray
*)var82
)->values
[1] = (val
*) var76
;
3243 ((void (*)(val
*, val
*, long))(var80
->class->vft
[COLOR_array__Array__with_native
]))(var80
, var82
, var81
) /* with_native on <var80:Array[Object]>*/;
3247 var83
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_string__Object__to_s
]))(var80
) /* to_s on <var80:Array[Object]>*/;
3250 array__Array__add(var68
, var83
); /* Direct call array#Array#add on <var68:Array[String]>*/
3253 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
3254 var86
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
3255 if (unlikely(var86
== NULL
)) {
3256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3257 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
3261 RET_LABEL85
:(void)0;
3265 var87
= modelbuilder__ToolContext__modelbuilder(var84
);
3268 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (var87) on <var87:ModelBuilder> */
3269 var90
= var87
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <var87:ModelBuilder> */
3270 if (unlikely(var90
== NULL
)) {
3271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
3272 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
3276 RET_LABEL89
:(void)0;
3281 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
3282 var93
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
3283 if (unlikely(var93
== NULL
)) {
3284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3285 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
3289 RET_LABEL92
:(void)0;
3293 { /* Inline mmodule#MModule#in_importation (var91) on <var91:MModule> */
3294 var96
= var91
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var91:MModule> */
3295 if (unlikely(var96
== NULL
)) {
3296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
3297 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
3301 RET_LABEL95
:(void)0;
3305 var97
= poset__POSetElement__greaters(var94
);
3308 var98
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var97
) /* iterator on <var97:Collection[Object](Collection[MModule])>*/;
3312 var99
= ((short int (*)(val
*))(var98
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var98
) /* is_ok on <var98:Iterator[nullable Object]>*/;
3316 var100
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var98
) /* item on <var98:Iterator[nullable Object]>*/;
3320 separate_compiler__SeparateCompiler__finalize_ffi_for_module(var_compiler
, var_m
); /* Direct call separate_compiler#SeparateCompiler#finalize_ffi_for_module on <var_compiler:AbstractCompiler>*/
3322 CONTINUE_label
: (void)0;
3324 ((void (*)(val
*))(var98
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var98
) /* next on <var98:Iterator[nullable Object]>*/;
3327 BREAK_label
: (void)0;
3329 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var_compiler) on <var_compiler:AbstractCompiler> */
3330 var103
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files_to_copy
].val
; /* _files_to_copy on <var_compiler:AbstractCompiler> */
3331 if (unlikely(var103
== NULL
)) {
3332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3333 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 850);
3337 RET_LABEL102
:(void)0;
3341 var104
= array__AbstractArrayRead__iterator(var101
);
3345 var105
= array__ArrayIterator__is_ok(var104
);
3349 var106
= array__ArrayIterator__item(var104
);
3353 var108
= varonce107
;
3357 var111
= string__NativeString__to_s_with_length(var109
, var110
);
3359 varonce107
= var108
;
3362 var112
= file__String__basename(var_src
, var108
);
3364 var_basename
= var112
;
3366 var114
= varonce113
;
3370 var117
= string__NativeString__to_s_with_length(var115
, var116
);
3372 varonce113
= var114
;
3374 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
3375 { /* var118 = array_instance Array[Object] */
3377 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
3378 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var_compile_dir
;
3379 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var114
;
3380 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var_basename
;
3382 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
3386 var121
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
3390 file__String__file_copy_to(var_src
, var_dst
); /* Direct call file#String#file_copy_to on <var_src:String>*/
3392 CONTINUE_label122
: (void)0;
3394 array__ArrayIterator__next(var104
); /* Direct call array#ArrayIterator#next on <var104:ArrayIterator[nullable Object]>*/
3397 BREAK_label122
: (void)0;
3399 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3400 var125
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3401 if (unlikely(var125
== NULL
)) {
3402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3403 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
3407 RET_LABEL124
:(void)0;
3411 { /* Inline abstract_compiler#CodeWriter#file (var123) on <var123:CodeWriter> */
3412 var128
= var123
->attrs
[COLOR_abstract_compiler__CodeWriter___file
].val
; /* _file on <var123:CodeWriter> */
3413 if (unlikely(var128
== NULL
)) {
3414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
3415 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 961);
3419 RET_LABEL127
:(void)0;
3423 { /* Inline abstract_compiler#CodeFile#name (var126) on <var126:CodeFile> */
3424 var131
= var126
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var126:CodeFile> */
3425 if (unlikely(var131
== NULL
)) {
3426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3427 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 954);
3431 RET_LABEL130
:(void)0;
3435 var133
= varonce132
;
3439 var136
= string__NativeString__to_s_with_length(var134
, var135
);
3441 varonce132
= var133
;
3444 var137
= string__FlatString___43d(var129
, var133
);
3446 var_hfilename
= var137
;
3448 var139
= varonce138
;
3452 var142
= string__NativeString__to_s_with_length(var140
, var141
);
3454 varonce138
= var139
;
3456 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
3457 { /* var143 = array_instance Array[Object] */
3459 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
3460 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var_compile_dir
;
3461 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var139
;
3462 ((struct instance_array__NativeArray
*)var145
)->values
[2] = (val
*) var_hfilename
;
3464 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
3468 var146
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
3470 var_hfilepath
= var146
;
3471 var147
= NEW_file__OFStream(&type_file__OFStream
);
3473 file__OFStream__open(var147
, var_hfilepath
); /* Direct call file#OFStream#open on <var147:OFStream>*/
3477 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3478 var150
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3479 if (unlikely(var150
== NULL
)) {
3480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3481 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
3485 RET_LABEL149
:(void)0;
3489 { /* Inline abstract_compiler#CodeWriter#decl_lines (var148) on <var148:CodeWriter> */
3490 var153
= var148
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var148:CodeWriter> */
3491 if (unlikely(var153
== NULL
)) {
3492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
3493 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 963);
3497 RET_LABEL152
:(void)0;
3501 var154
= list__List__iterator(var151
);
3505 var155
= list__ListIterator__is_ok(var154
);
3509 var156
= list__ListIterator__item(var154
);
3513 file__OFStream__write(var_h
, var_l
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3516 var158
= varonce157
;
3520 var161
= string__NativeString__to_s_with_length(var159
, var160
);
3522 varonce157
= var158
;
3525 file__OFStream__write(var_h
, var158
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3527 CONTINUE_label162
: (void)0;
3529 list__ListIterator__next(var154
); /* Direct call list#ListIterator#next on <var154:ListIterator[nullable Object]>*/
3532 BREAK_label162
: (void)0;
3534 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3535 var165
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3536 if (unlikely(var165
== NULL
)) {
3537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3538 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
3542 RET_LABEL164
:(void)0;
3546 { /* Inline abstract_compiler#CodeWriter#lines (var163) on <var163:CodeWriter> */
3547 var168
= var163
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var163:CodeWriter> */
3548 if (unlikely(var168
== NULL
)) {
3549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
3550 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 962);
3554 RET_LABEL167
:(void)0;
3558 var169
= list__List__iterator(var166
);
3562 var170
= list__ListIterator__is_ok(var169
);
3566 var171
= list__ListIterator__item(var169
);
3570 file__OFStream__write(var_h
, var_l172
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3573 var174
= varonce173
;
3577 var177
= string__NativeString__to_s_with_length(var175
, var176
);
3579 varonce173
= var174
;
3582 file__OFStream__write(var_h
, var174
); /* Direct call file#OFStream#write on <var_h:OFStream>*/
3584 CONTINUE_label178
: (void)0;
3586 list__ListIterator__next(var169
); /* Direct call list#ListIterator#next on <var169:ListIterator[nullable Object]>*/
3589 BREAK_label178
: (void)0;
3591 file__OFStream__close(var_h
); /* Direct call file#OFStream#close on <var_h:OFStream>*/
3594 { /* Inline abstract_compiler#AbstractCompiler#files (var_compiler) on <var_compiler:AbstractCompiler> */
3595 var181
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <var_compiler:AbstractCompiler> */
3596 if (unlikely(var181
== NULL
)) {
3597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
3598 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 465);
3602 RET_LABEL180
:(void)0;
3606 var182
= list__List__iterator(var179
);
3610 var183
= list__ListIterator__is_ok(var182
);
3614 var184
= list__ListIterator__item(var182
);
3624 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
3625 var190
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
3626 if (unlikely(var190
== NULL
)) {
3627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3628 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 954);
3632 RET_LABEL189
:(void)0;
3636 var192
= varonce191
;
3640 var195
= string__NativeString__to_s_with_length(var193
, var194
);
3642 varonce191
= var192
;
3644 var196
= NEW_array__Array(&type_array__Arraykernel__Object
);
3645 { /* var196 = array_instance Array[Object] */
3647 var198
= NEW_array__NativeArray(var197
, &type_array__NativeArraykernel__Object
);
3648 ((struct instance_array__NativeArray
*)var198
)->values
[0] = (val
*) var188
;
3649 ((struct instance_array__NativeArray
*)var198
)->values
[1] = (val
*) var192
;
3651 ((void (*)(val
*, val
*, long))(var196
->class->vft
[COLOR_array__Array__with_native
]))(var196
, var198
, var197
) /* with_native on <var196:Array[Object]>*/;
3655 var199
= ((val
* (*)(val
*))(var196
->class->vft
[COLOR_string__Object__to_s
]))(var196
) /* to_s on <var196:Array[Object]>*/;
3657 var_cfilename
= var199
;
3659 var201
= varonce200
;
3663 var204
= string__NativeString__to_s_with_length(var202
, var203
);
3665 varonce200
= var201
;
3667 var205
= NEW_array__Array(&type_array__Arraykernel__Object
);
3668 { /* var205 = array_instance Array[Object] */
3670 var207
= NEW_array__NativeArray(var206
, &type_array__NativeArraykernel__Object
);
3671 ((struct instance_array__NativeArray
*)var207
)->values
[0] = (val
*) var_compile_dir
;
3672 ((struct instance_array__NativeArray
*)var207
)->values
[1] = (val
*) var201
;
3673 ((struct instance_array__NativeArray
*)var207
)->values
[2] = (val
*) var_cfilename
;
3675 ((void (*)(val
*, val
*, long))(var205
->class->vft
[COLOR_array__Array__with_native
]))(var205
, var207
, var206
) /* with_native on <var205:Array[Object]>*/;
3679 var208
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_string__Object__to_s
]))(var205
) /* to_s on <var205:Array[Object]>*/;
3681 var_cfilepath
= var208
;
3682 var209
= NEW_file__OFStream(&type_file__OFStream
);
3684 file__OFStream__open(var209
, var_cfilepath
); /* Direct call file#OFStream#open on <var209:OFStream>*/
3688 var211
= varonce210
;
3690 var212
= "#include \"";
3692 var214
= string__NativeString__to_s_with_length(var212
, var213
);
3694 varonce210
= var211
;
3697 var216
= varonce215
;
3701 var219
= string__NativeString__to_s_with_length(var217
, var218
);
3703 varonce215
= var216
;
3705 var220
= NEW_array__Array(&type_array__Arraykernel__Object
);
3706 { /* var220 = array_instance Array[Object] */
3708 var222
= NEW_array__NativeArray(var221
, &type_array__NativeArraykernel__Object
);
3709 ((struct instance_array__NativeArray
*)var222
)->values
[0] = (val
*) var211
;
3710 ((struct instance_array__NativeArray
*)var222
)->values
[1] = (val
*) var_hfilename
;
3711 ((struct instance_array__NativeArray
*)var222
)->values
[2] = (val
*) var216
;
3713 ((void (*)(val
*, val
*, long))(var220
->class->vft
[COLOR_array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
3717 var223
= ((val
* (*)(val
*))(var220
->class->vft
[COLOR_string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
3720 file__OFStream__write(var_hfile
, var223
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
3723 { /* Inline abstract_compiler#CodeFile#required_declarations (var_f) on <var_f:CodeFile> */
3724 var226
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___required_declarations
].val
; /* _required_declarations on <var_f:CodeFile> */
3725 if (unlikely(var226
== NULL
)) {
3726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
3727 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 956);
3731 RET_LABEL225
:(void)0;
3735 var227
= hash_collection__HashSet__iterator(var224
);
3739 var228
= ((short int (*)(val
*))(var227
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var227
) /* is_ok on <var227:Iterator[Object]>*/;
3743 var229
= ((val
* (*)(val
*))(var227
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var227
) /* item on <var227:Iterator[Object]>*/;
3747 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
3748 var232
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <var_compiler:AbstractCompiler> */
3749 if (unlikely(var232
== NULL
)) {
3750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
3751 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
3755 RET_LABEL231
:(void)0;
3759 var233
= abstract_collection__MapRead__has_key(var230
, var_key
);
3764 { /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
3765 var237
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <var_compiler:AbstractCompiler> */
3766 if (unlikely(var237
== NULL
)) {
3767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
3768 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 486);
3772 RET_LABEL236
:(void)0;
3776 var238
= abstract_collection__MapRead__get_or_null(var235
, var_key
);
3780 if (var_node
== NULL
) {
3781 var240
= 0; /* is null */
3783 var240
= 1; /* arg is null and recv is not */
3786 { /* Inline kernel#Object#!= (var_node,var239) on <var_node:nullable ANode> */
3789 var244
= ((short int (*)(val
*, val
*))(var_node
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_node
, var_other
) /* == on <var_node:nullable ANode(ANode)>*/;
3795 RET_LABEL242
:(void)0;
3801 var247
= varonce246
;
3803 var248
= "No provided declaration for ";
3805 var250
= string__NativeString__to_s_with_length(var248
, var249
);
3807 varonce246
= var247
;
3809 var251
= NEW_array__Array(&type_array__Arraykernel__Object
);
3810 { /* var251 = array_instance Array[Object] */
3812 var253
= NEW_array__NativeArray(var252
, &type_array__NativeArraykernel__Object
);
3813 ((struct instance_array__NativeArray
*)var253
)->values
[0] = (val
*) var247
;
3814 ((struct instance_array__NativeArray
*)var253
)->values
[1] = (val
*) var_key
;
3816 ((void (*)(val
*, val
*, long))(var251
->class->vft
[COLOR_array__Array__with_native
]))(var251
, var253
, var252
) /* with_native on <var251:Array[Object]>*/;
3820 var254
= ((val
* (*)(val
*))(var251
->class->vft
[COLOR_string__Object__to_s
]))(var251
) /* to_s on <var251:Array[Object]>*/;
3823 parser_nodes__ANode__debug(var_node
, var254
); /* Direct call parser_nodes#ANode#debug on <var_node:nullable ANode(ANode)>*/
3827 var256
= varonce255
;
3829 var257
= "No provided declaration for ";
3831 var259
= string__NativeString__to_s_with_length(var257
, var258
);
3833 varonce255
= var256
;
3835 var260
= NEW_array__Array(&type_array__Arraykernel__Object
);
3836 { /* var260 = array_instance Array[Object] */
3838 var262
= NEW_array__NativeArray(var261
, &type_array__NativeArraykernel__Object
);
3839 ((struct instance_array__NativeArray
*)var262
)->values
[0] = (val
*) var256
;
3840 ((struct instance_array__NativeArray
*)var262
)->values
[1] = (val
*) var_key
;
3842 ((void (*)(val
*, val
*, long))(var260
->class->vft
[COLOR_array__Array__with_native
]))(var260
, var262
, var261
) /* with_native on <var260:Array[Object]>*/;
3846 var263
= ((val
* (*)(val
*))(var260
->class->vft
[COLOR_string__Object__to_s
]))(var260
) /* to_s on <var260:Array[Object]>*/;
3849 file__Object__print(self
, var263
); /* Direct call file#Object#print on <self:MakefileToolchain>*/
3852 PRINT_ERROR("Runtime error: %s", "Aborted");
3853 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 263);
3858 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (var_compiler) on <var_compiler:AbstractCompiler> */
3859 var266
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <var_compiler:AbstractCompiler> */
3860 if (unlikely(var266
== NULL
)) {
3861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
3862 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
3866 RET_LABEL265
:(void)0;
3870 var267
= hash_collection__HashMap___91d_93d(var264
, var_key
);
3873 file__OFStream__write(var_hfile
, var267
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
3876 var269
= varonce268
;
3880 var272
= string__NativeString__to_s_with_length(var270
, var271
);
3882 varonce268
= var269
;
3885 file__OFStream__write(var_hfile
, var269
); /* Direct call file#OFStream#write on <var_hfile:nullable OFStream(OFStream)>*/
3887 CONTINUE_label273
: (void)0;
3889 ((void (*)(val
*))(var227
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var227
) /* next on <var227:Iterator[Object]>*/;
3892 BREAK_label273
: (void)0;
3894 file__OFStream__close(var_hfile
); /* Direct call file#OFStream#close on <var_hfile:nullable OFStream(OFStream)>*/
3899 { /* Inline abstract_compiler#CodeFile#writers (var_f) on <var_f:CodeFile> */
3900 var277
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___writers
].val
; /* _writers on <var_f:CodeFile> */
3901 if (unlikely(var277
== NULL
)) {
3902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writers");
3903 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 955);
3907 RET_LABEL276
:(void)0;
3911 var278
= array__AbstractArrayRead__iterator(var275
);
3915 var279
= array__ArrayIterator__is_ok(var278
);
3919 var280
= array__ArrayIterator__item(var278
);
3923 { /* Inline abstract_compiler#AbstractCompiler#header (var_compiler) on <var_compiler:AbstractCompiler> */
3924 var283
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <var_compiler:AbstractCompiler> */
3925 if (unlikely(var283
== NULL
)) {
3926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
3927 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
3931 RET_LABEL282
:(void)0;
3935 { /* Inline kernel#Object#== (var_vis,var281) on <var_vis:CodeWriter> */
3936 var_other287
= var281
;
3938 { /* Inline kernel#Object#is_same_instance (var_vis,var_other287) on <var_vis:CodeWriter> */
3939 var290
= var_vis
== var_other287
;
3942 RET_LABEL289
:(void)0;
3947 RET_LABEL286
:(void)0;
3952 goto CONTINUE_label291
;
3956 { /* Inline abstract_compiler#CodeWriter#lines (var_vis) on <var_vis:CodeWriter> */
3957 var294
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var_vis:CodeWriter> */
3958 if (unlikely(var294
== NULL
)) {
3959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
3960 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 962);
3964 RET_LABEL293
:(void)0;
3968 var295
= list__List__length(var292
);
3971 { /* Inline abstract_compiler#CodeWriter#decl_lines (var_vis) on <var_vis:CodeWriter> */
3972 var298
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var_vis:CodeWriter> */
3973 if (unlikely(var298
== NULL
)) {
3974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
3975 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 963);
3979 RET_LABEL297
:(void)0;
3983 var299
= list__List__length(var296
);
3986 { /* Inline kernel#Int#+ (var295,var299) on <var295:Int> */
3987 /* Covariant cast for argument 0 (i) <var299:Int> isa OTHER */
3988 /* <var299:Int> isa OTHER */
3989 var302
= 1; /* easy <var299:Int> isa OTHER*/
3990 if (unlikely(!var302
)) {
3991 var_class_name
= type_kernel__Int
.name
;
3992 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3993 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3996 var303
= var295
+ var299
;
3999 RET_LABEL301
:(void)0;
4002 var_total_lines
= var300
;
4005 { /* Inline kernel#Int#== (var_total_lines,var304) on <var_total_lines:Int> */
4006 var308
= var_total_lines
== var304
;
4009 RET_LABEL307
:(void)0;
4014 goto CONTINUE_label291
;
4018 { /* Inline kernel#Int#+ (var_count,var_total_lines) on <var_count:Int> */
4019 /* Covariant cast for argument 0 (i) <var_total_lines:Int> isa OTHER */
4020 /* <var_total_lines:Int> isa OTHER */
4021 var311
= 1; /* easy <var_total_lines:Int> isa OTHER*/
4022 if (unlikely(!var311
)) {
4023 var_class_name314
= type_kernel__Int
.name
;
4024 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name314
);
4025 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4028 var315
= var_count
+ var_total_lines
;
4031 RET_LABEL310
:(void)0;
4036 if (var_file
== NULL
) {
4037 var318
= 1; /* is null */
4039 var318
= 0; /* arg is null but recv is not */
4042 { /* Inline kernel#Object#== (var_file,var317) on <var_file:nullable OFStream> */
4043 var_other287
= var317
;
4045 { /* Inline kernel#Object#is_same_instance (var_file,var_other287) on <var_file:nullable OFStream(OFStream)> */
4046 var323
= var_file
== var_other287
;
4049 RET_LABEL322
:(void)0;
4054 RET_LABEL320
:(void)0;
4064 { /* Inline kernel#Int#> (var_count,var325) on <var_count:Int> */
4065 /* Covariant cast for argument 0 (i) <var325:Int> isa OTHER */
4066 /* <var325:Int> isa OTHER */
4067 var328
= 1; /* easy <var325:Int> isa OTHER*/
4068 if (unlikely(!var328
)) {
4069 var_class_name331
= type_kernel__Int
.name
;
4070 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name331
);
4071 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
4074 var332
= var_count
> var325
;
4077 RET_LABEL327
:(void)0;
4085 { /* Inline kernel#Int#+ (var_i,var333) on <var_i:Int> */
4086 /* Covariant cast for argument 0 (i) <var333:Int> isa OTHER */
4087 /* <var333:Int> isa OTHER */
4088 var336
= 1; /* easy <var333:Int> isa OTHER*/
4089 if (unlikely(!var336
)) {
4090 var_class_name339
= type_kernel__Int
.name
;
4091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name339
);
4092 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4095 var340
= var_i
+ var333
;
4098 RET_LABEL335
:(void)0;
4103 if (var_file
== NULL
) {
4104 var342
= 0; /* is null */
4106 var342
= 1; /* arg is null and recv is not */
4109 { /* Inline kernel#Object#!= (var_file,var341) on <var_file:nullable OFStream> */
4112 var346
= ((short int (*)(val
*, val
*))(var_file
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_file
, var_other
) /* == on <var_file:nullable OFStream(OFStream)>*/;
4118 RET_LABEL344
:(void)0;
4124 file__OFStream__close(var_file
); /* Direct call file#OFStream#close on <var_file:nullable OFStream(OFStream)>*/
4129 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
4130 var350
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
4131 if (unlikely(var350
== NULL
)) {
4132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4133 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 954);
4137 RET_LABEL349
:(void)0;
4141 var352
= varonce351
;
4145 var355
= string__NativeString__to_s_with_length(var353
, var354
);
4147 varonce351
= var352
;
4150 var357
= varonce356
;
4154 var360
= string__NativeString__to_s_with_length(var358
, var359
);
4156 varonce356
= var357
;
4158 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
4159 { /* var361 = array_instance Array[Object] */
4161 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
4162 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var348
;
4163 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var352
;
4164 var364
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
4165 ((struct instance_array__NativeArray
*)var363
)->values
[2] = (val
*) var364
;
4166 ((struct instance_array__NativeArray
*)var363
)->values
[3] = (val
*) var357
;
4168 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
4172 var365
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
4174 var_cfilename
= var365
;
4176 var367
= varonce366
;
4180 var370
= string__NativeString__to_s_with_length(var368
, var369
);
4182 varonce366
= var367
;
4184 var371
= NEW_array__Array(&type_array__Arraykernel__Object
);
4185 { /* var371 = array_instance Array[Object] */
4187 var373
= NEW_array__NativeArray(var372
, &type_array__NativeArraykernel__Object
);
4188 ((struct instance_array__NativeArray
*)var373
)->values
[0] = (val
*) var_compile_dir
;
4189 ((struct instance_array__NativeArray
*)var373
)->values
[1] = (val
*) var367
;
4190 ((struct instance_array__NativeArray
*)var373
)->values
[2] = (val
*) var_cfilename
;
4192 ((void (*)(val
*, val
*, long))(var371
->class->vft
[COLOR_array__Array__with_native
]))(var371
, var373
, var372
) /* with_native on <var371:Array[Object]>*/;
4196 var374
= ((val
* (*)(val
*))(var371
->class->vft
[COLOR_string__Object__to_s
]))(var371
) /* to_s on <var371:Array[Object]>*/;
4198 var_cfilepath
= var374
;
4200 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4201 var377
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4202 if (unlikely(var377
== NULL
)) {
4203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4204 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
4208 RET_LABEL376
:(void)0;
4212 var379
= varonce378
;
4214 var380
= "new C source files to compile: ";
4216 var382
= string__NativeString__to_s_with_length(var380
, var381
);
4218 varonce378
= var379
;
4220 var383
= NEW_array__Array(&type_array__Arraykernel__Object
);
4221 { /* var383 = array_instance Array[Object] */
4223 var385
= NEW_array__NativeArray(var384
, &type_array__NativeArraykernel__Object
);
4224 ((struct instance_array__NativeArray
*)var385
)->values
[0] = (val
*) var379
;
4225 ((struct instance_array__NativeArray
*)var385
)->values
[1] = (val
*) var_cfilepath
;
4227 ((void (*)(val
*, val
*, long))(var383
->class->vft
[COLOR_array__Array__with_native
]))(var383
, var385
, var384
) /* with_native on <var383:Array[Object]>*/;
4231 var386
= ((val
* (*)(val
*))(var383
->class->vft
[COLOR_string__Object__to_s
]))(var383
) /* to_s on <var383:Array[Object]>*/;
4235 toolcontext__ToolContext__info(var375
, var386
, var387
); /* Direct call toolcontext#ToolContext#info on <var375:ToolContext>*/
4238 array__Array__add(var_cfiles
, var_cfilename
); /* Direct call array#Array#add on <var_cfiles:Array[String]>*/
4240 var388
= NEW_file__OFStream(&type_file__OFStream
);
4242 file__OFStream__open(var388
, var_cfilepath
); /* Direct call file#OFStream#open on <var388:OFStream>*/
4246 var390
= varonce389
;
4248 var391
= "#include \"";
4250 var393
= string__NativeString__to_s_with_length(var391
, var392
);
4252 varonce389
= var390
;
4255 { /* Inline abstract_compiler#CodeFile#name (var_f) on <var_f:CodeFile> */
4256 var396
= var_f
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
; /* _name on <var_f:CodeFile> */
4257 if (unlikely(var396
== NULL
)) {
4258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4259 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 954);
4263 RET_LABEL395
:(void)0;
4267 var398
= varonce397
;
4269 var399
= ".0.h\"\n";
4271 var401
= string__NativeString__to_s_with_length(var399
, var400
);
4273 varonce397
= var398
;
4275 var402
= NEW_array__Array(&type_array__Arraykernel__Object
);
4276 { /* var402 = array_instance Array[Object] */
4278 var404
= NEW_array__NativeArray(var403
, &type_array__NativeArraykernel__Object
);
4279 ((struct instance_array__NativeArray
*)var404
)->values
[0] = (val
*) var390
;
4280 ((struct instance_array__NativeArray
*)var404
)->values
[1] = (val
*) var394
;
4281 ((struct instance_array__NativeArray
*)var404
)->values
[2] = (val
*) var398
;
4283 ((void (*)(val
*, val
*, long))(var402
->class->vft
[COLOR_array__Array__with_native
]))(var402
, var404
, var403
) /* with_native on <var402:Array[Object]>*/;
4287 var405
= ((val
* (*)(val
*))(var402
->class->vft
[COLOR_string__Object__to_s
]))(var402
) /* to_s on <var402:Array[Object]>*/;
4290 file__OFStream__write(var_file
, var405
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4292 var_count
= var_total_lines
;
4296 { /* Inline abstract_compiler#CodeWriter#decl_lines (var_vis) on <var_vis:CodeWriter> */
4297 var408
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___decl_lines
].val
; /* _decl_lines on <var_vis:CodeWriter> */
4298 if (unlikely(var408
== NULL
)) {
4299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
4300 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 963);
4304 RET_LABEL407
:(void)0;
4308 var409
= list__List__iterator(var406
);
4312 var410
= list__ListIterator__is_ok(var409
);
4316 var411
= list__ListIterator__item(var409
);
4320 file__OFStream__write(var_file
, var_l412
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4323 var414
= varonce413
;
4327 var417
= string__NativeString__to_s_with_length(var415
, var416
);
4329 varonce413
= var414
;
4332 file__OFStream__write(var_file
, var414
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4334 CONTINUE_label418
: (void)0;
4336 list__ListIterator__next(var409
); /* Direct call list#ListIterator#next on <var409:ListIterator[nullable Object]>*/
4339 BREAK_label418
: (void)0;
4341 { /* Inline abstract_compiler#CodeWriter#lines (var_vis) on <var_vis:CodeWriter> */
4342 var421
= var_vis
->attrs
[COLOR_abstract_compiler__CodeWriter___lines
].val
; /* _lines on <var_vis:CodeWriter> */
4343 if (unlikely(var421
== NULL
)) {
4344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
4345 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 962);
4349 RET_LABEL420
:(void)0;
4353 var422
= list__List__iterator(var419
);
4357 var423
= list__ListIterator__is_ok(var422
);
4361 var424
= list__ListIterator__item(var422
);
4365 file__OFStream__write(var_file
, var_l425
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4368 var427
= varonce426
;
4372 var430
= string__NativeString__to_s_with_length(var428
, var429
);
4374 varonce426
= var427
;
4377 file__OFStream__write(var_file
, var427
); /* Direct call file#OFStream#write on <var_file:nullable OFStream(OFStream)>*/
4379 CONTINUE_label431
: (void)0;
4381 list__ListIterator__next(var422
); /* Direct call list#ListIterator#next on <var422:ListIterator[nullable Object]>*/
4384 BREAK_label431
: (void)0;
4385 CONTINUE_label291
: (void)0;
4387 array__ArrayIterator__next(var278
); /* Direct call array#ArrayIterator#next on <var278:ArrayIterator[nullable Object]>*/
4390 BREAK_label291
: (void)0;
4392 if (var_file
== NULL
) {
4393 var433
= 0; /* is null */
4395 var433
= 1; /* arg is null and recv is not */
4398 { /* Inline kernel#Object#!= (var_file,var432) on <var_file:nullable OFStream> */
4401 var437
= ((short int (*)(val
*, val
*))(var_file
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_file
, var_other
) /* == on <var_file:nullable OFStream(OFStream)>*/;
4407 RET_LABEL435
:(void)0;
4413 file__OFStream__close(var_file
); /* Direct call file#OFStream#close on <var_file:nullable OFStream(OFStream)>*/
4417 CONTINUE_label439
: (void)0;
4419 list__ListIterator__next(var182
); /* Direct call list#ListIterator#next on <var182:ListIterator[nullable Object]>*/
4422 BREAK_label439
: (void)0;
4424 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4425 var442
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4426 if (unlikely(var442
== NULL
)) {
4427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4428 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
4432 RET_LABEL441
:(void)0;
4436 var444
= varonce443
;
4438 var445
= "Total C source files to compile: ";
4440 var447
= string__NativeString__to_s_with_length(var445
, var446
);
4442 varonce443
= var444
;
4445 var448
= array__AbstractArrayRead__length(var_cfiles
);
4447 var449
= NEW_array__Array(&type_array__Arraykernel__Object
);
4448 { /* var449 = array_instance Array[Object] */
4450 var451
= NEW_array__NativeArray(var450
, &type_array__NativeArraykernel__Object
);
4451 ((struct instance_array__NativeArray
*)var451
)->values
[0] = (val
*) var444
;
4452 var452
= BOX_kernel__Int(var448
); /* autobox from Int to Object */
4453 ((struct instance_array__NativeArray
*)var451
)->values
[1] = (val
*) var452
;
4455 ((void (*)(val
*, val
*, long))(var449
->class->vft
[COLOR_array__Array__with_native
]))(var449
, var451
, var450
) /* with_native on <var449:Array[Object]>*/;
4459 var453
= ((val
* (*)(val
*))(var449
->class->vft
[COLOR_string__Object__to_s
]))(var449
) /* to_s on <var449:Array[Object]>*/;
4463 toolcontext__ToolContext__info(var440
, var453
, var454
); /* Direct call toolcontext#ToolContext#info on <var440:ToolContext>*/
4467 /* method abstract_compiler#MakefileToolchain#write_files for (self: Object, AbstractCompiler, String, Array[String]) */
4468 void VIRTUAL_abstract_compiler__MakefileToolchain__write_files(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4469 abstract_compiler__MakefileToolchain__write_files(self
, p0
, p1
, p2
); /* Direct call abstract_compiler#MakefileToolchain#write_files on <self:Object(MakefileToolchain)>*/
4472 /* method abstract_compiler#MakefileToolchain#makefile_name for (self: MakefileToolchain, MModule): String */
4473 val
* abstract_compiler__MakefileToolchain__makefile_name(val
* self
, val
* p0
) {
4474 val
* var
/* : String */;
4475 val
* var_mainmodule
/* var mainmodule: MModule */;
4476 val
* var1
/* : String */;
4477 val
* var3
/* : String */;
4478 static val
* varonce
;
4479 val
* var4
/* : String */;
4480 char* var5
/* : NativeString */;
4481 long var6
/* : Int */;
4482 val
* var7
/* : FlatString */;
4483 val
* var8
/* : Array[Object] */;
4484 long var9
/* : Int */;
4485 val
* var10
/* : NativeArray[Object] */;
4486 val
* var11
/* : String */;
4487 var_mainmodule
= p0
;
4489 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
4490 var3
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
4491 if (unlikely(var3
== NULL
)) {
4492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4493 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86);
4505 var7
= string__NativeString__to_s_with_length(var5
, var6
);
4509 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
4510 { /* var8 = array_instance Array[Object] */
4512 var10
= NEW_array__NativeArray(var9
, &type_array__NativeArraykernel__Object
);
4513 ((struct instance_array__NativeArray
*)var10
)->values
[0] = (val
*) var1
;
4514 ((struct instance_array__NativeArray
*)var10
)->values
[1] = (val
*) var4
;
4516 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_array__Array__with_native
]))(var8
, var10
, var9
) /* with_native on <var8:Array[Object]>*/;
4520 var11
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_string__Object__to_s
]))(var8
) /* to_s on <var8:Array[Object]>*/;
4527 /* method abstract_compiler#MakefileToolchain#makefile_name for (self: Object, MModule): String */
4528 val
* VIRTUAL_abstract_compiler__MakefileToolchain__makefile_name(val
* self
, val
* p0
) {
4529 val
* var
/* : String */;
4530 val
* var1
/* : String */;
4531 var1
= abstract_compiler__MakefileToolchain__makefile_name(self
, p0
);
4536 /* method abstract_compiler#MakefileToolchain#default_outname for (self: MakefileToolchain, MModule): String */
4537 val
* abstract_compiler__MakefileToolchain__default_outname(val
* self
, val
* p0
) {
4538 val
* var
/* : String */;
4539 val
* var_mainmodule
/* var mainmodule: MModule */;
4540 val
* var1
/* : String */;
4541 val
* var3
/* : String */;
4542 var_mainmodule
= p0
;
4544 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
4545 var3
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
4546 if (unlikely(var3
== NULL
)) {
4547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4548 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86);
4560 /* method abstract_compiler#MakefileToolchain#default_outname for (self: Object, MModule): String */
4561 val
* VIRTUAL_abstract_compiler__MakefileToolchain__default_outname(val
* self
, val
* p0
) {
4562 val
* var
/* : String */;
4563 val
* var1
/* : String */;
4564 var1
= abstract_compiler__MakefileToolchain__default_outname(self
, p0
);
4569 /* method abstract_compiler#MakefileToolchain#outfile for (self: MakefileToolchain, MModule): String */
4570 val
* abstract_compiler__MakefileToolchain__outfile(val
* self
, val
* p0
) {
4571 val
* var
/* : String */;
4572 val
* var_mainmodule
/* var mainmodule: MModule */;
4573 val
* var1
/* : ToolContext */;
4574 val
* var3
/* : ToolContext */;
4575 val
* var4
/* : OptionString */;
4576 val
* var6
/* : OptionString */;
4577 val
* var7
/* : nullable Object */;
4578 val
* var9
/* : nullable Object */;
4579 val
* var_res
/* var res: nullable String */;
4580 val
* var10
/* : null */;
4581 short int var11
/* : Bool */;
4582 short int var12
/* : Bool */;
4583 val
* var_other
/* var other: nullable Object */;
4584 short int var14
/* : Bool */;
4585 short int var15
/* : Bool */;
4586 short int var16
/* : Bool */;
4587 val
* var17
/* : String */;
4588 val
* var18
/* : ToolContext */;
4589 val
* var20
/* : ToolContext */;
4590 val
* var21
/* : OptionString */;
4591 val
* var23
/* : OptionString */;
4592 val
* var24
/* : nullable Object */;
4593 val
* var26
/* : nullable Object */;
4594 val
* var_dir
/* var dir: nullable String */;
4595 val
* var27
/* : null */;
4596 short int var28
/* : Bool */;
4597 short int var29
/* : Bool */;
4598 short int var31
/* : Bool */;
4599 short int var32
/* : Bool */;
4600 short int var33
/* : Bool */;
4601 val
* var34
/* : String */;
4602 var_mainmodule
= p0
;
4604 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4605 var3
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4606 if (unlikely(var3
== NULL
)) {
4607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4608 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
4616 { /* Inline abstract_compiler#ToolContext#opt_output (var1) on <var1:ToolContext> */
4617 var6
= var1
->attrs
[COLOR_abstract_compiler__ToolContext___opt_output
].val
; /* _opt_output on <var1:ToolContext> */
4618 if (unlikely(var6
== NULL
)) {
4619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
4620 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 28);
4628 { /* Inline opts#Option#value (var4) on <var4:OptionString> */
4629 var9
= var4
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var4:OptionString> */
4636 if (var_res
== NULL
) {
4637 var11
= 0; /* is null */
4639 var11
= 1; /* arg is null and recv is not */
4642 { /* Inline kernel#Object#!= (var_res,var10) on <var_res:nullable String> */
4645 var15
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable String(String)>*/;
4651 RET_LABEL13
:(void)0;
4661 var17
= abstract_compiler__MakefileToolchain__default_outname(self
, var_mainmodule
);
4665 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
4666 var20
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
4667 if (unlikely(var20
== NULL
)) {
4668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4669 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
4673 RET_LABEL19
:(void)0;
4677 { /* Inline abstract_compiler#ToolContext#opt_dir (var18) on <var18:ToolContext> */
4678 var23
= var18
->attrs
[COLOR_abstract_compiler__ToolContext___opt_dir
].val
; /* _opt_dir on <var18:ToolContext> */
4679 if (unlikely(var23
== NULL
)) {
4680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_dir");
4681 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 30);
4685 RET_LABEL22
:(void)0;
4689 { /* Inline opts#Option#value (var21) on <var21:OptionString> */
4690 var26
= var21
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var21:OptionString> */
4692 RET_LABEL25
:(void)0;
4697 if (var_dir
== NULL
) {
4698 var28
= 0; /* is null */
4700 var28
= 1; /* arg is null and recv is not */
4703 { /* Inline kernel#Object#!= (var_dir,var27) on <var_dir:nullable String> */
4706 var32
= ((short int (*)(val
*, val
*))(var_dir
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_dir
, var_other
) /* == on <var_dir:nullable String(String)>*/;
4712 RET_LABEL30
:(void)0;
4718 var34
= file__String__join_path(var_dir
, var_res
);
4729 /* method abstract_compiler#MakefileToolchain#outfile for (self: Object, MModule): String */
4730 val
* VIRTUAL_abstract_compiler__MakefileToolchain__outfile(val
* self
, val
* p0
) {
4731 val
* var
/* : String */;
4732 val
* var1
/* : String */;
4733 var1
= abstract_compiler__MakefileToolchain__outfile(self
, p0
);
4738 /* method abstract_compiler#MakefileToolchain#write_makefile for (self: MakefileToolchain, AbstractCompiler, String, Array[String]) */
4739 void abstract_compiler__MakefileToolchain__write_makefile(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4740 val
* var_compiler
/* var compiler: AbstractCompiler */;
4741 val
* var_compile_dir
/* var compile_dir: String */;
4742 val
* var_cfiles
/* var cfiles: Array[String] */;
4743 val
* var
/* : MModule */;
4744 val
* var2
/* : MModule */;
4745 val
* var_mainmodule
/* var mainmodule: MModule */;
4746 val
* var3
/* : MModule */;
4747 val
* var5
/* : MModule */;
4748 val
* var6
/* : nullable Platform */;
4749 val
* var_platform
/* var platform: nullable Platform */;
4750 val
* var7
/* : String */;
4751 val
* var_outname
/* var outname: String */;
4752 static val
* varonce
;
4753 val
* var8
/* : String */;
4754 char* var9
/* : NativeString */;
4755 long var10
/* : Int */;
4756 val
* var11
/* : FlatString */;
4757 val
* var_orig_dir
/* var orig_dir: String */;
4758 val
* var12
/* : String */;
4759 val
* var13
/* : String */;
4760 val
* var_outpath
/* var outpath: String */;
4761 val
* var14
/* : String */;
4762 val
* var_makename
/* var makename: String */;
4763 static val
* varonce15
;
4764 val
* var16
/* : String */;
4765 char* var17
/* : NativeString */;
4766 long var18
/* : Int */;
4767 val
* var19
/* : FlatString */;
4768 val
* var20
/* : Array[Object] */;
4769 long var21
/* : Int */;
4770 val
* var22
/* : NativeArray[Object] */;
4771 val
* var23
/* : String */;
4772 val
* var_makepath
/* var makepath: String */;
4773 val
* var24
/* : OFStream */;
4774 val
* var_makefile
/* var makefile: OFStream */;
4775 static val
* varonce25
;
4776 val
* var26
/* : String */;
4777 char* var27
/* : NativeString */;
4778 long var28
/* : Int */;
4779 val
* var29
/* : FlatString */;
4780 val
* var_cc_includes
/* var cc_includes: String */;
4781 val
* var30
/* : Array[String] */;
4782 val
* var32
/* : Array[String] */;
4783 val
* var33
/* : ArrayIterator[nullable Object] */;
4784 short int var34
/* : Bool */;
4785 val
* var35
/* : nullable Object */;
4786 val
* var_p
/* var p: String */;
4787 static val
* varonce36
;
4788 val
* var37
/* : String */;
4789 char* var38
/* : NativeString */;
4790 long var39
/* : Int */;
4791 val
* var40
/* : FlatString */;
4792 val
* var41
/* : String */;
4793 static val
* varonce42
;
4794 val
* var43
/* : String */;
4795 char* var44
/* : NativeString */;
4796 long var45
/* : Int */;
4797 val
* var46
/* : FlatString */;
4798 val
* var47
/* : String */;
4799 val
* var48
/* : String */;
4800 val
* var49
/* : HashSet[String] */;
4801 val
* var_linker_options
/* var linker_options: HashSet[String] */;
4802 val
* var50
/* : ToolContext */;
4803 val
* var52
/* : ToolContext */;
4804 val
* var53
/* : ModelBuilder */;
4805 val
* var54
/* : HashMap[MModule, AModule] */;
4806 val
* var56
/* : HashMap[MModule, AModule] */;
4807 val
* var_m2m
/* var m2m: HashMap[MModule, AModule] */;
4808 val
* var57
/* : POSetElement[MModule] */;
4809 val
* var59
/* : POSetElement[MModule] */;
4810 val
* var60
/* : Collection[Object] */;
4811 val
* var61
/* : Iterator[nullable Object] */;
4812 short int var62
/* : Bool */;
4813 val
* var63
/* : nullable Object */;
4814 val
* var_m
/* var m: MModule */;
4815 val
* var64
/* : nullable Set[String] */;
4816 val
* var_libs
/* var libs: nullable Set[String] */;
4817 val
* var65
/* : null */;
4818 short int var66
/* : Bool */;
4819 short int var67
/* : Bool */;
4820 val
* var_other
/* var other: nullable Object */;
4821 short int var69
/* : Bool */;
4822 short int var70
/* : Bool */;
4823 short int var71
/* : Bool */;
4824 static val
* varonce73
;
4825 val
* var74
/* : String */;
4826 char* var75
/* : NativeString */;
4827 long var76
/* : Int */;
4828 val
* var77
/* : FlatString */;
4829 static val
* varonce78
;
4830 val
* var79
/* : String */;
4831 char* var80
/* : NativeString */;
4832 long var81
/* : Int */;
4833 val
* var82
/* : FlatString */;
4834 static val
* varonce83
;
4835 val
* var84
/* : String */;
4836 char* var85
/* : NativeString */;
4837 long var86
/* : Int */;
4838 val
* var87
/* : FlatString */;
4839 val
* var88
/* : String */;
4840 static val
* varonce89
;
4841 val
* var90
/* : String */;
4842 char* var91
/* : NativeString */;
4843 long var92
/* : Int */;
4844 val
* var93
/* : FlatString */;
4845 val
* var94
/* : Array[Object] */;
4846 long var95
/* : Int */;
4847 val
* var96
/* : NativeArray[Object] */;
4848 val
* var97
/* : String */;
4849 val
* var98
/* : ToolContext */;
4850 val
* var100
/* : ToolContext */;
4851 val
* var101
/* : OptionString */;
4852 val
* var103
/* : OptionString */;
4853 val
* var104
/* : nullable Object */;
4854 val
* var106
/* : nullable Object */;
4855 val
* var_ost
/* var ost: nullable String */;
4856 short int var107
/* : Bool */;
4857 short int var108
/* : Bool */;
4858 static val
* varonce109
;
4859 val
* var110
/* : String */;
4860 char* var111
/* : NativeString */;
4861 long var112
/* : Int */;
4862 val
* var113
/* : FlatString */;
4863 short int var114
/* : Bool */;
4864 short int var115
/* : Bool */;
4865 short int var_
/* var : Bool */;
4866 static val
* varonce116
;
4867 val
* var117
/* : String */;
4868 char* var118
/* : NativeString */;
4869 long var119
/* : Int */;
4870 val
* var120
/* : FlatString */;
4871 short int var121
/* : Bool */;
4872 short int var122
/* : Bool */;
4873 short int var_123
/* var : Bool */;
4874 short int var124
/* : Bool */;
4875 val
* var125
/* : null */;
4876 short int var126
/* : Bool */;
4877 short int var127
/* : Bool */;
4878 short int var_128
/* var : Bool */;
4879 short int var129
/* : Bool */;
4880 static val
* varonce130
;
4881 val
* var131
/* : String */;
4882 char* var132
/* : NativeString */;
4883 long var133
/* : Int */;
4884 val
* var134
/* : FlatString */;
4885 static val
* varonce135
;
4886 val
* var136
/* : String */;
4887 char* var137
/* : NativeString */;
4888 long var138
/* : Int */;
4889 val
* var139
/* : FlatString */;
4890 static val
* varonce140
;
4891 val
* var141
/* : String */;
4892 char* var142
/* : NativeString */;
4893 long var143
/* : Int */;
4894 val
* var144
/* : FlatString */;
4895 static val
* varonce145
;
4896 val
* var146
/* : String */;
4897 char* var147
/* : NativeString */;
4898 long var148
/* : Int */;
4899 val
* var149
/* : FlatString */;
4900 static val
* varonce150
;
4901 val
* var151
/* : String */;
4902 char* var152
/* : NativeString */;
4903 long var153
/* : Int */;
4904 val
* var154
/* : FlatString */;
4905 static val
* varonce155
;
4906 val
* var156
/* : String */;
4907 char* var157
/* : NativeString */;
4908 long var158
/* : Int */;
4909 val
* var159
/* : FlatString */;
4910 static val
* varonce160
;
4911 val
* var161
/* : String */;
4912 char* var162
/* : NativeString */;
4913 long var163
/* : Int */;
4914 val
* var164
/* : FlatString */;
4915 static val
* varonce165
;
4916 val
* var166
/* : String */;
4917 char* var167
/* : NativeString */;
4918 long var168
/* : Int */;
4919 val
* var169
/* : FlatString */;
4920 static val
* varonce170
;
4921 val
* var171
/* : String */;
4922 char* var172
/* : NativeString */;
4923 long var173
/* : Int */;
4924 val
* var174
/* : FlatString */;
4925 val
* var175
/* : Array[Object] */;
4926 long var176
/* : Int */;
4927 val
* var177
/* : NativeArray[Object] */;
4928 val
* var178
/* : String */;
4929 val
* var179
/* : Array[String] */;
4930 val
* var_ofiles
/* var ofiles: Array[String] */;
4931 val
* var180
/* : Array[String] */;
4932 val
* var_dep_rules
/* var dep_rules: Array[String] */;
4933 val
* var181
/* : ArrayIterator[nullable Object] */;
4934 short int var182
/* : Bool */;
4935 val
* var183
/* : nullable Object */;
4936 val
* var_f
/* var f: String */;
4937 static val
* varonce184
;
4938 val
* var185
/* : String */;
4939 char* var186
/* : NativeString */;
4940 long var187
/* : Int */;
4941 val
* var188
/* : FlatString */;
4942 val
* var189
/* : String */;
4943 static val
* varonce190
;
4944 val
* var191
/* : String */;
4945 char* var192
/* : NativeString */;
4946 long var193
/* : Int */;
4947 val
* var194
/* : FlatString */;
4948 val
* var195
/* : String */;
4949 val
* var_o
/* var o: String */;
4950 static val
* varonce196
;
4951 val
* var197
/* : String */;
4952 char* var198
/* : NativeString */;
4953 long var199
/* : Int */;
4954 val
* var200
/* : FlatString */;
4955 static val
* varonce201
;
4956 val
* var202
/* : String */;
4957 char* var203
/* : NativeString */;
4958 long var204
/* : Int */;
4959 val
* var205
/* : FlatString */;
4960 static val
* varonce206
;
4961 val
* var207
/* : String */;
4962 char* var208
/* : NativeString */;
4963 long var209
/* : Int */;
4964 val
* var210
/* : FlatString */;
4965 static val
* varonce211
;
4966 val
* var212
/* : String */;
4967 char* var213
/* : NativeString */;
4968 long var214
/* : Int */;
4969 val
* var215
/* : FlatString */;
4970 val
* var216
/* : Array[Object] */;
4971 long var217
/* : Int */;
4972 val
* var218
/* : NativeArray[Object] */;
4973 val
* var219
/* : String */;
4974 val
* var221
/* : Array[ExternFile] */;
4975 val
* var_java_files
/* var java_files: Array[ExternFile] */;
4976 val
* var222
/* : Array[ExternFile] */;
4977 val
* var224
/* : Array[ExternFile] */;
4978 val
* var225
/* : ArrayIterator[nullable Object] */;
4979 short int var226
/* : Bool */;
4980 val
* var227
/* : nullable Object */;
4981 val
* var_f228
/* var f: ExternFile */;
4982 val
* var229
/* : String */;
4983 val
* var_o230
/* var o: String */;
4984 val
* var231
/* : String */;
4985 val
* var233
/* : String */;
4986 static val
* varonce234
;
4987 val
* var235
/* : String */;
4988 char* var236
/* : NativeString */;
4989 long var237
/* : Int */;
4990 val
* var238
/* : FlatString */;
4991 val
* var239
/* : String */;
4992 val
* var_ff
/* var ff: String */;
4993 static val
* varonce240
;
4994 val
* var241
/* : String */;
4995 char* var242
/* : NativeString */;
4996 long var243
/* : Int */;
4997 val
* var244
/* : FlatString */;
4998 static val
* varonce245
;
4999 val
* var246
/* : String */;
5000 char* var247
/* : NativeString */;
5001 long var248
/* : Int */;
5002 val
* var249
/* : FlatString */;
5003 val
* var250
/* : Array[Object] */;
5004 long var251
/* : Int */;
5005 val
* var252
/* : NativeArray[Object] */;
5006 val
* var253
/* : String */;
5007 static val
* varonce254
;
5008 val
* var255
/* : String */;
5009 char* var256
/* : NativeString */;
5010 long var257
/* : Int */;
5011 val
* var258
/* : FlatString */;
5012 val
* var259
/* : String */;
5013 static val
* varonce260
;
5014 val
* var261
/* : String */;
5015 char* var262
/* : NativeString */;
5016 long var263
/* : Int */;
5017 val
* var264
/* : FlatString */;
5018 val
* var265
/* : Array[Object] */;
5019 long var266
/* : Int */;
5020 val
* var267
/* : NativeArray[Object] */;
5021 val
* var268
/* : String */;
5022 val
* var269
/* : String */;
5023 short int var270
/* : Bool */;
5024 short int var271
/* : Bool */;
5025 short int var273
/* : Bool */;
5026 short int var274
/* : Bool */;
5027 static val
* varonce275
;
5028 val
* var276
/* : String */;
5029 char* var277
/* : NativeString */;
5030 long var278
/* : Int */;
5031 val
* var279
/* : FlatString */;
5032 val
* var280
/* : Array[Object] */;
5033 long var281
/* : Int */;
5034 val
* var282
/* : NativeArray[Object] */;
5035 val
* var283
/* : String */;
5036 val
* var_jar_file
/* var jar_file: String */;
5037 val
* var284
/* : Array[String] */;
5038 val
* var_class_files_array
/* var class_files_array: Array[String] */;
5039 val
* var285
/* : ArrayIterator[nullable Object] */;
5040 short int var286
/* : Bool */;
5041 val
* var287
/* : nullable Object */;
5042 val
* var_f288
/* var f: ExternFile */;
5043 val
* var289
/* : String */;
5044 static val
* varonce291
;
5045 val
* var292
/* : String */;
5046 char* var293
/* : NativeString */;
5047 long var294
/* : Int */;
5048 val
* var295
/* : FlatString */;
5049 val
* var296
/* : String */;
5050 val
* var_class_files
/* var class_files: String */;
5051 static val
* varonce297
;
5052 val
* var298
/* : String */;
5053 char* var299
/* : NativeString */;
5054 long var300
/* : Int */;
5055 val
* var301
/* : FlatString */;
5056 static val
* varonce302
;
5057 val
* var303
/* : String */;
5058 char* var304
/* : NativeString */;
5059 long var305
/* : Int */;
5060 val
* var306
/* : FlatString */;
5061 val
* var307
/* : Array[Object] */;
5062 long var308
/* : Int */;
5063 val
* var309
/* : NativeArray[Object] */;
5064 val
* var310
/* : String */;
5065 static val
* varonce311
;
5066 val
* var312
/* : String */;
5067 char* var313
/* : NativeString */;
5068 long var314
/* : Int */;
5069 val
* var315
/* : FlatString */;
5070 static val
* varonce316
;
5071 val
* var317
/* : String */;
5072 char* var318
/* : NativeString */;
5073 long var319
/* : Int */;
5074 val
* var320
/* : FlatString */;
5075 static val
* varonce321
;
5076 val
* var322
/* : String */;
5077 char* var323
/* : NativeString */;
5078 long var324
/* : Int */;
5079 val
* var325
/* : FlatString */;
5080 val
* var326
/* : Array[Object] */;
5081 long var327
/* : Int */;
5082 val
* var328
/* : NativeArray[Object] */;
5083 val
* var329
/* : String */;
5084 static val
* varonce330
;
5085 val
* var331
/* : String */;
5086 char* var332
/* : NativeString */;
5087 long var333
/* : Int */;
5088 val
* var334
/* : FlatString */;
5089 static val
* varonce335
;
5090 val
* var336
/* : String */;
5091 char* var337
/* : NativeString */;
5092 long var338
/* : Int */;
5093 val
* var339
/* : FlatString */;
5094 val
* var340
/* : String */;
5095 static val
* varonce341
;
5096 val
* var342
/* : String */;
5097 char* var343
/* : NativeString */;
5098 long var344
/* : Int */;
5099 val
* var345
/* : FlatString */;
5100 static val
* varonce346
;
5101 val
* var347
/* : String */;
5102 char* var348
/* : NativeString */;
5103 long var349
/* : Int */;
5104 val
* var350
/* : FlatString */;
5105 static val
* varonce351
;
5106 val
* var352
/* : String */;
5107 char* var353
/* : NativeString */;
5108 long var354
/* : Int */;
5109 val
* var355
/* : FlatString */;
5110 val
* var356
/* : String */;
5111 static val
* varonce357
;
5112 val
* var358
/* : String */;
5113 char* var359
/* : NativeString */;
5114 long var360
/* : Int */;
5115 val
* var361
/* : FlatString */;
5116 val
* var362
/* : Array[Object] */;
5117 long var363
/* : Int */;
5118 val
* var364
/* : NativeArray[Object] */;
5119 val
* var365
/* : String */;
5120 static val
* varonce366
;
5121 val
* var367
/* : String */;
5122 char* var368
/* : NativeString */;
5123 long var369
/* : Int */;
5124 val
* var370
/* : FlatString */;
5125 static val
* varonce371
;
5126 val
* var372
/* : String */;
5127 char* var373
/* : NativeString */;
5128 long var374
/* : Int */;
5129 val
* var375
/* : FlatString */;
5130 val
* var376
/* : String */;
5131 static val
* varonce377
;
5132 val
* var378
/* : String */;
5133 char* var379
/* : NativeString */;
5134 long var380
/* : Int */;
5135 val
* var381
/* : FlatString */;
5136 val
* var382
/* : Array[Object] */;
5137 long var383
/* : Int */;
5138 val
* var384
/* : NativeArray[Object] */;
5139 val
* var385
/* : String */;
5140 val
* var386
/* : ToolContext */;
5141 val
* var388
/* : ToolContext */;
5142 static val
* varonce389
;
5143 val
* var390
/* : String */;
5144 char* var391
/* : NativeString */;
5145 long var392
/* : Int */;
5146 val
* var393
/* : FlatString */;
5147 val
* var394
/* : Array[Object] */;
5148 long var395
/* : Int */;
5149 val
* var396
/* : NativeArray[Object] */;
5150 val
* var397
/* : String */;
5151 long var398
/* : Int */;
5153 var_compile_dir
= p1
;
5156 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
5157 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
5158 if (unlikely(var2
== NULL
)) {
5159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5160 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
5167 var_mainmodule
= var
;
5169 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
5170 var5
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
5171 if (unlikely(var5
== NULL
)) {
5172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5173 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
5181 var6
= platform__MModule__target_platform(var3
);
5183 var_platform
= var6
;
5185 var7
= abstract_compiler__MakefileToolchain__outfile(self
, var_mainmodule
);
5193 var11
= string__NativeString__to_s_with_length(var9
, var10
);
5197 var_orig_dir
= var8
;
5199 var12
= file__String__join_path(var_orig_dir
, var_outname
);
5202 var13
= file__String__simplify_path(var12
);
5204 var_outpath
= var13
;
5206 var14
= abstract_compiler__MakefileToolchain__makefile_name(self
, var_mainmodule
);
5208 var_makename
= var14
;
5214 var19
= string__NativeString__to_s_with_length(var17
, var18
);
5218 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
5219 { /* var20 = array_instance Array[Object] */
5221 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
5222 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var_compile_dir
;
5223 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var16
;
5224 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var_makename
;
5226 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
5230 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
5232 var_makepath
= var23
;
5233 var24
= NEW_file__OFStream(&type_file__OFStream
);
5235 file__OFStream__open(var24
, var_makepath
); /* Direct call file#OFStream#open on <var24:OFStream>*/
5237 var_makefile
= var24
;
5243 var29
= string__NativeString__to_s_with_length(var27
, var28
);
5247 var_cc_includes
= var26
;
5249 { /* Inline abstract_compiler#MakefileToolchain#cc_paths (self) on <self:MakefileToolchain> */
5250 var32
= self
->attrs
[COLOR_abstract_compiler__MakefileToolchain___cc_paths
].val
; /* _cc_paths on <self:MakefileToolchain> */
5251 if (unlikely(var32
== NULL
)) {
5252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cc_paths");
5253 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 140);
5257 RET_LABEL31
:(void)0;
5261 var33
= array__AbstractArrayRead__iterator(var30
);
5265 var34
= array__ArrayIterator__is_ok(var33
);
5269 var35
= array__ArrayIterator__item(var33
);
5277 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5282 var41
= string__FlatString___43d(var37
, var_p
);
5289 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5294 var47
= string__FlatString___43d(var41
, var43
);
5297 var48
= string__FlatString___43d(var_cc_includes
, var47
);
5299 var_cc_includes
= var48
;
5300 CONTINUE_label
: (void)0;
5302 array__ArrayIterator__next(var33
); /* Direct call array#ArrayIterator#next on <var33:ArrayIterator[nullable Object]>*/
5305 BREAK_label
: (void)0;
5306 var49
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String
);
5308 hash_collection__HashSet__init(var49
); /* Direct call hash_collection#HashSet#init on <var49:HashSet[String]>*/
5310 var_linker_options
= var49
;
5312 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
5313 var52
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
5314 if (unlikely(var52
== NULL
)) {
5315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5316 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
5320 RET_LABEL51
:(void)0;
5324 var53
= modelbuilder__ToolContext__modelbuilder(var50
);
5327 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (var53) on <var53:ModelBuilder> */
5328 var56
= var53
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <var53:ModelBuilder> */
5329 if (unlikely(var56
== NULL
)) {
5330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
5331 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
5335 RET_LABEL55
:(void)0;
5340 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
5341 var59
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
5342 if (unlikely(var59
== NULL
)) {
5343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5344 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
5348 RET_LABEL58
:(void)0;
5352 var60
= poset__POSetElement__greaters(var57
);
5355 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var60
) /* iterator on <var60:Collection[Object](Collection[MModule])>*/;
5359 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
5363 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
5367 var64
= abstract_compiler__MModule__collect_linker_libs(var_m
);
5371 if (var_libs
== NULL
) {
5372 var66
= 0; /* is null */
5374 var66
= 1; /* arg is null and recv is not */
5377 { /* Inline kernel#Object#!= (var_libs,var65) on <var_libs:nullable Set[String]> */
5380 var70
= ((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])>*/;
5386 RET_LABEL68
:(void)0;
5392 abstract_collection__SimpleCollection__add_all(var_linker_options
, var_libs
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_linker_options:HashSet[String]>*/
5396 CONTINUE_label72
: (void)0;
5398 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
5401 BREAK_label72
: (void)0;
5405 var75
= "CC = ccache cc\nCXX = ccache c++\nCFLAGS = -g -O2 -Wno-unused-value -Wno-switch\nCINCL = ";
5407 var77
= string__NativeString__to_s_with_length(var75
, var76
);
5414 var80
= "\nLDFLAGS ?= \nLDLIBS ?= -lm -lgc ";
5416 var82
= string__NativeString__to_s_with_length(var80
, var81
);
5425 var87
= string__NativeString__to_s_with_length(var85
, var86
);
5430 var88
= string__Collection__join(var_linker_options
, var84
);
5437 var93
= string__NativeString__to_s_with_length(var91
, var92
);
5441 var94
= NEW_array__Array(&type_array__Arraykernel__Object
);
5442 { /* var94 = array_instance Array[Object] */
5444 var96
= NEW_array__NativeArray(var95
, &type_array__NativeArraykernel__Object
);
5445 ((struct instance_array__NativeArray
*)var96
)->values
[0] = (val
*) var74
;
5446 ((struct instance_array__NativeArray
*)var96
)->values
[1] = (val
*) var_cc_includes
;
5447 ((struct instance_array__NativeArray
*)var96
)->values
[2] = (val
*) var79
;
5448 ((struct instance_array__NativeArray
*)var96
)->values
[3] = (val
*) var88
;
5449 ((struct instance_array__NativeArray
*)var96
)->values
[4] = (val
*) var90
;
5451 ((void (*)(val
*, val
*, long))(var94
->class->vft
[COLOR_array__Array__with_native
]))(var94
, var96
, var95
) /* with_native on <var94:Array[Object]>*/;
5455 var97
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_string__Object__to_s
]))(var94
) /* to_s on <var94:Array[Object]>*/;
5458 file__OFStream__write(var_makefile
, var97
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5461 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
5462 var100
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
5463 if (unlikely(var100
== NULL
)) {
5464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5465 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
5469 RET_LABEL99
:(void)0;
5473 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (var98) on <var98:ToolContext> */
5474 var103
= var98
->attrs
[COLOR_abstract_compiler__ToolContext___opt_stacktrace
].val
; /* _opt_stacktrace on <var98:ToolContext> */
5475 if (unlikely(var103
== NULL
)) {
5476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
5477 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 62);
5481 RET_LABEL102
:(void)0;
5485 { /* Inline opts#Option#value (var101) on <var101:OptionString> */
5486 var106
= var101
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var101:OptionString> */
5488 RET_LABEL105
:(void)0;
5493 var110
= varonce109
;
5495 var111
= "libunwind";
5497 var113
= string__NativeString__to_s_with_length(var111
, var112
);
5499 varonce109
= var110
;
5501 if (var_ost
== NULL
) {
5502 var114
= 0; /* <var110:String> cannot be null */
5504 var115
= string__FlatString___61d_61d(var_ost
, var110
);
5512 var117
= varonce116
;
5514 var118
= "nitstack";
5516 var120
= string__NativeString__to_s_with_length(var118
, var119
);
5518 varonce116
= var117
;
5520 if (var_ost
== NULL
) {
5521 var121
= 0; /* <var117:String> cannot be null */
5523 var122
= string__FlatString___61d_61d(var_ost
, var117
);
5531 if (var_platform
== NULL
) {
5532 var126
= 1; /* is null */
5534 var126
= 0; /* arg is null but recv is not */
5537 var127
= ((short int (*)(val
*, val
*))(var_platform
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_platform
, var125
) /* == on <var_platform:nullable Platform>*/;
5545 var129
= ((short int (*)(val
*))(var_platform
->class->vft
[COLOR_platform__Platform__supports_libunwind
]))(var_platform
) /* supports_libunwind on <var_platform:nullable Platform(Platform)>*/;
5555 var131
= varonce130
;
5557 var132
= "NEED_LIBUNWIND := YesPlease\n";
5559 var134
= string__NativeString__to_s_with_length(var132
, var133
);
5561 varonce130
= var131
;
5564 file__OFStream__write(var_makefile
, var131
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5569 var136
= varonce135
;
5571 var137
= "uname_S := $(shell sh -c \'uname -s 2>/dev/null || echo not\')\n";
5573 var139
= string__NativeString__to_s_with_length(var137
, var138
);
5575 varonce135
= var136
;
5578 file__OFStream__write(var_makefile
, var136
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5581 var141
= varonce140
;
5583 var142
= "ifeq ($(uname_S),Darwin)\n";
5585 var144
= string__NativeString__to_s_with_length(var142
, var143
);
5587 varonce140
= var141
;
5590 file__OFStream__write(var_makefile
, var141
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5593 var146
= varonce145
;
5595 var147
= "\11NEED_LIBUNWIND :=\n";
5597 var149
= string__NativeString__to_s_with_length(var147
, var148
);
5599 varonce145
= var146
;
5602 file__OFStream__write(var_makefile
, var146
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5605 var151
= varonce150
;
5607 var152
= "endif\n\n";
5609 var154
= string__NativeString__to_s_with_length(var152
, var153
);
5611 varonce150
= var151
;
5614 file__OFStream__write(var_makefile
, var151
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5617 var156
= varonce155
;
5619 var157
= "clang_check := $(shell sh -c \'$(CC) -v 2>&1 | grep -q clang; echo $$?\')\nifeq ($(clang_check), 0)\n\11CFLAGS += -Qunused-arguments\nendif\n";
5621 var159
= string__NativeString__to_s_with_length(var157
, var158
);
5623 varonce155
= var156
;
5626 file__OFStream__write(var_makefile
, var156
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5629 var161
= varonce160
;
5631 var162
= "ifdef NEED_LIBUNWIND\n\11LDLIBS += -lunwind\nendif\n";
5633 var164
= string__NativeString__to_s_with_length(var162
, var163
);
5635 varonce160
= var161
;
5638 file__OFStream__write(var_makefile
, var161
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5641 var166
= varonce165
;
5645 var169
= string__NativeString__to_s_with_length(var167
, var168
);
5647 varonce165
= var166
;
5650 var171
= varonce170
;
5654 var174
= string__NativeString__to_s_with_length(var172
, var173
);
5656 varonce170
= var171
;
5658 var175
= NEW_array__Array(&type_array__Arraykernel__Object
);
5659 { /* var175 = array_instance Array[Object] */
5661 var177
= NEW_array__NativeArray(var176
, &type_array__NativeArraykernel__Object
);
5662 ((struct instance_array__NativeArray
*)var177
)->values
[0] = (val
*) var166
;
5663 ((struct instance_array__NativeArray
*)var177
)->values
[1] = (val
*) var_outpath
;
5664 ((struct instance_array__NativeArray
*)var177
)->values
[2] = (val
*) var171
;
5666 ((void (*)(val
*, val
*, long))(var175
->class->vft
[COLOR_array__Array__with_native
]))(var175
, var177
, var176
) /* with_native on <var175:Array[Object]>*/;
5670 var178
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_string__Object__to_s
]))(var175
) /* to_s on <var175:Array[Object]>*/;
5673 file__OFStream__write(var_makefile
, var178
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5675 var179
= NEW_array__Array(&type_array__Arraystring__String
);
5677 array__Array__init(var179
); /* Direct call array#Array#init on <var179:Array[String]>*/
5679 var_ofiles
= var179
;
5680 var180
= NEW_array__Array(&type_array__Arraystring__String
);
5682 array__Array__init(var180
); /* Direct call array#Array#init on <var180:Array[String]>*/
5684 var_dep_rules
= var180
;
5686 var181
= array__AbstractArrayRead__iterator(var_cfiles
);
5690 var182
= array__ArrayIterator__is_ok(var181
);
5694 var183
= array__ArrayIterator__item(var181
);
5698 var185
= varonce184
;
5702 var188
= string__NativeString__to_s_with_length(var186
, var187
);
5704 varonce184
= var185
;
5707 var189
= file__String__strip_extension(var_f
, var185
);
5710 var191
= varonce190
;
5714 var194
= string__NativeString__to_s_with_length(var192
, var193
);
5716 varonce190
= var191
;
5719 var195
= string__FlatString___43d(var189
, var191
);
5723 var197
= varonce196
;
5727 var200
= string__NativeString__to_s_with_length(var198
, var199
);
5729 varonce196
= var197
;
5732 var202
= varonce201
;
5734 var203
= "\n\11$(CC) $(CFLAGS) $(CINCL) -c -o ";
5736 var205
= string__NativeString__to_s_with_length(var203
, var204
);
5738 varonce201
= var202
;
5741 var207
= varonce206
;
5745 var210
= string__NativeString__to_s_with_length(var208
, var209
);
5747 varonce206
= var207
;
5750 var212
= varonce211
;
5754 var215
= string__NativeString__to_s_with_length(var213
, var214
);
5756 varonce211
= var212
;
5758 var216
= NEW_array__Array(&type_array__Arraykernel__Object
);
5759 { /* var216 = array_instance Array[Object] */
5761 var218
= NEW_array__NativeArray(var217
, &type_array__NativeArraykernel__Object
);
5762 ((struct instance_array__NativeArray
*)var218
)->values
[0] = (val
*) var_o
;
5763 ((struct instance_array__NativeArray
*)var218
)->values
[1] = (val
*) var197
;
5764 ((struct instance_array__NativeArray
*)var218
)->values
[2] = (val
*) var_f
;
5765 ((struct instance_array__NativeArray
*)var218
)->values
[3] = (val
*) var202
;
5766 ((struct instance_array__NativeArray
*)var218
)->values
[4] = (val
*) var_o
;
5767 ((struct instance_array__NativeArray
*)var218
)->values
[5] = (val
*) var207
;
5768 ((struct instance_array__NativeArray
*)var218
)->values
[6] = (val
*) var_f
;
5769 ((struct instance_array__NativeArray
*)var218
)->values
[7] = (val
*) var212
;
5771 ((void (*)(val
*, val
*, long))(var216
->class->vft
[COLOR_array__Array__with_native
]))(var216
, var218
, var217
) /* with_native on <var216:Array[Object]>*/;
5775 var219
= ((val
* (*)(val
*))(var216
->class->vft
[COLOR_string__Object__to_s
]))(var216
) /* to_s on <var216:Array[Object]>*/;
5778 file__OFStream__write(var_makefile
, var219
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5781 array__Array__add(var_ofiles
, var_o
); /* Direct call array#Array#add on <var_ofiles:Array[String]>*/
5784 array__Array__add(var_dep_rules
, var_o
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
5786 CONTINUE_label220
: (void)0;
5788 array__ArrayIterator__next(var181
); /* Direct call array#ArrayIterator#next on <var181:ArrayIterator[nullable Object]>*/
5791 BREAK_label220
: (void)0;
5792 var221
= NEW_array__Array(&type_array__Arrayc_tools__ExternFile
);
5794 array__Array__init(var221
); /* Direct call array#Array#init on <var221:Array[ExternFile]>*/
5796 var_java_files
= var221
;
5798 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (var_compiler) on <var_compiler:AbstractCompiler> */
5799 var224
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <var_compiler:AbstractCompiler> */
5800 if (unlikely(var224
== NULL
)) {
5801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
5802 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 847);
5806 RET_LABEL223
:(void)0;
5810 var225
= array__AbstractArrayRead__iterator(var222
);
5814 var226
= array__ArrayIterator__is_ok(var225
);
5818 var227
= array__ArrayIterator__item(var225
);
5822 var229
= c_tools__ExternCFile__makefile_rule_name(var_f228
);
5826 { /* Inline c_tools#ExternFile#filename (var_f228) on <var_f228:ExternFile> */
5827 var233
= var_f228
->attrs
[COLOR_c_tools__ExternFile___filename
].val
; /* _filename on <var_f228:ExternFile> */
5828 if (unlikely(var233
== NULL
)) {
5829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
5830 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
5834 RET_LABEL232
:(void)0;
5838 var235
= varonce234
;
5842 var238
= string__NativeString__to_s_with_length(var236
, var237
);
5844 varonce234
= var235
;
5847 var239
= file__String__basename(var231
, var235
);
5851 var241
= varonce240
;
5855 var244
= string__NativeString__to_s_with_length(var242
, var243
);
5857 varonce240
= var241
;
5860 var246
= varonce245
;
5864 var249
= string__NativeString__to_s_with_length(var247
, var248
);
5866 varonce245
= var246
;
5868 var250
= NEW_array__Array(&type_array__Arraykernel__Object
);
5869 { /* var250 = array_instance Array[Object] */
5871 var252
= NEW_array__NativeArray(var251
, &type_array__NativeArraykernel__Object
);
5872 ((struct instance_array__NativeArray
*)var252
)->values
[0] = (val
*) var_o230
;
5873 ((struct instance_array__NativeArray
*)var252
)->values
[1] = (val
*) var241
;
5874 ((struct instance_array__NativeArray
*)var252
)->values
[2] = (val
*) var_ff
;
5875 ((struct instance_array__NativeArray
*)var252
)->values
[3] = (val
*) var246
;
5877 ((void (*)(val
*, val
*, long))(var250
->class->vft
[COLOR_array__Array__with_native
]))(var250
, var252
, var251
) /* with_native on <var250:Array[Object]>*/;
5881 var253
= ((val
* (*)(val
*))(var250
->class->vft
[COLOR_string__Object__to_s
]))(var250
) /* to_s on <var250:Array[Object]>*/;
5884 file__OFStream__write(var_makefile
, var253
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5887 var255
= varonce254
;
5891 var258
= string__NativeString__to_s_with_length(var256
, var257
);
5893 varonce254
= var255
;
5896 var259
= c_tools__ExternCFile__makefile_rule_content(var_f228
);
5899 var261
= varonce260
;
5903 var264
= string__NativeString__to_s_with_length(var262
, var263
);
5905 varonce260
= var261
;
5907 var265
= NEW_array__Array(&type_array__Arraykernel__Object
);
5908 { /* var265 = array_instance Array[Object] */
5910 var267
= NEW_array__NativeArray(var266
, &type_array__NativeArraykernel__Object
);
5911 ((struct instance_array__NativeArray
*)var267
)->values
[0] = (val
*) var255
;
5912 ((struct instance_array__NativeArray
*)var267
)->values
[1] = (val
*) var259
;
5913 ((struct instance_array__NativeArray
*)var267
)->values
[2] = (val
*) var261
;
5915 ((void (*)(val
*, val
*, long))(var265
->class->vft
[COLOR_array__Array__with_native
]))(var265
, var267
, var266
) /* with_native on <var265:Array[Object]>*/;
5919 var268
= ((val
* (*)(val
*))(var265
->class->vft
[COLOR_string__Object__to_s
]))(var265
) /* to_s on <var265:Array[Object]>*/;
5922 file__OFStream__write(var_makefile
, var268
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
5925 var269
= c_tools__ExternCFile__makefile_rule_name(var_f228
);
5928 array__Array__add(var_dep_rules
, var269
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
5931 var270
= c_tools__ExternCFile__compiles_to_o_file(var_f228
);
5935 array__Array__add(var_ofiles
, var_o230
); /* Direct call array#Array#add on <var_ofiles:Array[String]>*/
5940 var271
= c_tools__ExternFile__add_to_jar(var_f228
);
5944 array__Array__add(var_java_files
, var_f228
); /* Direct call array#Array#add on <var_java_files:Array[ExternFile]>*/
5948 CONTINUE_label272
: (void)0;
5950 array__ArrayIterator__next(var225
); /* Direct call array#ArrayIterator#next on <var225:ArrayIterator[nullable Object]>*/
5953 BREAK_label272
: (void)0;
5955 var273
= array__AbstractArrayRead__is_empty(var_java_files
);
5960 var276
= varonce275
;
5964 var279
= string__NativeString__to_s_with_length(var277
, var278
);
5966 varonce275
= var276
;
5968 var280
= NEW_array__Array(&type_array__Arraykernel__Object
);
5969 { /* var280 = array_instance Array[Object] */
5971 var282
= NEW_array__NativeArray(var281
, &type_array__NativeArraykernel__Object
);
5972 ((struct instance_array__NativeArray
*)var282
)->values
[0] = (val
*) var_outpath
;
5973 ((struct instance_array__NativeArray
*)var282
)->values
[1] = (val
*) var276
;
5975 ((void (*)(val
*, val
*, long))(var280
->class->vft
[COLOR_array__Array__with_native
]))(var280
, var282
, var281
) /* with_native on <var280:Array[Object]>*/;
5979 var283
= ((val
* (*)(val
*))(var280
->class->vft
[COLOR_string__Object__to_s
]))(var280
) /* to_s on <var280:Array[Object]>*/;
5981 var_jar_file
= var283
;
5982 var284
= NEW_array__Array(&type_array__Arraystring__String
);
5984 array__Array__init(var284
); /* Direct call array#Array#init on <var284:Array[String]>*/
5986 var_class_files_array
= var284
;
5988 var285
= array__AbstractArrayRead__iterator(var_java_files
);
5992 var286
= array__ArrayIterator__is_ok(var285
);
5996 var287
= array__ArrayIterator__item(var285
);
6000 var289
= c_tools__ExternCFile__makefile_rule_name(var_f288
);
6003 array__Array__add(var_class_files_array
, var289
); /* Direct call array#Array#add on <var_class_files_array:Array[String]>*/
6005 CONTINUE_label290
: (void)0;
6007 array__ArrayIterator__next(var285
); /* Direct call array#ArrayIterator#next on <var285:ArrayIterator[nullable Object]>*/
6010 BREAK_label290
: (void)0;
6012 var292
= varonce291
;
6016 var295
= string__NativeString__to_s_with_length(var293
, var294
);
6018 varonce291
= var292
;
6021 var296
= string__Collection__join(var_class_files_array
, var292
);
6023 var_class_files
= var296
;
6025 var298
= varonce297
;
6029 var301
= string__NativeString__to_s_with_length(var299
, var300
);
6031 varonce297
= var298
;
6034 var303
= varonce302
;
6038 var306
= string__NativeString__to_s_with_length(var304
, var305
);
6040 varonce302
= var303
;
6042 var307
= NEW_array__Array(&type_array__Arraykernel__Object
);
6043 { /* var307 = array_instance Array[Object] */
6045 var309
= NEW_array__NativeArray(var308
, &type_array__NativeArraykernel__Object
);
6046 ((struct instance_array__NativeArray
*)var309
)->values
[0] = (val
*) var_jar_file
;
6047 ((struct instance_array__NativeArray
*)var309
)->values
[1] = (val
*) var298
;
6048 ((struct instance_array__NativeArray
*)var309
)->values
[2] = (val
*) var_class_files
;
6049 ((struct instance_array__NativeArray
*)var309
)->values
[3] = (val
*) var303
;
6051 ((void (*)(val
*, val
*, long))(var307
->class->vft
[COLOR_array__Array__with_native
]))(var307
, var309
, var308
) /* with_native on <var307:Array[Object]>*/;
6055 var310
= ((val
* (*)(val
*))(var307
->class->vft
[COLOR_string__Object__to_s
]))(var307
) /* to_s on <var307:Array[Object]>*/;
6058 file__OFStream__write(var_makefile
, var310
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6061 var312
= varonce311
;
6063 var313
= "\11jar cf ";
6065 var315
= string__NativeString__to_s_with_length(var313
, var314
);
6067 varonce311
= var312
;
6070 var317
= varonce316
;
6074 var320
= string__NativeString__to_s_with_length(var318
, var319
);
6076 varonce316
= var317
;
6079 var322
= varonce321
;
6083 var325
= string__NativeString__to_s_with_length(var323
, var324
);
6085 varonce321
= var322
;
6087 var326
= NEW_array__Array(&type_array__Arraykernel__Object
);
6088 { /* var326 = array_instance Array[Object] */
6090 var328
= NEW_array__NativeArray(var327
, &type_array__NativeArraykernel__Object
);
6091 ((struct instance_array__NativeArray
*)var328
)->values
[0] = (val
*) var312
;
6092 ((struct instance_array__NativeArray
*)var328
)->values
[1] = (val
*) var_jar_file
;
6093 ((struct instance_array__NativeArray
*)var328
)->values
[2] = (val
*) var317
;
6094 ((struct instance_array__NativeArray
*)var328
)->values
[3] = (val
*) var_class_files
;
6095 ((struct instance_array__NativeArray
*)var328
)->values
[4] = (val
*) var322
;
6097 ((void (*)(val
*, val
*, long))(var326
->class->vft
[COLOR_array__Array__with_native
]))(var326
, var328
, var327
) /* with_native on <var326:Array[Object]>*/;
6101 var329
= ((val
* (*)(val
*))(var326
->class->vft
[COLOR_string__Object__to_s
]))(var326
) /* to_s on <var326:Array[Object]>*/;
6104 file__OFStream__write(var_makefile
, var329
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6107 array__Array__add(var_dep_rules
, var_jar_file
); /* Direct call array#Array#add on <var_dep_rules:Array[String]>*/
6112 var331
= varonce330
;
6116 var334
= string__NativeString__to_s_with_length(var332
, var333
);
6118 varonce330
= var331
;
6121 var336
= varonce335
;
6125 var339
= string__NativeString__to_s_with_length(var337
, var338
);
6127 varonce335
= var336
;
6130 var340
= string__Collection__join(var_dep_rules
, var336
);
6133 var342
= varonce341
;
6135 var343
= "\n\11$(CC) $(LDFLAGS) -o ";
6137 var345
= string__NativeString__to_s_with_length(var343
, var344
);
6139 varonce341
= var342
;
6142 var347
= varonce346
;
6146 var350
= string__NativeString__to_s_with_length(var348
, var349
);
6148 varonce346
= var347
;
6151 var352
= varonce351
;
6155 var355
= string__NativeString__to_s_with_length(var353
, var354
);
6157 varonce351
= var352
;
6160 var356
= string__Collection__join(var_ofiles
, var352
);
6163 var358
= varonce357
;
6165 var359
= " $(LDLIBS)\n\n";
6167 var361
= string__NativeString__to_s_with_length(var359
, var360
);
6169 varonce357
= var358
;
6171 var362
= NEW_array__Array(&type_array__Arraykernel__Object
);
6172 { /* var362 = array_instance Array[Object] */
6174 var364
= NEW_array__NativeArray(var363
, &type_array__NativeArraykernel__Object
);
6175 ((struct instance_array__NativeArray
*)var364
)->values
[0] = (val
*) var_outpath
;
6176 ((struct instance_array__NativeArray
*)var364
)->values
[1] = (val
*) var331
;
6177 ((struct instance_array__NativeArray
*)var364
)->values
[2] = (val
*) var340
;
6178 ((struct instance_array__NativeArray
*)var364
)->values
[3] = (val
*) var342
;
6179 ((struct instance_array__NativeArray
*)var364
)->values
[4] = (val
*) var_outpath
;
6180 ((struct instance_array__NativeArray
*)var364
)->values
[5] = (val
*) var347
;
6181 ((struct instance_array__NativeArray
*)var364
)->values
[6] = (val
*) var356
;
6182 ((struct instance_array__NativeArray
*)var364
)->values
[7] = (val
*) var358
;
6184 ((void (*)(val
*, val
*, long))(var362
->class->vft
[COLOR_array__Array__with_native
]))(var362
, var364
, var363
) /* with_native on <var362:Array[Object]>*/;
6188 var365
= ((val
* (*)(val
*))(var362
->class->vft
[COLOR_string__Object__to_s
]))(var362
) /* to_s on <var362:Array[Object]>*/;
6191 file__OFStream__write(var_makefile
, var365
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6194 var367
= varonce366
;
6196 var368
= "clean:\n\11rm ";
6198 var370
= string__NativeString__to_s_with_length(var368
, var369
);
6200 varonce366
= var367
;
6203 var372
= varonce371
;
6207 var375
= string__NativeString__to_s_with_length(var373
, var374
);
6209 varonce371
= var372
;
6212 var376
= string__Collection__join(var_ofiles
, var372
);
6215 var378
= varonce377
;
6217 var379
= " 2>/dev/null\n\n";
6219 var381
= string__NativeString__to_s_with_length(var379
, var380
);
6221 varonce377
= var378
;
6223 var382
= NEW_array__Array(&type_array__Arraykernel__Object
);
6224 { /* var382 = array_instance Array[Object] */
6226 var384
= NEW_array__NativeArray(var383
, &type_array__NativeArraykernel__Object
);
6227 ((struct instance_array__NativeArray
*)var384
)->values
[0] = (val
*) var367
;
6228 ((struct instance_array__NativeArray
*)var384
)->values
[1] = (val
*) var376
;
6229 ((struct instance_array__NativeArray
*)var384
)->values
[2] = (val
*) var378
;
6231 ((void (*)(val
*, val
*, long))(var382
->class->vft
[COLOR_array__Array__with_native
]))(var382
, var384
, var383
) /* with_native on <var382:Array[Object]>*/;
6235 var385
= ((val
* (*)(val
*))(var382
->class->vft
[COLOR_string__Object__to_s
]))(var382
) /* to_s on <var382:Array[Object]>*/;
6238 file__OFStream__write(var_makefile
, var385
); /* Direct call file#OFStream#write on <var_makefile:OFStream>*/
6241 file__OFStream__close(var_makefile
); /* Direct call file#OFStream#close on <var_makefile:OFStream>*/
6244 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6245 var388
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6246 if (unlikely(var388
== NULL
)) {
6247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6248 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
6252 RET_LABEL387
:(void)0;
6256 var390
= varonce389
;
6258 var391
= "Generated makefile: ";
6260 var393
= string__NativeString__to_s_with_length(var391
, var392
);
6262 varonce389
= var390
;
6264 var394
= NEW_array__Array(&type_array__Arraykernel__Object
);
6265 { /* var394 = array_instance Array[Object] */
6267 var396
= NEW_array__NativeArray(var395
, &type_array__NativeArraykernel__Object
);
6268 ((struct instance_array__NativeArray
*)var396
)->values
[0] = (val
*) var390
;
6269 ((struct instance_array__NativeArray
*)var396
)->values
[1] = (val
*) var_makepath
;
6271 ((void (*)(val
*, val
*, long))(var394
->class->vft
[COLOR_array__Array__with_native
]))(var394
, var396
, var395
) /* with_native on <var394:Array[Object]>*/;
6275 var397
= ((val
* (*)(val
*))(var394
->class->vft
[COLOR_string__Object__to_s
]))(var394
) /* to_s on <var394:Array[Object]>*/;
6279 toolcontext__ToolContext__info(var386
, var397
, var398
); /* Direct call toolcontext#ToolContext#info on <var386:ToolContext>*/
6283 /* method abstract_compiler#MakefileToolchain#write_makefile for (self: Object, AbstractCompiler, String, Array[String]) */
6284 void VIRTUAL_abstract_compiler__MakefileToolchain__write_makefile(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6285 abstract_compiler__MakefileToolchain__write_makefile(self
, p0
, p1
, p2
); /* Direct call abstract_compiler#MakefileToolchain#write_makefile on <self:Object(MakefileToolchain)>*/
6288 /* method abstract_compiler#MakefileToolchain#compile_c_code for (self: MakefileToolchain, AbstractCompiler, String) */
6289 void abstract_compiler__MakefileToolchain__compile_c_code(val
* self
, val
* p0
, val
* p1
) {
6290 val
* var_compiler
/* var compiler: AbstractCompiler */;
6291 val
* var_compile_dir
/* var compile_dir: String */;
6292 val
* var
/* : MModule */;
6293 val
* var2
/* : MModule */;
6294 val
* var3
/* : String */;
6295 val
* var_makename
/* var makename: String */;
6296 val
* var4
/* : ToolContext */;
6297 val
* var6
/* : ToolContext */;
6298 val
* var7
/* : OptionString */;
6299 val
* var9
/* : OptionString */;
6300 val
* var10
/* : nullable Object */;
6301 val
* var12
/* : nullable Object */;
6302 val
* var_makeflags
/* var makeflags: nullable String */;
6303 val
* var13
/* : null */;
6304 short int var14
/* : Bool */;
6305 short int var15
/* : Bool */;
6306 static val
* varonce
;
6307 val
* var16
/* : String */;
6308 char* var17
/* : NativeString */;
6309 long var18
/* : Int */;
6310 val
* var19
/* : FlatString */;
6311 val
* var20
/* : ToolContext */;
6312 val
* var22
/* : ToolContext */;
6313 static val
* varonce23
;
6314 val
* var24
/* : String */;
6315 char* var25
/* : NativeString */;
6316 long var26
/* : Int */;
6317 val
* var27
/* : FlatString */;
6318 static val
* varonce28
;
6319 val
* var29
/* : String */;
6320 char* var30
/* : NativeString */;
6321 long var31
/* : Int */;
6322 val
* var32
/* : FlatString */;
6323 static val
* varonce33
;
6324 val
* var34
/* : String */;
6325 char* var35
/* : NativeString */;
6326 long var36
/* : Int */;
6327 val
* var37
/* : FlatString */;
6328 val
* var38
/* : Array[Object] */;
6329 long var39
/* : Int */;
6330 val
* var40
/* : NativeArray[Object] */;
6331 val
* var41
/* : String */;
6332 long var42
/* : Int */;
6333 val
* var43
/* : ToolContext */;
6334 val
* var45
/* : ToolContext */;
6335 long var46
/* : Int */;
6336 long var48
/* : Int */;
6337 long var49
/* : Int */;
6338 short int var50
/* : Bool */;
6339 short int var52
/* : Bool */;
6342 const char* var_class_name
;
6343 short int var53
/* : Bool */;
6344 val
* var54
/* : Sys */;
6345 val
* var56
/* : Sys */;
6346 static val
* varonce57
;
6347 val
* var58
/* : String */;
6348 char* var59
/* : NativeString */;
6349 long var60
/* : Int */;
6350 val
* var61
/* : FlatString */;
6351 static val
* varonce62
;
6352 val
* var63
/* : String */;
6353 char* var64
/* : NativeString */;
6354 long var65
/* : Int */;
6355 val
* var66
/* : FlatString */;
6356 static val
* varonce67
;
6357 val
* var68
/* : String */;
6358 char* var69
/* : NativeString */;
6359 long var70
/* : Int */;
6360 val
* var71
/* : FlatString */;
6361 static val
* varonce72
;
6362 val
* var73
/* : String */;
6363 char* var74
/* : NativeString */;
6364 long var75
/* : Int */;
6365 val
* var76
/* : FlatString */;
6366 val
* var77
/* : Array[Object] */;
6367 long var78
/* : Int */;
6368 val
* var79
/* : NativeArray[Object] */;
6369 val
* var80
/* : String */;
6370 long var81
/* : Int */;
6371 val
* var82
/* : nullable Object */;
6372 val
* var_res
/* var res: nullable Object */;
6373 val
* var83
/* : Sys */;
6374 val
* var85
/* : Sys */;
6375 static val
* varonce86
;
6376 val
* var87
/* : String */;
6377 char* var88
/* : NativeString */;
6378 long var89
/* : Int */;
6379 val
* var90
/* : FlatString */;
6380 static val
* varonce91
;
6381 val
* var92
/* : String */;
6382 char* var93
/* : NativeString */;
6383 long var94
/* : Int */;
6384 val
* var95
/* : FlatString */;
6385 static val
* varonce96
;
6386 val
* var97
/* : String */;
6387 char* var98
/* : NativeString */;
6388 long var99
/* : Int */;
6389 val
* var100
/* : FlatString */;
6390 static val
* varonce101
;
6391 val
* var102
/* : String */;
6392 char* var103
/* : NativeString */;
6393 long var104
/* : Int */;
6394 val
* var105
/* : FlatString */;
6395 val
* var106
/* : Array[Object] */;
6396 long var107
/* : Int */;
6397 val
* var108
/* : NativeArray[Object] */;
6398 val
* var109
/* : String */;
6399 long var110
/* : Int */;
6400 val
* var111
/* : nullable Object */;
6401 long var112
/* : Int */;
6402 short int var113
/* : Bool */;
6403 short int var114
/* : Bool */;
6404 short int var116
/* : Bool */;
6405 long var117
/* : Int */;
6406 short int var118
/* : Bool */;
6407 val
* var119
/* : ToolContext */;
6408 val
* var121
/* : ToolContext */;
6409 val
* var122
/* : null */;
6410 static val
* varonce123
;
6411 val
* var124
/* : String */;
6412 char* var125
/* : NativeString */;
6413 long var126
/* : Int */;
6414 val
* var127
/* : FlatString */;
6415 static val
* varonce128
;
6416 val
* var129
/* : String */;
6417 char* var130
/* : NativeString */;
6418 long var131
/* : Int */;
6419 val
* var132
/* : FlatString */;
6420 val
* var133
/* : Array[Object] */;
6421 long var134
/* : Int */;
6422 val
* var135
/* : NativeArray[Object] */;
6423 val
* var136
/* : String */;
6425 var_compile_dir
= p1
;
6427 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var_compiler) on <var_compiler:AbstractCompiler> */
6428 var2
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var_compiler:AbstractCompiler> */
6429 if (unlikely(var2
== NULL
)) {
6430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6431 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
6439 var3
= abstract_compiler__MakefileToolchain__makefile_name(self
, var
);
6441 var_makename
= var3
;
6443 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6444 var6
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6445 if (unlikely(var6
== NULL
)) {
6446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6447 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
6455 { /* Inline abstract_compiler#ToolContext#opt_make_flags (var4) on <var4:ToolContext> */
6456 var9
= var4
->attrs
[COLOR_abstract_compiler__ToolContext___opt_make_flags
].val
; /* _opt_make_flags on <var4:ToolContext> */
6457 if (unlikely(var9
== NULL
)) {
6458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_make_flags");
6459 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 38);
6467 { /* Inline opts#Option#value (var7) on <var7:OptionString> */
6468 var12
= var7
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var7:OptionString> */
6470 RET_LABEL11
:(void)0;
6473 var_makeflags
= var10
;
6475 if (var_makeflags
== NULL
) {
6476 var14
= 1; /* is null */
6478 var14
= 0; /* arg is null but recv is not */
6481 var15
= string__FlatString___61d_61d(var_makeflags
, var13
);
6490 var19
= string__NativeString__to_s_with_length(var17
, var18
);
6494 var_makeflags
= var16
;
6498 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6499 var22
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6500 if (unlikely(var22
== NULL
)) {
6501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6502 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
6506 RET_LABEL21
:(void)0;
6512 var25
= "make -B -C ";
6514 var27
= string__NativeString__to_s_with_length(var25
, var26
);
6523 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6532 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6536 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6537 { /* var38 = array_instance Array[Object] */
6539 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6540 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var24
;
6541 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_compile_dir
;
6542 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var29
;
6543 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var_makename
;
6544 ((struct instance_array__NativeArray
*)var40
)->values
[4] = (val
*) var34
;
6545 ((struct instance_array__NativeArray
*)var40
)->values
[5] = (val
*) var_makeflags
;
6547 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6551 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6555 toolcontext__ToolContext__info(var20
, var41
, var42
); /* Direct call toolcontext#ToolContext#info on <var20:ToolContext>*/
6558 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6559 var45
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6560 if (unlikely(var45
== NULL
)) {
6561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6562 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
6566 RET_LABEL44
:(void)0;
6570 { /* Inline toolcontext#ToolContext#verbose_level (var43) on <var43:ToolContext> */
6571 var48
= var43
->attrs
[COLOR_toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var43:ToolContext> */
6573 RET_LABEL47
:(void)0;
6578 { /* Inline kernel#Int#>= (var46,var49) on <var46:Int> */
6579 /* Covariant cast for argument 0 (i) <var49:Int> isa OTHER */
6580 /* <var49:Int> isa OTHER */
6581 var52
= 1; /* easy <var49:Int> isa OTHER*/
6582 if (unlikely(!var52
)) {
6583 var_class_name
= type_kernel__Int
.name
;
6584 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6585 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
6588 var53
= var46
>= var49
;
6591 RET_LABEL51
:(void)0;
6596 { /* Inline kernel#Object#sys (self) on <self:MakefileToolchain> */
6600 RET_LABEL55
:(void)0;
6606 var59
= "make -B -C ";
6608 var61
= string__NativeString__to_s_with_length(var59
, var60
);
6617 var66
= string__NativeString__to_s_with_length(var64
, var65
);
6626 var71
= string__NativeString__to_s_with_length(var69
, var70
);
6635 var76
= string__NativeString__to_s_with_length(var74
, var75
);
6639 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
6640 { /* var77 = array_instance Array[Object] */
6642 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
6643 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var58
;
6644 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_compile_dir
;
6645 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var63
;
6646 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var_makename
;
6647 ((struct instance_array__NativeArray
*)var79
)->values
[4] = (val
*) var68
;
6648 ((struct instance_array__NativeArray
*)var79
)->values
[5] = (val
*) var_makeflags
;
6649 ((struct instance_array__NativeArray
*)var79
)->values
[6] = (val
*) var73
;
6651 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
6655 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
6658 var81
= exec__Sys__system(var54
, var80
);
6660 var82
= BOX_kernel__Int(var81
); /* autobox from Int to nullable Object */
6664 { /* Inline kernel#Object#sys (self) on <self:MakefileToolchain> */
6668 RET_LABEL84
:(void)0;
6674 var88
= "make -B -C ";
6676 var90
= string__NativeString__to_s_with_length(var88
, var89
);
6685 var95
= string__NativeString__to_s_with_length(var93
, var94
);
6694 var100
= string__NativeString__to_s_with_length(var98
, var99
);
6699 var102
= varonce101
;
6701 var103
= " 2>&1 >/dev/null";
6703 var105
= string__NativeString__to_s_with_length(var103
, var104
);
6705 varonce101
= var102
;
6707 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
6708 { /* var106 = array_instance Array[Object] */
6710 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
6711 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var87
;
6712 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var_compile_dir
;
6713 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var92
;
6714 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var_makename
;
6715 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var97
;
6716 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var_makeflags
;
6717 ((struct instance_array__NativeArray
*)var108
)->values
[6] = (val
*) var102
;
6719 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
6723 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
6726 var110
= exec__Sys__system(var83
, var109
);
6728 var111
= BOX_kernel__Int(var110
); /* autobox from Int to nullable Object */
6733 { /* Inline kernel#Int#!= (var_res,var112) on <var_res:nullable Object(Int)> */
6734 var116
= (var_res
!= NULL
) && (var_res
->class == &class_kernel__Int
);
6736 var117
= ((struct instance_kernel__Int
*)var_res
)->value
; /* autounbox from nullable Object to Int */;
6737 var116
= (var117
== var112
);
6742 RET_LABEL115
:(void)0;
6748 { /* Inline abstract_compiler#Toolchain#toolcontext (self) on <self:MakefileToolchain> */
6749 var121
= self
->attrs
[COLOR_abstract_compiler__Toolchain___toolcontext
].val
; /* _toolcontext on <self:MakefileToolchain> */
6750 if (unlikely(var121
== NULL
)) {
6751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6752 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 126);
6756 RET_LABEL120
:(void)0;
6761 var124
= varonce123
;
6763 var125
= "make failed! Error code: ";
6765 var127
= string__NativeString__to_s_with_length(var125
, var126
);
6767 varonce123
= var124
;
6770 var129
= varonce128
;
6774 var132
= string__NativeString__to_s_with_length(var130
, var131
);
6776 varonce128
= var129
;
6778 var133
= NEW_array__Array(&type_array__Arraykernel__Object
);
6779 { /* var133 = array_instance Array[Object] */
6781 var135
= NEW_array__NativeArray(var134
, &type_array__NativeArraykernel__Object
);
6782 ((struct instance_array__NativeArray
*)var135
)->values
[0] = (val
*) var124
;
6783 ((struct instance_array__NativeArray
*)var135
)->values
[1] = (val
*) var_res
;
6784 ((struct instance_array__NativeArray
*)var135
)->values
[2] = (val
*) var129
;
6786 ((void (*)(val
*, val
*, long))(var133
->class->vft
[COLOR_array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
6790 var136
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
6793 toolcontext__ToolContext__error(var119
, var122
, var136
); /* Direct call toolcontext#ToolContext#error on <var119:ToolContext>*/
6799 /* method abstract_compiler#MakefileToolchain#compile_c_code for (self: Object, AbstractCompiler, String) */
6800 void VIRTUAL_abstract_compiler__MakefileToolchain__compile_c_code(val
* self
, val
* p0
, val
* p1
) {
6801 abstract_compiler__MakefileToolchain__compile_c_code(self
, p0
, p1
); /* Direct call abstract_compiler#MakefileToolchain#compile_c_code on <self:Object(MakefileToolchain)>*/
6804 /* method abstract_compiler#AbstractCompiler#names for (self: AbstractCompiler): HashMap[String, String] */
6805 val
* abstract_compiler__AbstractCompiler__names(val
* self
) {
6806 val
* var
/* : HashMap[String, String] */;
6807 val
* var1
/* : HashMap[String, String] */;
6808 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
6809 if (unlikely(var1
== NULL
)) {
6810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
6811 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
6818 /* method abstract_compiler#AbstractCompiler#names for (self: Object): HashMap[String, String] */
6819 val
* VIRTUAL_abstract_compiler__AbstractCompiler__names(val
* self
) {
6820 val
* var
/* : HashMap[String, String] */;
6821 val
* var1
/* : HashMap[String, String] */;
6822 val
* var3
/* : HashMap[String, String] */;
6823 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:Object(AbstractCompiler)> */
6824 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:Object(AbstractCompiler)> */
6825 if (unlikely(var3
== NULL
)) {
6826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
6827 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
6837 /* method abstract_compiler#AbstractCompiler#mainmodule for (self: AbstractCompiler): MModule */
6838 val
* abstract_compiler__AbstractCompiler__mainmodule(val
* self
) {
6839 val
* var
/* : MModule */;
6840 val
* var1
/* : MModule */;
6841 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:AbstractCompiler> */
6842 if (unlikely(var1
== NULL
)) {
6843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6844 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
6851 /* method abstract_compiler#AbstractCompiler#mainmodule for (self: Object): MModule */
6852 val
* VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule(val
* self
) {
6853 val
* var
/* : MModule */;
6854 val
* var1
/* : MModule */;
6855 val
* var3
/* : MModule */;
6856 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:Object(AbstractCompiler)> */
6857 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:Object(AbstractCompiler)> */
6858 if (unlikely(var3
== NULL
)) {
6859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6860 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
6870 /* method abstract_compiler#AbstractCompiler#mainmodule= for (self: AbstractCompiler, MModule) */
6871 void abstract_compiler__AbstractCompiler__mainmodule_61d(val
* self
, val
* p0
) {
6872 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= p0
; /* _mainmodule on <self:AbstractCompiler> */
6875 /* method abstract_compiler#AbstractCompiler#mainmodule= for (self: Object, MModule) */
6876 void VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule_61d(val
* self
, val
* p0
) {
6877 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,p0) on <self:Object(AbstractCompiler)> */
6878 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= p0
; /* _mainmodule on <self:Object(AbstractCompiler)> */
6883 /* method abstract_compiler#AbstractCompiler#realmainmodule for (self: AbstractCompiler): MModule */
6884 val
* abstract_compiler__AbstractCompiler__realmainmodule(val
* self
) {
6885 val
* var
/* : MModule */;
6886 val
* var1
/* : MModule */;
6887 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
; /* _realmainmodule on <self:AbstractCompiler> */
6888 if (unlikely(var1
== NULL
)) {
6889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
6890 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 440);
6897 /* method abstract_compiler#AbstractCompiler#realmainmodule for (self: Object): MModule */
6898 val
* VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule(val
* self
) {
6899 val
* var
/* : MModule */;
6900 val
* var1
/* : MModule */;
6901 val
* var3
/* : MModule */;
6902 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule (self) on <self:Object(AbstractCompiler)> */
6903 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
; /* _realmainmodule on <self:Object(AbstractCompiler)> */
6904 if (unlikely(var3
== NULL
)) {
6905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
6906 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 440);
6916 /* method abstract_compiler#AbstractCompiler#realmainmodule= for (self: AbstractCompiler, MModule) */
6917 void abstract_compiler__AbstractCompiler__realmainmodule_61d(val
* self
, val
* p0
) {
6918 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= p0
; /* _realmainmodule on <self:AbstractCompiler> */
6921 /* method abstract_compiler#AbstractCompiler#realmainmodule= for (self: Object, MModule) */
6922 void VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule_61d(val
* self
, val
* p0
) {
6923 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule= (self,p0) on <self:Object(AbstractCompiler)> */
6924 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= p0
; /* _realmainmodule on <self:Object(AbstractCompiler)> */
6929 /* method abstract_compiler#AbstractCompiler#modelbuilder for (self: AbstractCompiler): ModelBuilder */
6930 val
* abstract_compiler__AbstractCompiler__modelbuilder(val
* self
) {
6931 val
* var
/* : ModelBuilder */;
6932 val
* var1
/* : ModelBuilder */;
6933 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
6934 if (unlikely(var1
== NULL
)) {
6935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6936 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
6943 /* method abstract_compiler#AbstractCompiler#modelbuilder for (self: Object): ModelBuilder */
6944 val
* VIRTUAL_abstract_compiler__AbstractCompiler__modelbuilder(val
* self
) {
6945 val
* var
/* : ModelBuilder */;
6946 val
* var1
/* : ModelBuilder */;
6947 val
* var3
/* : ModelBuilder */;
6948 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:Object(AbstractCompiler)> */
6949 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:Object(AbstractCompiler)> */
6950 if (unlikely(var3
== NULL
)) {
6951 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6952 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
6962 /* method abstract_compiler#AbstractCompiler#modelbuilder= for (self: AbstractCompiler, ModelBuilder) */
6963 void abstract_compiler__AbstractCompiler__modelbuilder_61d(val
* self
, val
* p0
) {
6964 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= p0
; /* _modelbuilder on <self:AbstractCompiler> */
6967 /* method abstract_compiler#AbstractCompiler#modelbuilder= for (self: Object, ModelBuilder) */
6968 void VIRTUAL_abstract_compiler__AbstractCompiler__modelbuilder_61d(val
* self
, val
* p0
) {
6969 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder= (self,p0) on <self:Object(AbstractCompiler)> */
6970 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= p0
; /* _modelbuilder on <self:Object(AbstractCompiler)> */
6975 /* method abstract_compiler#AbstractCompiler#init for (self: AbstractCompiler, MModule, ModelBuilder) */
6976 void abstract_compiler__AbstractCompiler__init(val
* self
, val
* p0
, val
* p1
) {
6977 val
* var_mainmodule
/* var mainmodule: MModule */;
6978 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6979 var_mainmodule
= p0
;
6980 var_modelbuilder
= p1
;
6982 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mainmodule) on <self:AbstractCompiler> */
6983 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mainmodule
; /* _mainmodule on <self:AbstractCompiler> */
6988 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule= (self,var_mainmodule) on <self:AbstractCompiler> */
6989 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
= var_mainmodule
; /* _realmainmodule on <self:AbstractCompiler> */
6994 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder= (self,var_modelbuilder) on <self:AbstractCompiler> */
6995 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
= var_modelbuilder
; /* _modelbuilder on <self:AbstractCompiler> */
7001 /* method abstract_compiler#AbstractCompiler#init for (self: Object, MModule, ModelBuilder) */
7002 void VIRTUAL_abstract_compiler__AbstractCompiler__init(val
* self
, val
* p0
, val
* p1
) {
7003 abstract_compiler__AbstractCompiler__init(self
, p0
, p1
); /* Direct call abstract_compiler#AbstractCompiler#init on <self:Object(AbstractCompiler)>*/
7006 /* method abstract_compiler#AbstractCompiler#new_file for (self: AbstractCompiler, String): CodeFile */
7007 val
* abstract_compiler__AbstractCompiler__new_file(val
* self
, val
* p0
) {
7008 val
* var
/* : CodeFile */;
7009 val
* var_name
/* var name: String */;
7010 val
* var1
/* : CodeFile */;
7011 val
* var_f
/* var f: CodeFile */;
7012 val
* var3
/* : List[CodeFile] */;
7013 val
* var5
/* : List[CodeFile] */;
7015 var1
= NEW_abstract_compiler__CodeFile(&type_abstract_compiler__CodeFile
);
7017 { /* Inline abstract_compiler#CodeFile#init (var1,var_name) on <var1:CodeFile> */
7018 var1
->attrs
[COLOR_abstract_compiler__CodeFile___name
].val
= var_name
; /* _name on <var1:CodeFile> */
7024 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:AbstractCompiler> */
7025 var5
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7026 if (unlikely(var5
== NULL
)) {
7027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7028 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 465);
7036 abstract_collection__Sequence__add(var3
, var_f
); /* Direct call abstract_collection#Sequence#add on <var3:List[CodeFile]>*/
7043 /* method abstract_compiler#AbstractCompiler#new_file for (self: Object, String): CodeFile */
7044 val
* VIRTUAL_abstract_compiler__AbstractCompiler__new_file(val
* self
, val
* p0
) {
7045 val
* var
/* : CodeFile */;
7046 val
* var1
/* : CodeFile */;
7047 var1
= abstract_compiler__AbstractCompiler__new_file(self
, p0
);
7052 /* method abstract_compiler#AbstractCompiler#files for (self: AbstractCompiler): List[CodeFile] */
7053 val
* abstract_compiler__AbstractCompiler__files(val
* self
) {
7054 val
* var
/* : List[CodeFile] */;
7055 val
* var1
/* : List[CodeFile] */;
7056 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:AbstractCompiler> */
7057 if (unlikely(var1
== NULL
)) {
7058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7059 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 465);
7066 /* method abstract_compiler#AbstractCompiler#files for (self: Object): List[CodeFile] */
7067 val
* VIRTUAL_abstract_compiler__AbstractCompiler__files(val
* self
) {
7068 val
* var
/* : List[CodeFile] */;
7069 val
* var1
/* : List[CodeFile] */;
7070 val
* var3
/* : List[CodeFile] */;
7071 { /* Inline abstract_compiler#AbstractCompiler#files (self) on <self:Object(AbstractCompiler)> */
7072 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___files
].val
; /* _files on <self:Object(AbstractCompiler)> */
7073 if (unlikely(var3
== NULL
)) {
7074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
7075 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 465);
7085 /* method abstract_compiler#AbstractCompiler#header for (self: AbstractCompiler): CodeWriter */
7086 val
* abstract_compiler__AbstractCompiler__header(val
* self
) {
7087 val
* var
/* : CodeWriter */;
7088 val
* var1
/* : CodeWriter */;
7089 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
7090 if (unlikely(var1
== NULL
)) {
7091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
7092 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
7099 /* method abstract_compiler#AbstractCompiler#header for (self: Object): CodeWriter */
7100 val
* VIRTUAL_abstract_compiler__AbstractCompiler__header(val
* self
) {
7101 val
* var
/* : CodeWriter */;
7102 val
* var1
/* : CodeWriter */;
7103 val
* var3
/* : CodeWriter */;
7104 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:Object(AbstractCompiler)> */
7105 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:Object(AbstractCompiler)> */
7106 if (unlikely(var3
== NULL
)) {
7107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
7108 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
7118 /* method abstract_compiler#AbstractCompiler#header= for (self: AbstractCompiler, CodeWriter) */
7119 void abstract_compiler__AbstractCompiler__header_61d(val
* self
, val
* p0
) {
7120 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
= p0
; /* _header on <self:AbstractCompiler> */
7123 /* method abstract_compiler#AbstractCompiler#header= for (self: Object, CodeWriter) */
7124 void VIRTUAL_abstract_compiler__AbstractCompiler__header_61d(val
* self
, val
* p0
) {
7125 { /* Inline abstract_compiler#AbstractCompiler#header= (self,p0) on <self:Object(AbstractCompiler)> */
7126 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
= p0
; /* _header on <self:Object(AbstractCompiler)> */
7131 /* method abstract_compiler#AbstractCompiler#provide_declaration for (self: AbstractCompiler, String, String) */
7132 void abstract_compiler__AbstractCompiler__provide_declaration(val
* self
, val
* p0
, val
* p1
) {
7133 val
* var_key
/* var key: String */;
7134 val
* var_s
/* var s: String */;
7135 val
* var
/* : HashMap[String, String] */;
7136 val
* var2
/* : HashMap[String, String] */;
7137 short int var3
/* : Bool */;
7138 val
* var4
/* : HashMap[String, String] */;
7139 val
* var6
/* : HashMap[String, String] */;
7140 val
* var7
/* : nullable Object */;
7141 short int var8
/* : Bool */;
7142 short int var9
/* : Bool */;
7143 val
* var10
/* : HashMap[String, String] */;
7144 val
* var12
/* : HashMap[String, String] */;
7148 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7149 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7150 if (unlikely(var2
== NULL
)) {
7151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7152 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
7160 var3
= abstract_collection__MapRead__has_key(var
, var_key
);
7164 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7165 var6
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7166 if (unlikely(var6
== NULL
)) {
7167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7168 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
7176 var7
= hash_collection__HashMap___91d_93d(var4
, var_key
);
7179 var9
= string__FlatString___61d_61d(var7
, var_s
);
7182 if (unlikely(!var8
)) {
7183 PRINT_ERROR("Runtime error: %s", "Assert failed");
7184 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 479);
7190 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:AbstractCompiler> */
7191 var12
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7192 if (unlikely(var12
== NULL
)) {
7193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7194 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
7198 RET_LABEL11
:(void)0;
7202 hash_collection__HashMap___91d_93d_61d(var10
, var_key
, var_s
); /* Direct call hash_collection#HashMap#[]= on <var10:HashMap[String, String]>*/
7206 /* method abstract_compiler#AbstractCompiler#provide_declaration for (self: Object, String, String) */
7207 void VIRTUAL_abstract_compiler__AbstractCompiler__provide_declaration(val
* self
, val
* p0
, val
* p1
) {
7208 abstract_compiler__AbstractCompiler__provide_declaration(self
, p0
, p1
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:Object(AbstractCompiler)>*/
7211 /* method abstract_compiler#AbstractCompiler#provided_declarations for (self: AbstractCompiler): HashMap[String, String] */
7212 val
* abstract_compiler__AbstractCompiler__provided_declarations(val
* self
) {
7213 val
* var
/* : HashMap[String, String] */;
7214 val
* var1
/* : HashMap[String, String] */;
7215 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:AbstractCompiler> */
7216 if (unlikely(var1
== NULL
)) {
7217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7218 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
7225 /* method abstract_compiler#AbstractCompiler#provided_declarations for (self: Object): HashMap[String, String] */
7226 val
* VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations(val
* self
) {
7227 val
* var
/* : HashMap[String, String] */;
7228 val
* var1
/* : HashMap[String, String] */;
7229 val
* var3
/* : HashMap[String, String] */;
7230 { /* Inline abstract_compiler#AbstractCompiler#provided_declarations (self) on <self:Object(AbstractCompiler)> */
7231 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___provided_declarations
].val
; /* _provided_declarations on <self:Object(AbstractCompiler)> */
7232 if (unlikely(var3
== NULL
)) {
7233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _provided_declarations");
7234 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 484);
7244 /* method abstract_compiler#AbstractCompiler#requirers_of_declarations for (self: AbstractCompiler): HashMap[String, ANode] */
7245 val
* abstract_compiler__AbstractCompiler__requirers_of_declarations(val
* self
) {
7246 val
* var
/* : HashMap[String, ANode] */;
7247 val
* var1
/* : HashMap[String, ANode] */;
7248 var1
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <self:AbstractCompiler> */
7249 if (unlikely(var1
== NULL
)) {
7250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
7251 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 486);
7258 /* method abstract_compiler#AbstractCompiler#requirers_of_declarations for (self: Object): HashMap[String, ANode] */
7259 val
* VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations(val
* self
) {
7260 val
* var
/* : HashMap[String, ANode] */;
7261 val
* var1
/* : HashMap[String, ANode] */;
7262 val
* var3
/* : HashMap[String, ANode] */;
7263 { /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (self) on <self:Object(AbstractCompiler)> */
7264 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___requirers_of_declarations
].val
; /* _requirers_of_declarations on <self:Object(AbstractCompiler)> */
7265 if (unlikely(var3
== NULL
)) {
7266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
7267 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 486);
7277 /* method abstract_compiler#AbstractCompiler#build_c_to_nit_bindings for (self: AbstractCompiler) */
7278 void abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(val
* self
) {
7279 val
* var
/* : ModelBuilder */;
7280 val
* var2
/* : ModelBuilder */;
7281 val
* var3
/* : String */;
7282 val
* var5
/* : String */;
7283 val
* var_compile_dir
/* var compile_dir: String */;
7284 val
* var6
/* : OFStream */;
7285 static val
* varonce
;
7286 val
* var7
/* : String */;
7287 char* var8
/* : NativeString */;
7288 long var9
/* : Int */;
7289 val
* var10
/* : FlatString */;
7290 val
* var11
/* : Array[Object] */;
7291 long var12
/* : Int */;
7292 val
* var13
/* : NativeArray[Object] */;
7293 val
* var14
/* : String */;
7294 val
* var_stream
/* var stream: OFStream */;
7295 static val
* varonce15
;
7296 val
* var16
/* : String */;
7297 char* var17
/* : NativeString */;
7298 long var18
/* : Int */;
7299 val
* var19
/* : FlatString */;
7300 static val
* varonce20
;
7301 val
* var21
/* : String */;
7302 char* var22
/* : NativeString */;
7303 long var23
/* : Int */;
7304 val
* var24
/* : FlatString */;
7305 static val
* varonce25
;
7306 val
* var26
/* : String */;
7307 char* var27
/* : NativeString */;
7308 long var28
/* : Int */;
7309 val
* var29
/* : FlatString */;
7310 static val
* varonce30
;
7311 val
* var31
/* : String */;
7312 char* var32
/* : NativeString */;
7313 long var33
/* : Int */;
7314 val
* var34
/* : FlatString */;
7315 static val
* varonce35
;
7316 val
* var36
/* : String */;
7317 char* var37
/* : NativeString */;
7318 long var38
/* : Int */;
7319 val
* var39
/* : FlatString */;
7320 static val
* varonce40
;
7321 val
* var41
/* : String */;
7322 char* var42
/* : NativeString */;
7323 long var43
/* : Int */;
7324 val
* var44
/* : FlatString */;
7325 static val
* varonce45
;
7326 val
* var46
/* : String */;
7327 char* var47
/* : NativeString */;
7328 long var48
/* : Int */;
7329 val
* var49
/* : FlatString */;
7330 static val
* varonce50
;
7331 val
* var51
/* : String */;
7332 char* var52
/* : NativeString */;
7333 long var53
/* : Int */;
7334 val
* var54
/* : FlatString */;
7335 static val
* varonce55
;
7336 val
* var56
/* : String */;
7337 char* var57
/* : NativeString */;
7338 long var58
/* : Int */;
7339 val
* var59
/* : FlatString */;
7340 val
* var60
/* : HashMap[String, String] */;
7341 val
* var62
/* : HashMap[String, String] */;
7342 long var63
/* : Int */;
7343 static val
* varonce64
;
7344 val
* var65
/* : String */;
7345 char* var66
/* : NativeString */;
7346 long var67
/* : Int */;
7347 val
* var68
/* : FlatString */;
7348 val
* var69
/* : Array[Object] */;
7349 long var70
/* : Int */;
7350 val
* var71
/* : NativeArray[Object] */;
7351 val
* var72
/* : Object */;
7352 val
* var73
/* : String */;
7353 val
* var74
/* : HashMap[String, String] */;
7354 val
* var76
/* : HashMap[String, String] */;
7355 val
* var77
/* : RemovableCollection[Object] */;
7356 val
* var79
/* : RemovableCollection[Object] */;
7357 val
* var80
/* : Iterator[nullable Object] */;
7358 short int var81
/* : Bool */;
7359 val
* var82
/* : nullable Object */;
7360 val
* var_i
/* var i: String */;
7361 static val
* varonce83
;
7362 val
* var84
/* : String */;
7363 char* var85
/* : NativeString */;
7364 long var86
/* : Int */;
7365 val
* var87
/* : FlatString */;
7366 static val
* varonce88
;
7367 val
* var89
/* : String */;
7368 char* var90
/* : NativeString */;
7369 long var91
/* : Int */;
7370 val
* var92
/* : FlatString */;
7371 val
* var93
/* : HashMap[String, String] */;
7372 val
* var95
/* : HashMap[String, String] */;
7373 val
* var96
/* : nullable Object */;
7374 static val
* varonce97
;
7375 val
* var98
/* : String */;
7376 char* var99
/* : NativeString */;
7377 long var100
/* : Int */;
7378 val
* var101
/* : FlatString */;
7379 static val
* varonce102
;
7380 val
* var103
/* : String */;
7381 char* var104
/* : NativeString */;
7382 long var105
/* : Int */;
7383 val
* var106
/* : FlatString */;
7384 static val
* varonce107
;
7385 val
* var108
/* : String */;
7386 char* var109
/* : NativeString */;
7387 long var110
/* : Int */;
7388 val
* var111
/* : FlatString */;
7389 static val
* varonce112
;
7390 val
* var113
/* : String */;
7391 char* var114
/* : NativeString */;
7392 long var115
/* : Int */;
7393 val
* var116
/* : FlatString */;
7394 val
* var117
/* : HashMap[String, String] */;
7395 val
* var119
/* : HashMap[String, String] */;
7396 long var120
/* : Int */;
7397 static val
* varonce121
;
7398 val
* var122
/* : String */;
7399 char* var123
/* : NativeString */;
7400 long var124
/* : Int */;
7401 val
* var125
/* : FlatString */;
7402 val
* var126
/* : Array[Object] */;
7403 long var127
/* : Int */;
7404 val
* var128
/* : NativeArray[Object] */;
7405 val
* var129
/* : Object */;
7406 val
* var130
/* : String */;
7407 static val
* varonce131
;
7408 val
* var132
/* : String */;
7409 char* var133
/* : NativeString */;
7410 long var134
/* : Int */;
7411 val
* var135
/* : FlatString */;
7412 static val
* varonce136
;
7413 val
* var137
/* : String */;
7414 char* var138
/* : NativeString */;
7415 long var139
/* : Int */;
7416 val
* var140
/* : FlatString */;
7417 static val
* varonce141
;
7418 val
* var142
/* : String */;
7419 char* var143
/* : NativeString */;
7420 long var144
/* : Int */;
7421 val
* var145
/* : FlatString */;
7422 static val
* varonce146
;
7423 val
* var147
/* : String */;
7424 char* var148
/* : NativeString */;
7425 long var149
/* : Int */;
7426 val
* var150
/* : FlatString */;
7427 static val
* varonce151
;
7428 val
* var152
/* : String */;
7429 char* var153
/* : NativeString */;
7430 long var154
/* : Int */;
7431 val
* var155
/* : FlatString */;
7432 static val
* varonce156
;
7433 val
* var157
/* : String */;
7434 char* var158
/* : NativeString */;
7435 long var159
/* : Int */;
7436 val
* var160
/* : FlatString */;
7437 static val
* varonce161
;
7438 val
* var162
/* : String */;
7439 char* var163
/* : NativeString */;
7440 long var164
/* : Int */;
7441 val
* var165
/* : FlatString */;
7442 static val
* varonce166
;
7443 val
* var167
/* : String */;
7444 char* var168
/* : NativeString */;
7445 long var169
/* : Int */;
7446 val
* var170
/* : FlatString */;
7447 val
* var171
/* : OFStream */;
7448 static val
* varonce172
;
7449 val
* var173
/* : String */;
7450 char* var174
/* : NativeString */;
7451 long var175
/* : Int */;
7452 val
* var176
/* : FlatString */;
7453 val
* var177
/* : Array[Object] */;
7454 long var178
/* : Int */;
7455 val
* var179
/* : NativeArray[Object] */;
7456 val
* var180
/* : String */;
7457 static val
* varonce181
;
7458 val
* var182
/* : String */;
7459 char* var183
/* : NativeString */;
7460 long var184
/* : Int */;
7461 val
* var185
/* : FlatString */;
7462 val
* var186
/* : Array[ExternFile] */;
7463 val
* var188
/* : Array[ExternFile] */;
7464 val
* var189
/* : ExternCFile */;
7465 static val
* varonce190
;
7466 val
* var191
/* : String */;
7467 char* var192
/* : NativeString */;
7468 long var193
/* : Int */;
7469 val
* var194
/* : FlatString */;
7470 val
* var195
/* : Array[Object] */;
7471 long var196
/* : Int */;
7472 val
* var197
/* : NativeArray[Object] */;
7473 val
* var198
/* : String */;
7474 static val
* varonce199
;
7475 val
* var200
/* : String */;
7476 char* var201
/* : NativeString */;
7477 long var202
/* : Int */;
7478 val
* var203
/* : FlatString */;
7480 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
7481 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
7482 if (unlikely(var2
== NULL
)) {
7483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7484 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
7492 { /* Inline abstract_compiler#ModelBuilder#compile_dir (var) on <var:ModelBuilder> */
7493 var5
= var
->attrs
[COLOR_abstract_compiler__ModelBuilder___compile_dir
].val
; /* _compile_dir on <var:ModelBuilder> */
7494 if (unlikely(var5
== NULL
)) {
7495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compile_dir");
7496 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 103);
7503 var_compile_dir
= var3
;
7504 var6
= NEW_file__OFStream(&type_file__OFStream
);
7508 var8
= "/c_functions_hash.c";
7510 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7514 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
7515 { /* var11 = array_instance Array[Object] */
7517 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraykernel__Object
);
7518 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_compile_dir
;
7519 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var7
;
7521 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[Object]>*/;
7525 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_string__Object__to_s
]))(var11
) /* to_s on <var11:Array[Object]>*/;
7528 file__OFStream__open(var6
, var14
); /* Direct call file#OFStream#open on <var6:OFStream>*/
7534 var17
= "#include <string.h>\n";
7536 var19
= string__NativeString__to_s_with_length(var17
, var18
);
7541 file__OFStream__write(var_stream
, var16
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7546 var22
= "#include <stdlib.h>\n";
7548 var24
= string__NativeString__to_s_with_length(var22
, var23
);
7553 file__OFStream__write(var_stream
, var21
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7558 var27
= "#include \"c_functions_hash.h\"\n";
7560 var29
= string__NativeString__to_s_with_length(var27
, var28
);
7565 file__OFStream__write(var_stream
, var26
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7570 var32
= "typedef struct C_Nit_Names{char* name; char* nit_name;}C_Nit_Names;\n";
7572 var34
= string__NativeString__to_s_with_length(var32
, var33
);
7577 file__OFStream__write(var_stream
, var31
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7582 var37
= "const char* get_nit_name(register const char* procproc, register unsigned int len){\n";
7584 var39
= string__NativeString__to_s_with_length(var37
, var38
);
7589 file__OFStream__write(var_stream
, var36
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7594 var42
= "char* procname = malloc(len+1);";
7596 var44
= string__NativeString__to_s_with_length(var42
, var43
);
7601 file__OFStream__write(var_stream
, var41
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7606 var47
= "memcpy(procname, procproc, len);";
7608 var49
= string__NativeString__to_s_with_length(var47
, var48
);
7613 file__OFStream__write(var_stream
, var46
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7618 var52
= "procname[len] = \'\\0\';";
7620 var54
= string__NativeString__to_s_with_length(var52
, var53
);
7625 file__OFStream__write(var_stream
, var51
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7630 var57
= "static const C_Nit_Names map[";
7632 var59
= string__NativeString__to_s_with_length(var57
, var58
);
7637 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
7638 var62
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
7639 if (unlikely(var62
== NULL
)) {
7640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7641 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
7645 RET_LABEL61
:(void)0;
7649 var63
= hash_collection__HashMap__length(var60
);
7656 var68
= string__NativeString__to_s_with_length(var66
, var67
);
7660 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
7661 { /* var69 = array_instance Array[Object] */
7663 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
7664 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var56
;
7665 var72
= BOX_kernel__Int(var63
); /* autobox from Int to Object */
7666 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var72
;
7667 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var65
;
7669 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
7673 var73
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
7676 file__OFStream__write(var_stream
, var73
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7679 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
7680 var76
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
7681 if (unlikely(var76
== NULL
)) {
7682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7683 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
7687 RET_LABEL75
:(void)0;
7691 { /* Inline hash_collection#HashMap#keys (var74) on <var74:HashMap[String, String]> */
7692 var79
= var74
->attrs
[COLOR_hash_collection__HashMap___keys
].val
; /* _keys on <var74:HashMap[String, String]> */
7693 if (unlikely(var79
== NULL
)) {
7694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
7695 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/hash_collection.nit", 245);
7699 RET_LABEL78
:(void)0;
7703 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var77
) /* iterator on <var77:RemovableCollection[Object](RemovableCollection[String])>*/;
7707 var81
= ((short int (*)(val
*))(var80
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var80
) /* is_ok on <var80:Iterator[nullable Object]>*/;
7711 var82
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var80
) /* item on <var80:Iterator[nullable Object]>*/;
7719 var87
= string__NativeString__to_s_with_length(var85
, var86
);
7724 file__OFStream__write(var_stream
, var84
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7727 file__OFStream__write(var_stream
, var_i
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7734 var92
= string__NativeString__to_s_with_length(var90
, var91
);
7739 file__OFStream__write(var_stream
, var89
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7742 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
7743 var95
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
7744 if (unlikely(var95
== NULL
)) {
7745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7746 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
7750 RET_LABEL94
:(void)0;
7754 var96
= hash_collection__HashMap___91d_93d(var93
, var_i
);
7757 file__OFStream__write(var_stream
, var96
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7764 var101
= string__NativeString__to_s_with_length(var99
, var100
);
7769 file__OFStream__write(var_stream
, var98
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7771 CONTINUE_label
: (void)0;
7773 ((void (*)(val
*))(var80
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var80
) /* next on <var80:Iterator[nullable Object]>*/;
7776 BREAK_label
: (void)0;
7778 var103
= varonce102
;
7782 var106
= string__NativeString__to_s_with_length(var104
, var105
);
7784 varonce102
= var103
;
7787 file__OFStream__write(var_stream
, var103
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7790 var108
= varonce107
;
7794 var111
= string__NativeString__to_s_with_length(var109
, var110
);
7796 varonce107
= var108
;
7799 file__OFStream__write(var_stream
, var108
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7802 var113
= varonce112
;
7804 var114
= "for(i = 0; i < ";
7806 var116
= string__NativeString__to_s_with_length(var114
, var115
);
7808 varonce112
= var113
;
7811 { /* Inline abstract_compiler#AbstractCompiler#names (self) on <self:AbstractCompiler> */
7812 var119
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <self:AbstractCompiler> */
7813 if (unlikely(var119
== NULL
)) {
7814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7815 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
7819 RET_LABEL118
:(void)0;
7823 var120
= hash_collection__HashMap__length(var117
);
7826 var122
= varonce121
;
7830 var125
= string__NativeString__to_s_with_length(var123
, var124
);
7832 varonce121
= var122
;
7834 var126
= NEW_array__Array(&type_array__Arraykernel__Object
);
7835 { /* var126 = array_instance Array[Object] */
7837 var128
= NEW_array__NativeArray(var127
, &type_array__NativeArraykernel__Object
);
7838 ((struct instance_array__NativeArray
*)var128
)->values
[0] = (val
*) var113
;
7839 var129
= BOX_kernel__Int(var120
); /* autobox from Int to Object */
7840 ((struct instance_array__NativeArray
*)var128
)->values
[1] = (val
*) var129
;
7841 ((struct instance_array__NativeArray
*)var128
)->values
[2] = (val
*) var122
;
7843 ((void (*)(val
*, val
*, long))(var126
->class->vft
[COLOR_array__Array__with_native
]))(var126
, var128
, var127
) /* with_native on <var126:Array[Object]>*/;
7847 var130
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_string__Object__to_s
]))(var126
) /* to_s on <var126:Array[Object]>*/;
7850 file__OFStream__write(var_stream
, var130
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7853 var132
= varonce131
;
7855 var133
= "if(strcmp(procname,map[i].name) == 0){";
7857 var135
= string__NativeString__to_s_with_length(var133
, var134
);
7859 varonce131
= var132
;
7862 file__OFStream__write(var_stream
, var132
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7865 var137
= varonce136
;
7867 var138
= "free(procname);";
7869 var140
= string__NativeString__to_s_with_length(var138
, var139
);
7871 varonce136
= var137
;
7874 file__OFStream__write(var_stream
, var137
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7877 var142
= varonce141
;
7879 var143
= "return map[i].nit_name;";
7881 var145
= string__NativeString__to_s_with_length(var143
, var144
);
7883 varonce141
= var142
;
7886 file__OFStream__write(var_stream
, var142
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7889 var147
= varonce146
;
7893 var150
= string__NativeString__to_s_with_length(var148
, var149
);
7895 varonce146
= var147
;
7898 file__OFStream__write(var_stream
, var147
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7901 var152
= varonce151
;
7905 var155
= string__NativeString__to_s_with_length(var153
, var154
);
7907 varonce151
= var152
;
7910 file__OFStream__write(var_stream
, var152
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7913 var157
= varonce156
;
7915 var158
= "free(procname);";
7917 var160
= string__NativeString__to_s_with_length(var158
, var159
);
7919 varonce156
= var157
;
7922 file__OFStream__write(var_stream
, var157
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7925 var162
= varonce161
;
7927 var163
= "return NULL;";
7929 var165
= string__NativeString__to_s_with_length(var163
, var164
);
7931 varonce161
= var162
;
7934 file__OFStream__write(var_stream
, var162
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7937 var167
= varonce166
;
7941 var170
= string__NativeString__to_s_with_length(var168
, var169
);
7943 varonce166
= var167
;
7946 file__OFStream__write(var_stream
, var167
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7949 file__OFStream__close(var_stream
); /* Direct call file#OFStream#close on <var_stream:OFStream>*/
7951 var171
= NEW_file__OFStream(&type_file__OFStream
);
7953 var173
= varonce172
;
7955 var174
= "/c_functions_hash.h";
7957 var176
= string__NativeString__to_s_with_length(var174
, var175
);
7959 varonce172
= var173
;
7961 var177
= NEW_array__Array(&type_array__Arraykernel__Object
);
7962 { /* var177 = array_instance Array[Object] */
7964 var179
= NEW_array__NativeArray(var178
, &type_array__NativeArraykernel__Object
);
7965 ((struct instance_array__NativeArray
*)var179
)->values
[0] = (val
*) var_compile_dir
;
7966 ((struct instance_array__NativeArray
*)var179
)->values
[1] = (val
*) var173
;
7968 ((void (*)(val
*, val
*, long))(var177
->class->vft
[COLOR_array__Array__with_native
]))(var177
, var179
, var178
) /* with_native on <var177:Array[Object]>*/;
7972 var180
= ((val
* (*)(val
*))(var177
->class->vft
[COLOR_string__Object__to_s
]))(var177
) /* to_s on <var177:Array[Object]>*/;
7975 file__OFStream__open(var171
, var180
); /* Direct call file#OFStream#open on <var171:OFStream>*/
7977 var_stream
= var171
;
7979 var182
= varonce181
;
7981 var183
= "const char* get_nit_name(register const char* procname, register unsigned int len);\n";
7983 var185
= string__NativeString__to_s_with_length(var183
, var184
);
7985 varonce181
= var182
;
7988 file__OFStream__write(var_stream
, var182
); /* Direct call file#OFStream#write on <var_stream:OFStream>*/
7991 file__OFStream__close(var_stream
); /* Direct call file#OFStream#close on <var_stream:OFStream>*/
7994 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (self) on <self:AbstractCompiler> */
7995 var188
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___extern_bodies
].val
; /* _extern_bodies on <self:AbstractCompiler> */
7996 if (unlikely(var188
== NULL
)) {
7997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
7998 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 847);
8002 RET_LABEL187
:(void)0;
8005 var189
= NEW_c_tools__ExternCFile(&type_c_tools__ExternCFile
);
8007 var191
= varonce190
;
8009 var192
= "/c_functions_hash.c";
8011 var194
= string__NativeString__to_s_with_length(var192
, var193
);
8013 varonce190
= var191
;
8015 var195
= NEW_array__Array(&type_array__Arraykernel__Object
);
8016 { /* var195 = array_instance Array[Object] */
8018 var197
= NEW_array__NativeArray(var196
, &type_array__NativeArraykernel__Object
);
8019 ((struct instance_array__NativeArray
*)var197
)->values
[0] = (val
*) var_compile_dir
;
8020 ((struct instance_array__NativeArray
*)var197
)->values
[1] = (val
*) var191
;
8022 ((void (*)(val
*, val
*, long))(var195
->class->vft
[COLOR_array__Array__with_native
]))(var195
, var197
, var196
) /* with_native on <var195:Array[Object]>*/;
8026 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_string__Object__to_s
]))(var195
) /* to_s on <var195:Array[Object]>*/;
8029 var200
= varonce199
;
8033 var203
= string__NativeString__to_s_with_length(var201
, var202
);
8035 varonce199
= var200
;
8038 c_tools__ExternCFile__init(var189
, var198
, var200
); /* Direct call c_tools#ExternCFile#init on <var189:ExternCFile>*/
8041 array__Array__add(var186
, var189
); /* Direct call array#Array#add on <var186:Array[ExternFile]>*/
8045 /* method abstract_compiler#AbstractCompiler#build_c_to_nit_bindings for (self: Object) */
8046 void VIRTUAL_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(val
* self
) {
8047 abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(self
); /* Direct call abstract_compiler#AbstractCompiler#build_c_to_nit_bindings on <self:Object(AbstractCompiler)>*/
8050 /* method abstract_compiler#AbstractCompiler#compile_header for (self: AbstractCompiler) */
8051 void abstract_compiler__AbstractCompiler__compile_header(val
* self
) {
8052 val
* var
/* : CodeWriter */;
8053 val
* var2
/* : CodeWriter */;
8054 val
* var_v
/* var v: CodeWriter */;
8055 val
* var3
/* : ModelBuilder */;
8056 val
* var5
/* : ModelBuilder */;
8057 val
* var6
/* : ToolContext */;
8058 val
* var8
/* : ToolContext */;
8059 val
* var_toolctx
/* var toolctx: ToolContext */;
8060 val
* var9
/* : CodeWriter */;
8061 val
* var11
/* : CodeWriter */;
8062 static val
* varonce
;
8063 val
* var12
/* : String */;
8064 char* var13
/* : NativeString */;
8065 long var14
/* : Int */;
8066 val
* var15
/* : FlatString */;
8067 val
* var16
/* : CodeWriter */;
8068 val
* var18
/* : CodeWriter */;
8069 static val
* varonce19
;
8070 val
* var20
/* : String */;
8071 char* var21
/* : NativeString */;
8072 long var22
/* : Int */;
8073 val
* var23
/* : FlatString */;
8074 val
* var24
/* : CodeWriter */;
8075 val
* var26
/* : CodeWriter */;
8076 static val
* varonce27
;
8077 val
* var28
/* : String */;
8078 char* var29
/* : NativeString */;
8079 long var30
/* : Int */;
8080 val
* var31
/* : FlatString */;
8081 val
* var32
/* : CodeWriter */;
8082 val
* var34
/* : CodeWriter */;
8083 static val
* varonce35
;
8084 val
* var36
/* : String */;
8085 char* var37
/* : NativeString */;
8086 long var38
/* : Int */;
8087 val
* var39
/* : FlatString */;
8088 val
* var40
/* : CodeWriter */;
8089 val
* var42
/* : CodeWriter */;
8090 static val
* varonce43
;
8091 val
* var44
/* : String */;
8092 char* var45
/* : NativeString */;
8093 long var46
/* : Int */;
8094 val
* var47
/* : FlatString */;
8095 val
* var48
/* : CodeWriter */;
8096 val
* var50
/* : CodeWriter */;
8097 static val
* varonce51
;
8098 val
* var52
/* : String */;
8099 char* var53
/* : NativeString */;
8100 long var54
/* : Int */;
8101 val
* var55
/* : FlatString */;
8102 val
* var56
/* : CodeWriter */;
8103 val
* var58
/* : CodeWriter */;
8104 static val
* varonce59
;
8105 val
* var60
/* : String */;
8106 char* var61
/* : NativeString */;
8107 long var62
/* : Int */;
8108 val
* var63
/* : FlatString */;
8109 val
* var64
/* : CodeWriter */;
8110 val
* var66
/* : CodeWriter */;
8111 static val
* varonce67
;
8112 val
* var68
/* : String */;
8113 char* var69
/* : NativeString */;
8114 long var70
/* : Int */;
8115 val
* var71
/* : FlatString */;
8116 val
* var72
/* : CodeWriter */;
8117 val
* var74
/* : CodeWriter */;
8118 static val
* varonce75
;
8119 val
* var76
/* : String */;
8120 char* var77
/* : NativeString */;
8121 long var78
/* : Int */;
8122 val
* var79
/* : FlatString */;
8123 val
* var80
/* : CodeWriter */;
8124 val
* var82
/* : CodeWriter */;
8125 static val
* varonce83
;
8126 val
* var84
/* : String */;
8127 char* var85
/* : NativeString */;
8128 long var86
/* : Int */;
8129 val
* var87
/* : FlatString */;
8130 val
* var88
/* : ModelBuilder */;
8131 val
* var90
/* : ModelBuilder */;
8132 val
* var91
/* : ToolContext */;
8133 val
* var93
/* : ToolContext */;
8134 val
* var94
/* : OptionArray */;
8135 val
* var96
/* : OptionArray */;
8136 val
* var97
/* : nullable Object */;
8137 val
* var99
/* : nullable Object */;
8138 val
* var_gccd_disable
/* var gccd_disable: Array[String] */;
8139 short int var100
/* : Bool */;
8140 static val
* varonce101
;
8141 val
* var102
/* : String */;
8142 char* var103
/* : NativeString */;
8143 long var104
/* : Int */;
8144 val
* var105
/* : FlatString */;
8145 short int var106
/* : Bool */;
8146 short int var_
/* var : Bool */;
8147 static val
* varonce107
;
8148 val
* var108
/* : String */;
8149 char* var109
/* : NativeString */;
8150 long var110
/* : Int */;
8151 val
* var111
/* : FlatString */;
8152 short int var112
/* : Bool */;
8153 val
* var113
/* : CodeWriter */;
8154 val
* var115
/* : CodeWriter */;
8155 static val
* varonce116
;
8156 val
* var117
/* : String */;
8157 char* var118
/* : NativeString */;
8158 long var119
/* : Int */;
8159 val
* var120
/* : FlatString */;
8160 val
* var121
/* : CodeWriter */;
8161 val
* var123
/* : CodeWriter */;
8162 static val
* varonce124
;
8163 val
* var125
/* : String */;
8164 char* var126
/* : NativeString */;
8165 long var127
/* : Int */;
8166 val
* var128
/* : FlatString */;
8167 short int var129
/* : Bool */;
8168 static val
* varonce130
;
8169 val
* var131
/* : String */;
8170 char* var132
/* : NativeString */;
8171 long var133
/* : Int */;
8172 val
* var134
/* : FlatString */;
8173 short int var135
/* : Bool */;
8174 short int var_136
/* var : Bool */;
8175 static val
* varonce137
;
8176 val
* var138
/* : String */;
8177 char* var139
/* : NativeString */;
8178 long var140
/* : Int */;
8179 val
* var141
/* : FlatString */;
8180 short int var142
/* : Bool */;
8181 val
* var143
/* : CodeWriter */;
8182 val
* var145
/* : CodeWriter */;
8183 static val
* varonce146
;
8184 val
* var147
/* : String */;
8185 char* var148
/* : NativeString */;
8186 long var149
/* : Int */;
8187 val
* var150
/* : FlatString */;
8188 val
* var151
/* : CodeWriter */;
8189 val
* var153
/* : CodeWriter */;
8190 static val
* varonce154
;
8191 val
* var155
/* : String */;
8192 char* var156
/* : NativeString */;
8193 long var157
/* : Int */;
8194 val
* var158
/* : FlatString */;
8195 static val
* varonce159
;
8196 val
* var160
/* : String */;
8197 char* var161
/* : NativeString */;
8198 long var162
/* : Int */;
8199 val
* var163
/* : FlatString */;
8200 short int var164
/* : Bool */;
8201 val
* var165
/* : CodeWriter */;
8202 val
* var167
/* : CodeWriter */;
8203 static val
* varonce168
;
8204 val
* var169
/* : String */;
8205 char* var170
/* : NativeString */;
8206 long var171
/* : Int */;
8207 val
* var172
/* : FlatString */;
8208 val
* var173
/* : CodeWriter */;
8209 val
* var175
/* : CodeWriter */;
8210 static val
* varonce176
;
8211 val
* var177
/* : String */;
8212 char* var178
/* : NativeString */;
8213 long var179
/* : Int */;
8214 val
* var180
/* : FlatString */;
8215 val
* var181
/* : CodeWriter */;
8216 val
* var183
/* : CodeWriter */;
8217 static val
* varonce184
;
8218 val
* var185
/* : String */;
8219 char* var186
/* : NativeString */;
8220 long var187
/* : Int */;
8221 val
* var188
/* : FlatString */;
8222 val
* var189
/* : CodeWriter */;
8223 val
* var191
/* : CodeWriter */;
8224 static val
* varonce192
;
8225 val
* var193
/* : String */;
8226 char* var194
/* : NativeString */;
8227 long var195
/* : Int */;
8228 val
* var196
/* : FlatString */;
8229 val
* var197
/* : CodeWriter */;
8230 val
* var199
/* : CodeWriter */;
8231 static val
* varonce200
;
8232 val
* var201
/* : String */;
8233 char* var202
/* : NativeString */;
8234 long var203
/* : Int */;
8235 val
* var204
/* : FlatString */;
8236 val
* var205
/* : CodeWriter */;
8237 val
* var207
/* : CodeWriter */;
8238 static val
* varonce208
;
8239 val
* var209
/* : String */;
8240 char* var210
/* : NativeString */;
8241 long var211
/* : Int */;
8242 val
* var212
/* : FlatString */;
8243 val
* var213
/* : CodeWriter */;
8244 val
* var215
/* : CodeWriter */;
8245 static val
* varonce216
;
8246 val
* var217
/* : String */;
8247 char* var218
/* : NativeString */;
8248 long var219
/* : Int */;
8249 val
* var220
/* : FlatString */;
8251 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8252 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8253 if (unlikely(var2
== NULL
)) {
8254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8255 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8264 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
8265 var5
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
8266 if (unlikely(var5
== NULL
)) {
8267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8268 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
8276 { /* Inline modelbuilder#ModelBuilder#toolcontext (var3) on <var3:ModelBuilder> */
8277 var8
= var3
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var3:ModelBuilder> */
8278 if (unlikely(var8
== NULL
)) {
8279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8280 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
8289 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8290 var11
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8291 if (unlikely(var11
== NULL
)) {
8292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8293 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8297 RET_LABEL10
:(void)0;
8303 var13
= "#include <stdlib.h>";
8305 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8310 abstract_compiler__CodeWriter__add_decl(var9
, var12
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var9:CodeWriter>*/
8313 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8314 var18
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8315 if (unlikely(var18
== NULL
)) {
8316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8317 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8321 RET_LABEL17
:(void)0;
8327 var21
= "#include <stdio.h>";
8329 var23
= string__NativeString__to_s_with_length(var21
, var22
);
8334 abstract_compiler__CodeWriter__add_decl(var16
, var20
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var16:CodeWriter>*/
8337 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8338 var26
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8339 if (unlikely(var26
== NULL
)) {
8340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8341 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8345 RET_LABEL25
:(void)0;
8351 var29
= "#include <string.h>";
8353 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8358 abstract_compiler__CodeWriter__add_decl(var24
, var28
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var24:CodeWriter>*/
8361 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8362 var34
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8363 if (unlikely(var34
== NULL
)) {
8364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8365 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8369 RET_LABEL33
:(void)0;
8375 var37
= "#include \"gc_chooser.h\"";
8377 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8382 abstract_compiler__CodeWriter__add_decl(var32
, var36
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var32:CodeWriter>*/
8385 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8386 var42
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8387 if (unlikely(var42
== NULL
)) {
8388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8389 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8393 RET_LABEL41
:(void)0;
8399 var45
= "#ifdef ANDROID";
8401 var47
= string__NativeString__to_s_with_length(var45
, var46
);
8406 abstract_compiler__CodeWriter__add_decl(var40
, var44
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var40:CodeWriter>*/
8409 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8410 var50
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8411 if (unlikely(var50
== NULL
)) {
8412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8413 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8417 RET_LABEL49
:(void)0;
8423 var53
= "\11#include <android/log.h>";
8425 var55
= string__NativeString__to_s_with_length(var53
, var54
);
8430 abstract_compiler__CodeWriter__add_decl(var48
, var52
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var48:CodeWriter>*/
8433 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8434 var58
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8435 if (unlikely(var58
== NULL
)) {
8436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8437 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8441 RET_LABEL57
:(void)0;
8447 var61
= "\11#define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)";
8449 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8454 abstract_compiler__CodeWriter__add_decl(var56
, var60
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var56:CodeWriter>*/
8457 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8458 var66
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8459 if (unlikely(var66
== NULL
)) {
8460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8461 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8465 RET_LABEL65
:(void)0;
8473 var71
= string__NativeString__to_s_with_length(var69
, var70
);
8478 abstract_compiler__CodeWriter__add_decl(var64
, var68
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var64:CodeWriter>*/
8481 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8482 var74
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8483 if (unlikely(var74
== NULL
)) {
8484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8485 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8489 RET_LABEL73
:(void)0;
8495 var77
= "\11#define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)";
8497 var79
= string__NativeString__to_s_with_length(var77
, var78
);
8502 abstract_compiler__CodeWriter__add_decl(var72
, var76
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var72:CodeWriter>*/
8505 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8506 var82
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8507 if (unlikely(var82
== NULL
)) {
8508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8509 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8513 RET_LABEL81
:(void)0;
8521 var87
= string__NativeString__to_s_with_length(var85
, var86
);
8526 abstract_compiler__CodeWriter__add_decl(var80
, var84
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var80:CodeWriter>*/
8529 ((void (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header_structs
]))(self
) /* compile_header_structs on <self:AbstractCompiler>*/;
8532 separate_compiler__SeparateCompiler__compile_nitni_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_nitni_structs on <self:AbstractCompiler>*/
8535 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
8536 var90
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:AbstractCompiler> */
8537 if (unlikely(var90
== NULL
)) {
8538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8539 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
8543 RET_LABEL89
:(void)0;
8547 { /* Inline modelbuilder#ModelBuilder#toolcontext (var88) on <var88:ModelBuilder> */
8548 var93
= var88
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var88:ModelBuilder> */
8549 if (unlikely(var93
== NULL
)) {
8550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8551 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
8555 RET_LABEL92
:(void)0;
8559 { /* Inline abstract_compiler#ToolContext#opt_no_gcc_directive (var91) on <var91:ToolContext> */
8560 var96
= var91
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_gcc_directive
].val
; /* _opt_no_gcc_directive on <var91:ToolContext> */
8561 if (unlikely(var96
== NULL
)) {
8562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_gcc_directive");
8563 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 64);
8567 RET_LABEL95
:(void)0;
8571 { /* Inline opts#Option#value (var94) on <var94:OptionArray> */
8572 var99
= var94
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var94:OptionArray> */
8574 RET_LABEL98
:(void)0;
8577 var_gccd_disable
= var97
;
8579 var102
= varonce101
;
8581 var103
= "noreturn";
8583 var105
= string__NativeString__to_s_with_length(var103
, var104
);
8585 varonce101
= var102
;
8588 var106
= array__AbstractArrayRead__has(var_gccd_disable
, var102
);
8595 var108
= varonce107
;
8599 var111
= string__NativeString__to_s_with_length(var109
, var110
);
8601 varonce107
= var108
;
8604 var112
= array__AbstractArrayRead__has(var_gccd_disable
, var108
);
8610 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8611 var115
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8612 if (unlikely(var115
== NULL
)) {
8613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8614 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8618 RET_LABEL114
:(void)0;
8622 var117
= varonce116
;
8624 var118
= "void show_backtrace(int);";
8626 var120
= string__NativeString__to_s_with_length(var118
, var119
);
8628 varonce116
= var117
;
8631 abstract_compiler__CodeWriter__add_decl(var113
, var117
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var113:CodeWriter>*/
8635 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8636 var123
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8637 if (unlikely(var123
== NULL
)) {
8638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8639 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8643 RET_LABEL122
:(void)0;
8647 var125
= varonce124
;
8649 var126
= "void show_backtrace(int) __attribute__ ((noreturn));";
8651 var128
= string__NativeString__to_s_with_length(var126
, var127
);
8653 varonce124
= var125
;
8656 abstract_compiler__CodeWriter__add_decl(var121
, var125
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var121:CodeWriter>*/
8660 var131
= varonce130
;
8664 var134
= string__NativeString__to_s_with_length(var132
, var133
);
8666 varonce130
= var131
;
8669 var135
= array__AbstractArrayRead__has(var_gccd_disable
, var131
);
8676 var138
= varonce137
;
8680 var141
= string__NativeString__to_s_with_length(var139
, var140
);
8682 varonce137
= var138
;
8685 var142
= array__AbstractArrayRead__has(var_gccd_disable
, var138
);
8691 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8692 var145
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8693 if (unlikely(var145
== NULL
)) {
8694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8695 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8699 RET_LABEL144
:(void)0;
8703 var147
= varonce146
;
8705 var148
= "#define likely(x) (x)";
8707 var150
= string__NativeString__to_s_with_length(var148
, var149
);
8709 varonce146
= var147
;
8712 abstract_compiler__CodeWriter__add_decl(var143
, var147
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var143:CodeWriter>*/
8715 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8716 var153
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8717 if (unlikely(var153
== NULL
)) {
8718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8719 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8723 RET_LABEL152
:(void)0;
8727 var155
= varonce154
;
8729 var156
= "#define unlikely(x) (x)";
8731 var158
= string__NativeString__to_s_with_length(var156
, var157
);
8733 varonce154
= var155
;
8736 abstract_compiler__CodeWriter__add_decl(var151
, var155
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var151:CodeWriter>*/
8740 var160
= varonce159
;
8742 var161
= "correct-likely";
8744 var163
= string__NativeString__to_s_with_length(var161
, var162
);
8746 varonce159
= var160
;
8749 var164
= array__AbstractArrayRead__has(var_gccd_disable
, var160
);
8753 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8754 var167
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8755 if (unlikely(var167
== NULL
)) {
8756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8757 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8761 RET_LABEL166
:(void)0;
8765 var169
= varonce168
;
8767 var170
= "#define likely(x) __builtin_expect((x),0)";
8769 var172
= string__NativeString__to_s_with_length(var170
, var171
);
8771 varonce168
= var169
;
8774 abstract_compiler__CodeWriter__add_decl(var165
, var169
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var165:CodeWriter>*/
8777 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8778 var175
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8779 if (unlikely(var175
== NULL
)) {
8780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8781 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8785 RET_LABEL174
:(void)0;
8789 var177
= varonce176
;
8791 var178
= "#define unlikely(x) __builtin_expect((x),1)";
8793 var180
= string__NativeString__to_s_with_length(var178
, var179
);
8795 varonce176
= var177
;
8798 abstract_compiler__CodeWriter__add_decl(var173
, var177
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var173:CodeWriter>*/
8802 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8803 var183
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8804 if (unlikely(var183
== NULL
)) {
8805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8806 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8810 RET_LABEL182
:(void)0;
8814 var185
= varonce184
;
8816 var186
= "#define likely(x) __builtin_expect((x),1)";
8818 var188
= string__NativeString__to_s_with_length(var186
, var187
);
8820 varonce184
= var185
;
8823 abstract_compiler__CodeWriter__add_decl(var181
, var185
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var181:CodeWriter>*/
8826 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8827 var191
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8828 if (unlikely(var191
== NULL
)) {
8829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8830 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8834 RET_LABEL190
:(void)0;
8838 var193
= varonce192
;
8840 var194
= "#define unlikely(x) __builtin_expect((x),0)";
8842 var196
= string__NativeString__to_s_with_length(var194
, var195
);
8844 varonce192
= var193
;
8847 abstract_compiler__CodeWriter__add_decl(var189
, var193
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var189:CodeWriter>*/
8852 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8853 var199
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8854 if (unlikely(var199
== NULL
)) {
8855 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8856 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8860 RET_LABEL198
:(void)0;
8864 var201
= varonce200
;
8866 var202
= "extern int glob_argc;";
8868 var204
= string__NativeString__to_s_with_length(var202
, var203
);
8870 varonce200
= var201
;
8873 abstract_compiler__CodeWriter__add_decl(var197
, var201
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var197:CodeWriter>*/
8876 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8877 var207
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8878 if (unlikely(var207
== NULL
)) {
8879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8880 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8884 RET_LABEL206
:(void)0;
8888 var209
= varonce208
;
8890 var210
= "extern char **glob_argv;";
8892 var212
= string__NativeString__to_s_with_length(var210
, var211
);
8894 varonce208
= var209
;
8897 abstract_compiler__CodeWriter__add_decl(var205
, var209
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var205:CodeWriter>*/
8900 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8901 var215
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8902 if (unlikely(var215
== NULL
)) {
8903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8904 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8908 RET_LABEL214
:(void)0;
8912 var217
= varonce216
;
8914 var218
= "extern val *glob_sys;";
8916 var220
= string__NativeString__to_s_with_length(var218
, var219
);
8918 varonce216
= var217
;
8921 abstract_compiler__CodeWriter__add_decl(var213
, var217
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var213:CodeWriter>*/
8925 /* method abstract_compiler#AbstractCompiler#compile_header for (self: Object) */
8926 void VIRTUAL_abstract_compiler__AbstractCompiler__compile_header(val
* self
) {
8927 abstract_compiler__AbstractCompiler__compile_header(self
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <self:Object(AbstractCompiler)>*/
8930 /* method abstract_compiler#AbstractCompiler#compile_nitni_structs for (self: AbstractCompiler) */
8931 void abstract_compiler__AbstractCompiler__compile_nitni_structs(val
* self
) {
8932 val
* var
/* : CodeWriter */;
8933 val
* var2
/* : CodeWriter */;
8934 static val
* varonce
;
8935 val
* var3
/* : String */;
8936 char* var4
/* : NativeString */;
8937 long var5
/* : Int */;
8938 val
* var6
/* : FlatString */;
8940 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:AbstractCompiler> */
8941 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:AbstractCompiler> */
8942 if (unlikely(var2
== NULL
)) {
8943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
8944 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
8954 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";
8956 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8961 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
8965 /* method abstract_compiler#AbstractCompiler#compile_nitni_structs for (self: Object) */
8966 void VIRTUAL_abstract_compiler__AbstractCompiler__compile_nitni_structs(val
* self
) {
8967 abstract_compiler__AbstractCompiler__compile_nitni_structs(self
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_structs on <self:Object(AbstractCompiler)>*/