1 #include "nit__light_ffi_base.sep.0.h"
2 /* method light_ffi_base#ToolContext#ffi_language_assignation_phase for (self: ToolContext): Phase */
3 val
* nit__light_ffi_base___ToolContext___ffi_language_assignation_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nit__light_ffi_base__ToolContext___ffi_language_assignation_phase
].val
; /* _ffi_language_assignation_phase on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_language_assignation_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 26);
16 /* method light_ffi_base#FFILanguageAssignationPhase#languages for (self: FFILanguageAssignationPhase): Array[FFILanguage] */
17 val
* nit___nit__FFILanguageAssignationPhase___languages(val
* self
) {
18 val
* var
/* : Array[FFILanguage] */;
19 val
* var1
/* : Array[FFILanguage] */;
20 var1
= self
->attrs
[COLOR_nit__light_ffi_base__FFILanguageAssignationPhase___languages
].val
; /* _languages on <self:FFILanguageAssignationPhase> */
21 if (unlikely(var1
== NULL
)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _languages");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 36);
30 /* method light_ffi_base#FFILanguageAssignationPhase#process_nmodule for (self: FFILanguageAssignationPhase, AModule) */
31 void nit___nit__FFILanguageAssignationPhase___nit__phase__Phase__process_nmodule(val
* self
, val
* p0
) {
32 val
* var_nmodule
/* var nmodule: AModule */;
33 val
* var
/* : ANodes[AExternCodeBlock] */;
34 val
* var2
/* : ANodes[AExternCodeBlock] */;
35 val
* var_
/* var : ANodes[AExternCodeBlock] */;
36 val
* var3
/* : Iterator[ANode] */;
37 val
* var_4
/* var : Iterator[AExternCodeBlock] */;
38 short int var5
/* : Bool */;
39 val
* var6
/* : nullable Object */;
40 val
* var_block
/* var block: AExternCodeBlock */;
43 { /* Inline parser_nodes#AModule#n_extern_code_blocks (var_nmodule) on <var_nmodule:AModule> */
44 var2
= var_nmodule
->attrs
[COLOR_nit__parser_nodes__AModule___n_extern_code_blocks
].val
; /* _n_extern_code_blocks on <var_nmodule:AModule> */
45 if (unlikely(var2
== NULL
)) {
46 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
47 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1093);
56 var3
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
61 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExternCodeBlock]>*/
65 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExternCodeBlock]>*/
69 nit___nit__FFILanguageAssignationPhase___verify_foreign_code_on_node(self
, var_block
); /* Direct call light_ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node on <self:FFILanguageAssignationPhase>*/
72 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AExternCodeBlock]>*/
80 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AExternCodeBlock]>*/
84 /* method light_ffi_base#FFILanguageAssignationPhase#process_npropdef for (self: FFILanguageAssignationPhase, APropdef) */
85 void nit___nit__FFILanguageAssignationPhase___nit__phase__Phase__process_npropdef(val
* self
, val
* p0
) {
86 val
* var_npropdef
/* var npropdef: APropdef */;
87 short int var
/* : Bool */;
90 val
* var1
/* : nullable AExternCodeBlock */;
91 val
* var3
/* : nullable AExternCodeBlock */;
92 val
* var_code_block
/* var code_block: nullable AExternCodeBlock */;
93 short int var4
/* : Bool */;
94 short int var5
/* : Bool */;
95 val
* var_other
/* var other: nullable Object */;
96 short int var7
/* : Bool */;
97 short int var8
/* : Bool */;
99 /* <var_npropdef:APropdef> isa AMethPropdef */
100 cltype
= type_nit__AMethPropdef
.color
;
101 idtype
= type_nit__AMethPropdef
.id
;
102 if(cltype
>= var_npropdef
->type
->table_size
) {
105 var
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
109 { /* Inline parser_nodes#AMethPropdef#n_extern_code_block (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
110 var3
= var_npropdef
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_npropdef:APropdef(AMethPropdef)> */
115 var_code_block
= var1
;
116 if (var_code_block
== NULL
) {
117 var4
= 0; /* is null */
119 var4
= 1; /* arg is null and recv is not */
122 { /* Inline kernel#Object#!= (var_code_block,((val*)NULL)) on <var_code_block:nullable AExternCodeBlock> */
123 var_other
= ((val
*)NULL
);
125 var7
= ((short int(*)(val
* self
, val
* p0
))(var_code_block
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_code_block
, var_other
); /* == on <var_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/
136 nit___nit__FFILanguageAssignationPhase___verify_foreign_code_on_node(self
, var_code_block
); /* Direct call light_ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node on <self:FFILanguageAssignationPhase>*/
144 /* method light_ffi_base#FFILanguageAssignationPhase#process_nclassdef for (self: FFILanguageAssignationPhase, AClassdef) */
145 void nit___nit__FFILanguageAssignationPhase___nit__phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
146 val
* var_nclassdef
/* var nclassdef: AClassdef */;
147 short int var
/* : Bool */;
148 short int var1
/* : Bool */;
151 short int var_
/* var : Bool */;
152 val
* var2
/* : nullable AExternCodeBlock */;
153 val
* var4
/* : nullable AExternCodeBlock */;
154 short int var5
/* : Bool */;
155 short int var6
/* : Bool */;
156 val
* var_other
/* var other: nullable Object */;
157 short int var8
/* : Bool */;
158 short int var9
/* : Bool */;
159 val
* var10
/* : nullable AExternCodeBlock */;
160 val
* var12
/* : nullable AExternCodeBlock */;
162 /* <var_nclassdef:AClassdef> isa AStdClassdef */
163 cltype
= type_nit__AStdClassdef
.color
;
164 idtype
= type_nit__AStdClassdef
.id
;
165 if(cltype
>= var_nclassdef
->type
->table_size
) {
168 var1
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
173 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
174 var4
= var_nclassdef
->attrs
[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
180 var5
= 0; /* is null */
182 var5
= 1; /* arg is null and recv is not */
185 { /* Inline kernel#Object#!= (var2,((val*)NULL)) on <var2:nullable AExternCodeBlock> */
186 var_other
= ((val
*)NULL
);
188 var8
= ((short int(*)(val
* self
, val
* p0
))(var2
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var2
, var_other
); /* == on <var2:nullable AExternCodeBlock(AExternCodeBlock)>*/
203 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
204 var12
= var_nclassdef
->attrs
[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
209 if (unlikely(var10
== NULL
)) {
210 PRINT_ERROR("Runtime error: %s", "Cast failed");
211 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 59);
215 nit___nit__FFILanguageAssignationPhase___verify_foreign_code_on_node(self
, var10
); /* Direct call light_ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node on <self:FFILanguageAssignationPhase>*/
221 /* method light_ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node for (self: FFILanguageAssignationPhase, AExternCodeBlock) */
222 void nit___nit__FFILanguageAssignationPhase___verify_foreign_code_on_node(val
* self
, val
* p0
) {
223 val
* var_n
/* var n: AExternCodeBlock */;
224 short int var_found
/* var found: Bool */;
225 val
* var
/* : Array[FFILanguage] */;
226 val
* var2
/* : Array[FFILanguage] */;
227 val
* var_
/* var : Array[FFILanguage] */;
228 val
* var3
/* : ArrayIterator[nullable Object] */;
229 val
* var_4
/* var : ArrayIterator[FFILanguage] */;
230 short int var5
/* : Bool */;
231 val
* var6
/* : nullable Object */;
232 val
* var_v
/* var v: FFILanguage */;
233 short int var7
/* : Bool */;
234 short int var_identified
/* var identified: Bool */;
235 short int var8
/* : Bool */;
236 short int var_9
/* var : Bool */;
237 val
* var10
/* : ToolContext */;
238 val
* var12
/* : ToolContext */;
239 val
* var13
/* : Location */;
240 val
* var15
/* : Location */;
242 val
* var16
/* : String */;
243 char* var17
/* : NativeString */;
244 val
* var18
/* : FlatString */;
245 val
* var19
/* : Message */;
246 short int var21
/* : Bool */;
247 val
* var22
/* : ToolContext */;
248 val
* var24
/* : ToolContext */;
249 val
* var25
/* : Location */;
250 val
* var27
/* : Location */;
251 static val
* varonce28
;
252 val
* var29
/* : String */;
253 char* var30
/* : NativeString */;
254 val
* var31
/* : FlatString */;
255 val
* var32
/* : Message */;
259 { /* Inline light_ffi_base#FFILanguageAssignationPhase#languages (self) on <self:FFILanguageAssignationPhase> */
260 var2
= self
->attrs
[COLOR_nit__light_ffi_base__FFILanguageAssignationPhase___languages
].val
; /* _languages on <self:FFILanguageAssignationPhase> */
261 if (unlikely(var2
== NULL
)) {
262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _languages");
263 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 36);
272 var3
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
277 var5
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_4
);
281 var6
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_4
);
285 var7
= nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__identify_language(var_v
, var_n
);
287 var_identified
= var7
;
291 var8
= var_identified
;
297 { /* Inline phase#Phase#toolcontext (self) on <self:FFILanguageAssignationPhase> */
298 var12
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FFILanguageAssignationPhase> */
299 if (unlikely(var12
== NULL
)) {
300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
301 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 200);
309 { /* Inline parser_nodes#ANode#location (var_n) on <var_n:AExternCodeBlock> */
310 var15
= var_n
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var_n:AExternCodeBlock> */
311 if (unlikely(var15
== NULL
)) {
312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
313 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 24);
320 if (likely(varonce
!=NULL
)) {
323 var17
= "FFI Error: two languages identified as possible handlers.";
324 var18
= standard___standard__NativeString___to_s_with_length(var17
, 57l);
329 var19
= nit___nit__ToolContext___error(var10
, var13
, var16
);
334 { /* Inline light_ffi_base#AExternCodeBlock#language= (var_n,var_v) on <var_n:AExternCodeBlock> */
335 var_n
->attrs
[COLOR_nit__light_ffi_base__AExternCodeBlock___language
].val
= var_v
; /* _language on <var_n:AExternCodeBlock> */
343 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_4
); /* Direct call array#ArrayIterator#next on <var_4:ArrayIterator[FFILanguage]>*/
349 BREAK_label
: (void)0;
351 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_4
); /* Direct call array#ArrayIterator#finish on <var_4:ArrayIterator[FFILanguage]>*/
356 { /* Inline phase#Phase#toolcontext (self) on <self:FFILanguageAssignationPhase> */
357 var24
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FFILanguageAssignationPhase> */
358 if (unlikely(var24
== NULL
)) {
359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 200);
368 { /* Inline parser_nodes#ANode#location (var_n) on <var_n:AExternCodeBlock> */
369 var27
= var_n
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var_n:AExternCodeBlock> */
370 if (unlikely(var27
== NULL
)) {
371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 24);
379 if (likely(varonce28
!=NULL
)) {
382 var30
= "FFI Error: unsupported language.";
383 var31
= standard___standard__NativeString___to_s_with_length(var30
, 32l);
388 var32
= nit___nit__ToolContext___error(var22
, var25
, var29
);
394 /* method light_ffi_base#MModule#ffi_files for (self: MModule): Array[ExternFile] */
395 val
* nit__light_ffi_base___MModule___ffi_files(val
* self
) {
396 val
* var
/* : Array[ExternFile] */;
397 val
* var1
/* : Array[ExternFile] */;
398 var1
= self
->attrs
[COLOR_nit__light_ffi_base__MModule___ffi_files
].val
; /* _ffi_files on <self:MModule> */
399 if (unlikely(var1
== NULL
)) {
400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_files");
401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 82);
408 /* method light_ffi_base#AExternCodeBlock#language_name for (self: AExternCodeBlock): nullable String */
409 val
* nit__light_ffi_base___AExternCodeBlock___language_name(val
* self
) {
410 val
* var
/* : nullable String */;
411 val
* var1
/* : nullable AInLanguage */;
412 val
* var3
/* : nullable AInLanguage */;
413 short int var4
/* : Bool */;
414 short int var5
/* : Bool */;
415 val
* var_other
/* var other: nullable Object */;
416 short int var7
/* : Bool */;
417 short int var9
/* : Bool */;
418 val
* var10
/* : nullable AInLanguage */;
419 val
* var12
/* : nullable AInLanguage */;
420 val
* var13
/* : TString */;
421 val
* var15
/* : TString */;
422 val
* var16
/* : String */;
424 { /* Inline parser_nodes#AExternCodeBlock#n_in_language (self) on <self:AExternCodeBlock> */
425 var3
= self
->attrs
[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language
].val
; /* _n_in_language on <self:AExternCodeBlock> */
431 var4
= 1; /* is null */
433 var4
= 0; /* arg is null but recv is not */
436 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable AInLanguage> */
437 var_other
= ((val
*)NULL
);
439 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable AInLanguage(AInLanguage)> */
440 var9
= var1
== var_other
;
458 { /* Inline parser_nodes#AExternCodeBlock#n_in_language (self) on <self:AExternCodeBlock> */
459 var12
= self
->attrs
[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language
].val
; /* _n_in_language on <self:AExternCodeBlock> */
465 PRINT_ERROR("Runtime error: %s", "Receiver is null");
466 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 90);
469 { /* Inline parser_nodes#AInLanguage#n_string (var10) on <var10:nullable AInLanguage> */
470 if (unlikely(var10
== NULL
)) {
471 PRINT_ERROR("Runtime error: %s", "Receiver is null");
472 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2911);
475 var15
= var10
->attrs
[COLOR_nit__parser_nodes__AInLanguage___n_string
].val
; /* _n_string on <var10:nullable AInLanguage> */
476 if (unlikely(var15
== NULL
)) {
477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
478 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2911);
486 var16
= nit__light_ffi_base___TString___without_quotes(var13
);
493 /* method light_ffi_base#AExternCodeBlock#language_name_lowered for (self: AExternCodeBlock): nullable String */
494 val
* nit__light_ffi_base___AExternCodeBlock___language_name_lowered(val
* self
) {
495 val
* var
/* : nullable String */;
496 val
* var1
/* : nullable String */;
497 short int var2
/* : Bool */;
498 short int var3
/* : Bool */;
499 val
* var4
/* : nullable String */;
500 val
* var5
/* : String */;
502 var1
= nit__light_ffi_base___AExternCodeBlock___language_name(self
);
505 var2
= 1; /* is null */
507 var2
= 0; /* arg is null but recv is not */
510 var3
= ((short int(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var1
, ((val
*)NULL
)); /* == on <var1:nullable String>*/
519 var4
= nit__light_ffi_base___AExternCodeBlock___language_name(self
);
522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
523 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 96);
526 var5
= ((val
*(*)(val
* self
))(var4
->class->vft
[COLOR_standard__string__String__to_lower
]))(var4
); /* to_lower on <var4:nullable String>*/
533 /* method light_ffi_base#AExternCodeBlock#code for (self: AExternCodeBlock): String */
534 val
* nit__light_ffi_base___AExternCodeBlock___code(val
* self
) {
535 val
* var
/* : String */;
536 val
* var1
/* : TExternCodeSegment */;
537 val
* var3
/* : TExternCodeSegment */;
538 val
* var4
/* : String */;
540 { /* Inline parser_nodes#AExternCodeBlock#n_extern_code_segment (self) on <self:AExternCodeBlock> */
541 var3
= self
->attrs
[COLOR_nit__parser_nodes__AExternCodeBlock___n_extern_code_segment
].val
; /* _n_extern_code_segment on <self:AExternCodeBlock> */
542 if (unlikely(var3
== NULL
)) {
543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2922);
552 var4
= nit__light_ffi_base___TExternCodeSegment___without_guard(var1
);
559 /* method light_ffi_base#AExternCodeBlock#language for (self: AExternCodeBlock): nullable FFILanguage */
560 val
* nit__light_ffi_base___AExternCodeBlock___language(val
* self
) {
561 val
* var
/* : nullable FFILanguage */;
562 val
* var1
/* : nullable FFILanguage */;
563 var1
= self
->attrs
[COLOR_nit__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <self:AExternCodeBlock> */
568 /* method light_ffi_base#AExternCodeBlock#language= for (self: AExternCodeBlock, nullable FFILanguage) */
569 void nit__light_ffi_base___AExternCodeBlock___language_61d(val
* self
, val
* p0
) {
570 self
->attrs
[COLOR_nit__light_ffi_base__AExternCodeBlock___language
].val
= p0
; /* _language on <self:AExternCodeBlock> */
573 /* method light_ffi_base#FFILanguage#ffi_language_assignation_phase for (self: FFILanguage): FFILanguageAssignationPhase */
574 val
* nit___nit__FFILanguage___ffi_language_assignation_phase(val
* self
) {
575 val
* var
/* : FFILanguageAssignationPhase */;
576 val
* var1
/* : FFILanguageAssignationPhase */;
577 var1
= self
->attrs
[COLOR_nit__light_ffi_base__FFILanguage___ffi_language_assignation_phase
].val
; /* _ffi_language_assignation_phase on <self:FFILanguage> */
578 if (unlikely(var1
== NULL
)) {
579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_language_assignation_phase");
580 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 109);
587 /* method light_ffi_base#FFILanguage#ffi_language_assignation_phase= for (self: FFILanguage, FFILanguageAssignationPhase) */
588 void nit___nit__FFILanguage___ffi_language_assignation_phase_61d(val
* self
, val
* p0
) {
589 self
->attrs
[COLOR_nit__light_ffi_base__FFILanguage___ffi_language_assignation_phase
].val
= p0
; /* _ffi_language_assignation_phase on <self:FFILanguage> */
592 /* method light_ffi_base#FFILanguage#init for (self: FFILanguage) */
593 void nit___nit__FFILanguage___standard__kernel__Object__init(val
* self
) {
594 val
* var
/* : FFILanguageAssignationPhase */;
595 val
* var2
/* : FFILanguageAssignationPhase */;
596 val
* var3
/* : Array[FFILanguage] */;
597 val
* var5
/* : Array[FFILanguage] */;
599 { /* Inline light_ffi_base#FFILanguage#ffi_language_assignation_phase (self) on <self:FFILanguage> */
600 var2
= self
->attrs
[COLOR_nit__light_ffi_base__FFILanguage___ffi_language_assignation_phase
].val
; /* _ffi_language_assignation_phase on <self:FFILanguage> */
601 if (unlikely(var2
== NULL
)) {
602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_language_assignation_phase");
603 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 109);
611 { /* Inline light_ffi_base#FFILanguageAssignationPhase#languages (var) on <var:FFILanguageAssignationPhase> */
612 var5
= var
->attrs
[COLOR_nit__light_ffi_base__FFILanguageAssignationPhase___languages
].val
; /* _languages on <var:FFILanguageAssignationPhase> */
613 if (unlikely(var5
== NULL
)) {
614 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _languages");
615 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 36);
623 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, self
); /* Direct call array#Array#add on <var3:Array[FFILanguage]>*/
627 /* method light_ffi_base#TString#without_quotes for (self: TString): String */
628 val
* nit__light_ffi_base___TString___without_quotes(val
* self
) {
629 val
* var
/* : String */;
630 val
* var1
/* : String */;
631 long var2
/* : Int */;
632 short int var3
/* : Bool */;
633 short int var5
/* : Bool */;
636 const char* var_class_name
;
637 short int var6
/* : Bool */;
638 val
* var7
/* : String */;
639 val
* var8
/* : String */;
640 long var9
/* : Int */;
641 long var10
/* : Int */;
642 short int var12
/* : Bool */;
645 const char* var_class_name15
;
646 long var16
/* : Int */;
647 val
* var17
/* : Text */;
649 var1
= nit__lexer_work___Token___text(self
);
652 var2
= ((long(*)(val
* self
))(var1
->class->vft
[COLOR_standard__string__Text__length
]))(var1
); /* length on <var1:String>*/
655 { /* Inline kernel#Int#>= (var2,2l) on <var2:Int> */
656 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
657 /* <2l:Int> isa OTHER */
658 var5
= 1; /* easy <2l:Int> isa OTHER*/
659 if (unlikely(!var5
)) {
660 var_class_name
= type_standard__Int
.name
;
661 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
662 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 535);
671 if (unlikely(!var3
)) {
672 PRINT_ERROR("Runtime error: %s", "Assert failed");
673 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 142);
677 var7
= nit__lexer_work___Token___text(self
);
680 var8
= nit__lexer_work___Token___text(self
);
683 var9
= ((long(*)(val
* self
))(var8
->class->vft
[COLOR_standard__string__Text__length
]))(var8
); /* length on <var8:String>*/
686 { /* Inline kernel#Int#- (var9,2l) on <var9:Int> */
687 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
688 /* <2l:Int> isa OTHER */
689 var12
= 1; /* easy <2l:Int> isa OTHER*/
690 if (unlikely(!var12
)) {
691 var_class_name15
= type_standard__Int
.name
;
692 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15
);
693 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
703 var17
= ((val
*(*)(val
* self
, long p0
, long p1
))(var7
->class->vft
[COLOR_standard__string__Text__substring
]))(var7
, 1l, var10
); /* substring on <var7:String>*/
710 /* method light_ffi_base#TExternCodeSegment#without_guard for (self: TExternCodeSegment): String */
711 val
* nit__light_ffi_base___TExternCodeSegment___without_guard(val
* self
) {
712 val
* var
/* : String */;
713 val
* var1
/* : String */;
714 long var2
/* : Int */;
715 short int var3
/* : Bool */;
716 short int var5
/* : Bool */;
719 const char* var_class_name
;
720 short int var6
/* : Bool */;
721 val
* var7
/* : String */;
722 val
* var8
/* : String */;
723 long var9
/* : Int */;
724 long var10
/* : Int */;
725 short int var12
/* : Bool */;
728 const char* var_class_name15
;
729 long var16
/* : Int */;
730 val
* var17
/* : Text */;
732 var1
= nit__lexer_work___Token___text(self
);
735 var2
= ((long(*)(val
* self
))(var1
->class->vft
[COLOR_standard__string__Text__length
]))(var1
); /* length on <var1:String>*/
738 { /* Inline kernel#Int#>= (var2,4l) on <var2:Int> */
739 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
740 /* <4l:Int> isa OTHER */
741 var5
= 1; /* easy <4l:Int> isa OTHER*/
742 if (unlikely(!var5
)) {
743 var_class_name
= type_standard__Int
.name
;
744 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
745 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 535);
754 if (unlikely(!var3
)) {
755 PRINT_ERROR("Runtime error: %s", "Assert failed");
756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_ffi_base
, 151);
760 var7
= nit__lexer_work___Token___text(self
);
763 var8
= nit__lexer_work___Token___text(self
);
766 var9
= ((long(*)(val
* self
))(var8
->class->vft
[COLOR_standard__string__Text__length
]))(var8
); /* length on <var8:String>*/
769 { /* Inline kernel#Int#- (var9,4l) on <var9:Int> */
770 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
771 /* <4l:Int> isa OTHER */
772 var12
= 1; /* easy <4l:Int> isa OTHER*/
773 if (unlikely(!var12
)) {
774 var_class_name15
= type_standard__Int
.name
;
775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15
);
776 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
786 var17
= ((val
*(*)(val
* self
, long p0
, long p1
))(var7
->class->vft
[COLOR_standard__string__Text__substring
]))(var7
, 2l, var10
); /* substring on <var7:String>*/
793 /* method light_ffi_base#CCompilationUnit#write_as_impl for (self: CCompilationUnit, MModule, String) */
794 void nit__light_ffi_base___CCompilationUnit___write_as_impl(val
* self
, val
* p0
, val
* p1
) {
795 val
* var_mmodule
/* var mmodule: MModule */;
796 val
* var_compdir
/* var compdir: String */;
797 val
* var
/* : NativeArray[String] */;
799 static val
* varonce1
;
800 val
* var2
/* : String */;
801 char* var3
/* : NativeString */;
802 val
* var4
/* : FlatString */;
803 val
* var5
/* : String */;
804 val
* var6
/* : String */;
805 val
* var_base_name
/* var base_name: String */;
806 val
* var8
/* : NativeArray[String] */;
807 static val
* varonce7
;
808 static val
* varonce9
;
809 val
* var10
/* : String */;
810 char* var11
/* : NativeString */;
811 val
* var12
/* : FlatString */;
812 val
* var13
/* : String */;
813 val
* var_h_file
/* var h_file: String */;
814 val
* var15
/* : NativeArray[String] */;
815 static val
* varonce14
;
816 static val
* varonce16
;
817 val
* var17
/* : String */;
818 char* var18
/* : NativeString */;
819 val
* var19
/* : FlatString */;
820 val
* var20
/* : String */;
821 val
* var21
/* : String */;
822 val
* var22
/* : String */;
823 val
* var_guard
/* var guard: String */;
824 val
* var24
/* : NativeArray[String] */;
825 static val
* varonce23
;
826 static val
* varonce25
;
827 val
* var26
/* : String */;
828 char* var27
/* : NativeString */;
829 val
* var28
/* : FlatString */;
830 val
* var29
/* : String */;
831 val
* var30
/* : Array[String] */;
832 val
* var_
/* var : Array[String] */;
833 static val
* varonce31
;
834 val
* var32
/* : String */;
835 char* var33
/* : NativeString */;
836 val
* var34
/* : FlatString */;
837 val
* var36
/* : NativeArray[String] */;
838 static val
* varonce35
;
839 static val
* varonce37
;
840 val
* var38
/* : String */;
841 char* var39
/* : NativeString */;
842 val
* var40
/* : FlatString */;
843 val
* var41
/* : String */;
844 val
* var_c_file
/* var c_file: String */;
845 val
* var43
/* : NativeArray[String] */;
846 static val
* varonce42
;
847 static val
* varonce44
;
848 val
* var45
/* : String */;
849 char* var46
/* : NativeString */;
850 val
* var47
/* : FlatString */;
851 val
* var48
/* : String */;
852 val
* var49
/* : Array[String] */;
853 val
* var_50
/* var : Array[String] */;
854 static val
* varonce51
;
855 val
* var52
/* : String */;
856 char* var53
/* : NativeString */;
857 val
* var54
/* : FlatString */;
858 static val
* varonce55
;
859 val
* var56
/* : String */;
860 char* var57
/* : NativeString */;
861 val
* var58
/* : FlatString */;
862 static val
* varonce59
;
863 val
* var60
/* : String */;
864 char* var61
/* : NativeString */;
865 val
* var62
/* : FlatString */;
866 val
* var64
/* : NativeArray[String] */;
867 static val
* varonce63
;
868 static val
* varonce65
;
869 val
* var66
/* : String */;
870 char* var67
/* : NativeString */;
871 val
* var68
/* : FlatString */;
872 static val
* varonce69
;
873 val
* var70
/* : String */;
874 char* var71
/* : NativeString */;
875 val
* var72
/* : FlatString */;
876 val
* var73
/* : String */;
877 val
* var74
/* : Array[String] */;
878 val
* var76
/* : Array[String] */;
879 val
* var78
/* : NativeArray[String] */;
880 static val
* varonce77
;
881 static val
* varonce79
;
882 val
* var80
/* : String */;
883 char* var81
/* : NativeString */;
884 val
* var82
/* : FlatString */;
885 val
* var83
/* : String */;
888 if (unlikely(varonce
==NULL
)) {
889 var
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
890 if (likely(varonce1
!=NULL
)) {
894 var4
= standard___standard__NativeString___to_s_with_length(var3
, 5l);
898 ((struct instance_standard__NativeArray
*)var
)->values
[1]=var2
;
904 var5
= nit___nit__MModule___nit__model_base__MEntity__c_name(var_mmodule
);
906 ((struct instance_standard__NativeArray
*)var
)->values
[0]=var5
;
908 var6
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var
); /* native_to_s on <var:NativeArray[String]>*/
911 var_base_name
= var6
;
912 if (unlikely(varonce7
==NULL
)) {
913 var8
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
914 if (likely(varonce9
!=NULL
)) {
918 var12
= standard___standard__NativeString___to_s_with_length(var11
, 2l);
922 ((struct instance_standard__NativeArray
*)var8
)->values
[1]=var10
;
927 ((struct instance_standard__NativeArray
*)var8
)->values
[0]=var_base_name
;
929 var13
= ((val
*(*)(val
* self
))(var8
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var8
); /* native_to_s on <var8:NativeArray[String]>*/
933 if (unlikely(varonce14
==NULL
)) {
934 var15
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
935 if (likely(varonce16
!=NULL
)) {
939 var19
= standard___standard__NativeString___to_s_with_length(var18
, 6l);
943 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var17
;
949 var20
= nit___nit__MModule___nit__model_base__MEntity__c_name(var_mmodule
);
952 var21
= ((val
*(*)(val
* self
))(var20
->class->vft
[COLOR_standard__string__String__to_upper
]))(var20
); /* to_upper on <var20:String>*/
954 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var21
;
956 var22
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
960 if (unlikely(varonce23
==NULL
)) {
961 var24
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
962 if (likely(varonce25
!=NULL
)) {
966 var28
= standard___standard__NativeString___to_s_with_length(var27
, 1l);
970 ((struct instance_standard__NativeArray
*)var24
)->values
[1]=var26
;
975 ((struct instance_standard__NativeArray
*)var24
)->values
[0]=var_compdir
;
976 ((struct instance_standard__NativeArray
*)var24
)->values
[2]=var_h_file
;
978 var29
= ((val
*(*)(val
* self
))(var24
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var24
); /* native_to_s on <var24:NativeArray[String]>*/
981 var30
= NEW_standard__Array(&type_standard__Array__standard__String
);
983 standard___standard__Array___with_capacity(var30
, 1l); /* Direct call array#Array#with_capacity on <var30:Array[String]>*/
986 if (likely(varonce31
!=NULL
)) {
989 var33
= "<stdint.h>";
990 var34
= standard___standard__NativeString___to_s_with_length(var33
, 10l);
995 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var32
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
998 nit__light_ffi_base___CCompilationUnit___write_header_to_file(self
, var_mmodule
, var29
, var_
, var_guard
); /* Direct call light_ffi_base#CCompilationUnit#write_header_to_file on <self:CCompilationUnit>*/
1000 if (unlikely(varonce35
==NULL
)) {
1001 var36
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
1002 if (likely(varonce37
!=NULL
)) {
1006 var40
= standard___standard__NativeString___to_s_with_length(var39
, 2l);
1010 ((struct instance_standard__NativeArray
*)var36
)->values
[1]=var38
;
1015 ((struct instance_standard__NativeArray
*)var36
)->values
[0]=var_base_name
;
1017 var41
= ((val
*(*)(val
* self
))(var36
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var36
); /* native_to_s on <var36:NativeArray[String]>*/
1021 if (unlikely(varonce42
==NULL
)) {
1022 var43
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1023 if (likely(varonce44
!=NULL
)) {
1027 var47
= standard___standard__NativeString___to_s_with_length(var46
, 1l);
1031 ((struct instance_standard__NativeArray
*)var43
)->values
[1]=var45
;
1036 ((struct instance_standard__NativeArray
*)var43
)->values
[0]=var_compdir
;
1037 ((struct instance_standard__NativeArray
*)var43
)->values
[2]=var_c_file
;
1039 var48
= ((val
*(*)(val
* self
))(var43
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var43
); /* native_to_s on <var43:NativeArray[String]>*/
1042 var49
= NEW_standard__Array(&type_standard__Array__standard__String
);
1044 standard___standard__Array___with_capacity(var49
, 4l); /* Direct call array#Array#with_capacity on <var49:Array[String]>*/
1047 if (likely(varonce51
!=NULL
)) {
1050 var53
= "<stdlib.h>";
1051 var54
= standard___standard__NativeString___to_s_with_length(var53
, 10l);
1056 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_50
, var52
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1058 if (likely(varonce55
!=NULL
)) {
1061 var57
= "<stdio.h>";
1062 var58
= standard___standard__NativeString___to_s_with_length(var57
, 9l);
1067 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_50
, var56
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1069 if (likely(varonce59
!=NULL
)) {
1072 var61
= "<stdint.h>";
1073 var62
= standard___standard__NativeString___to_s_with_length(var61
, 10l);
1078 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_50
, var60
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1080 if (unlikely(varonce63
==NULL
)) {
1081 var64
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1082 if (likely(varonce65
!=NULL
)) {
1086 var68
= standard___standard__NativeString___to_s_with_length(var67
, 1l);
1090 ((struct instance_standard__NativeArray
*)var64
)->values
[0]=var66
;
1091 if (likely(varonce69
!=NULL
)) {
1095 var72
= standard___standard__NativeString___to_s_with_length(var71
, 1l);
1099 ((struct instance_standard__NativeArray
*)var64
)->values
[2]=var70
;
1104 ((struct instance_standard__NativeArray
*)var64
)->values
[1]=var_h_file
;
1106 var73
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
1110 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_50
, var73
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1113 nit__light_ffi_base___CCompilationUnit___write_body_to_file(self
, var_mmodule
, var48
, var_50
); /* Direct call light_ffi_base#CCompilationUnit#write_body_to_file on <self:CCompilationUnit>*/
1116 { /* Inline c_tools#CCompilationUnit#files (self) on <self:CCompilationUnit> */
1117 var76
= self
->attrs
[COLOR_nit__c_tools__CCompilationUnit___files
].val
; /* _files on <self:CCompilationUnit> */
1118 if (unlikely(var76
== NULL
)) {
1119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
1120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools
, 47);
1124 RET_LABEL75
:(void)0;
1127 if (unlikely(varonce77
==NULL
)) {
1128 var78
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1129 if (likely(varonce79
!=NULL
)) {
1133 var82
= standard___standard__NativeString___to_s_with_length(var81
, 1l);
1137 ((struct instance_standard__NativeArray
*)var78
)->values
[1]=var80
;
1142 ((struct instance_standard__NativeArray
*)var78
)->values
[0]=var_compdir
;
1143 ((struct instance_standard__NativeArray
*)var78
)->values
[2]=var_c_file
;
1145 var83
= ((val
*(*)(val
* self
))(var78
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var78
); /* native_to_s on <var78:NativeArray[String]>*/
1149 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var74
, var83
); /* Direct call array#Array#add on <var74:Array[String]>*/
1153 /* method light_ffi_base#CCompilationUnit#write_header_to_file for (self: CCompilationUnit, MModule, String, Array[String], String) */
1154 void nit__light_ffi_base___CCompilationUnit___write_header_to_file(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1155 val
* var_mmodule
/* var mmodule: MModule */;
1156 val
* var_file
/* var file: String */;
1157 val
* var_includes
/* var includes: Array[String] */;
1158 val
* var_guard
/* var guard: String */;
1159 val
* var
/* : FileWriter */;
1160 val
* var_stream
/* var stream: FileWriter */;
1161 val
* var1
/* : NativeArray[String] */;
1162 static val
* varonce
;
1163 static val
* varonce2
;
1164 val
* var3
/* : String */;
1165 char* var4
/* : NativeString */;
1166 val
* var5
/* : FlatString */;
1167 static val
* varonce6
;
1168 val
* var7
/* : String */;
1169 char* var8
/* : NativeString */;
1170 val
* var9
/* : FlatString */;
1171 val
* var10
/* : String */;
1172 val
* var12
/* : String */;
1173 val
* var13
/* : String */;
1174 val
* var_module_info
/* var module_info: String */;
1175 val
* var15
/* : NativeArray[String] */;
1176 static val
* varonce14
;
1177 static val
* varonce16
;
1178 val
* var17
/* : String */;
1179 char* var18
/* : NativeString */;
1180 val
* var19
/* : FlatString */;
1181 static val
* varonce20
;
1182 val
* var21
/* : String */;
1183 char* var22
/* : NativeString */;
1184 val
* var23
/* : FlatString */;
1185 val
* var24
/* : String */;
1186 val
* var26
/* : NativeArray[String] */;
1187 static val
* varonce25
;
1188 static val
* varonce27
;
1189 val
* var28
/* : String */;
1190 char* var29
/* : NativeString */;
1191 val
* var30
/* : FlatString */;
1192 static val
* varonce31
;
1193 val
* var32
/* : String */;
1194 char* var33
/* : NativeString */;
1195 val
* var34
/* : FlatString */;
1196 val
* var35
/* : String */;
1197 val
* var_
/* var : Array[String] */;
1198 val
* var36
/* : ArrayIterator[nullable Object] */;
1199 val
* var_37
/* var : ArrayIterator[String] */;
1200 short int var38
/* : Bool */;
1201 val
* var39
/* : nullable Object */;
1202 val
* var_incl
/* var incl: String */;
1203 val
* var41
/* : NativeArray[String] */;
1204 static val
* varonce40
;
1205 static val
* varonce42
;
1206 val
* var43
/* : String */;
1207 char* var44
/* : NativeString */;
1208 val
* var45
/* : FlatString */;
1209 static val
* varonce46
;
1210 val
* var47
/* : String */;
1211 char* var48
/* : NativeString */;
1212 val
* var49
/* : FlatString */;
1213 val
* var50
/* : String */;
1214 static val
* varonce51
;
1215 val
* var52
/* : String */;
1216 char* var53
/* : NativeString */;
1217 val
* var54
/* : FlatString */;
1222 var
= NEW_standard__FileWriter(&type_standard__FileWriter
);
1224 standard___standard__FileWriter___open(var
, var_file
); /* Direct call file#FileWriter#open on <var:FileWriter>*/
1227 if (unlikely(varonce
==NULL
)) {
1228 var1
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1229 if (likely(varonce2
!=NULL
)) {
1232 var4
= "/*\n\tExtern implementation of Nit module ";
1233 var5
= standard___standard__NativeString___to_s_with_length(var4
, 40l);
1237 ((struct instance_standard__NativeArray
*)var1
)->values
[0]=var3
;
1238 if (likely(varonce6
!=NULL
)) {
1242 var9
= standard___standard__NativeString___to_s_with_length(var8
, 4l);
1246 ((struct instance_standard__NativeArray
*)var1
)->values
[2]=var7
;
1252 { /* Inline mmodule#MModule#name (var_mmodule) on <var_mmodule:MModule> */
1253 var12
= var_mmodule
->attrs
[COLOR_nit__mmodule__MModule___name
].val
; /* _name on <var_mmodule:MModule> */
1254 if (unlikely(var12
== NULL
)) {
1255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1256 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 87);
1260 RET_LABEL11
:(void)0;
1263 ((struct instance_standard__NativeArray
*)var1
)->values
[1]=var10
;
1265 var13
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
1268 var_module_info
= var13
;
1270 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var_module_info
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1272 if (unlikely(varonce14
==NULL
)) {
1273 var15
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1274 if (likely(varonce16
!=NULL
)) {
1278 var19
= standard___standard__NativeString___to_s_with_length(var18
, 8l);
1282 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var17
;
1283 if (likely(varonce20
!=NULL
)) {
1287 var23
= standard___standard__NativeString___to_s_with_length(var22
, 1l);
1291 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var21
;
1296 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var_guard
;
1298 var24
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
1302 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var24
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1304 if (unlikely(varonce25
==NULL
)) {
1305 var26
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1306 if (likely(varonce27
!=NULL
)) {
1310 var30
= standard___standard__NativeString___to_s_with_length(var29
, 8l);
1314 ((struct instance_standard__NativeArray
*)var26
)->values
[0]=var28
;
1315 if (likely(varonce31
!=NULL
)) {
1319 var34
= standard___standard__NativeString___to_s_with_length(var33
, 2l);
1323 ((struct instance_standard__NativeArray
*)var26
)->values
[2]=var32
;
1328 ((struct instance_standard__NativeArray
*)var26
)->values
[1]=var_guard
;
1330 var35
= ((val
*(*)(val
* self
))(var26
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var26
); /* native_to_s on <var26:NativeArray[String]>*/
1334 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var35
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1336 var_
= var_includes
;
1338 var36
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1343 var38
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_37
);
1347 var39
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_37
);
1350 if (unlikely(varonce40
==NULL
)) {
1351 var41
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1352 if (likely(varonce42
!=NULL
)) {
1355 var44
= "#include ";
1356 var45
= standard___standard__NativeString___to_s_with_length(var44
, 9l);
1360 ((struct instance_standard__NativeArray
*)var41
)->values
[0]=var43
;
1361 if (likely(varonce46
!=NULL
)) {
1365 var49
= standard___standard__NativeString___to_s_with_length(var48
, 1l);
1369 ((struct instance_standard__NativeArray
*)var41
)->values
[2]=var47
;
1374 ((struct instance_standard__NativeArray
*)var41
)->values
[1]=var_incl
;
1376 var50
= ((val
*(*)(val
* self
))(var41
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var41
); /* native_to_s on <var41:NativeArray[String]>*/
1380 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var50
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1383 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_37
); /* Direct call array#ArrayIterator#next on <var_37:ArrayIterator[String]>*/
1389 BREAK_label
: (void)0;
1391 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_37
); /* Direct call array#ArrayIterator#finish on <var_37:ArrayIterator[String]>*/
1394 nit___nit__CCompilationUnit___compile_header_core(self
, var_stream
); /* Direct call c_tools#CCompilationUnit#compile_header_core on <self:CCompilationUnit>*/
1396 if (likely(varonce51
!=NULL
)) {
1400 var54
= standard___standard__NativeString___to_s_with_length(var53
, 7l);
1405 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var52
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1408 standard___standard__FileWriter___standard__stream__Stream__close(var_stream
); /* Direct call file#FileWriter#close on <var_stream:FileWriter>*/
1412 /* method light_ffi_base#CCompilationUnit#write_body_to_file for (self: CCompilationUnit, MModule, String, Array[String]) */
1413 void nit__light_ffi_base___CCompilationUnit___write_body_to_file(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1414 val
* var_mmodule
/* var mmodule: MModule */;
1415 val
* var_file
/* var file: String */;
1416 val
* var_includes
/* var includes: Array[String] */;
1417 val
* var
/* : FileWriter */;
1418 val
* var_stream
/* var stream: FileWriter */;
1419 val
* var1
/* : NativeArray[String] */;
1420 static val
* varonce
;
1421 static val
* varonce2
;
1422 val
* var3
/* : String */;
1423 char* var4
/* : NativeString */;
1424 val
* var5
/* : FlatString */;
1425 static val
* varonce6
;
1426 val
* var7
/* : String */;
1427 char* var8
/* : NativeString */;
1428 val
* var9
/* : FlatString */;
1429 val
* var10
/* : String */;
1430 val
* var12
/* : String */;
1431 val
* var13
/* : String */;
1432 val
* var_module_info
/* var module_info: String */;
1433 val
* var_
/* var : Array[String] */;
1434 val
* var14
/* : ArrayIterator[nullable Object] */;
1435 val
* var_15
/* var : ArrayIterator[String] */;
1436 short int var16
/* : Bool */;
1437 val
* var17
/* : nullable Object */;
1438 val
* var_incl
/* var incl: String */;
1439 val
* var19
/* : NativeArray[String] */;
1440 static val
* varonce18
;
1441 static val
* varonce20
;
1442 val
* var21
/* : String */;
1443 char* var22
/* : NativeString */;
1444 val
* var23
/* : FlatString */;
1445 static val
* varonce24
;
1446 val
* var25
/* : String */;
1447 char* var26
/* : NativeString */;
1448 val
* var27
/* : FlatString */;
1449 val
* var28
/* : String */;
1453 var
= NEW_standard__FileWriter(&type_standard__FileWriter
);
1455 standard___standard__FileWriter___open(var
, var_file
); /* Direct call file#FileWriter#open on <var:FileWriter>*/
1458 if (unlikely(varonce
==NULL
)) {
1459 var1
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1460 if (likely(varonce2
!=NULL
)) {
1463 var4
= "/*\n\tExtern implementation of Nit module ";
1464 var5
= standard___standard__NativeString___to_s_with_length(var4
, 40l);
1468 ((struct instance_standard__NativeArray
*)var1
)->values
[0]=var3
;
1469 if (likely(varonce6
!=NULL
)) {
1473 var9
= standard___standard__NativeString___to_s_with_length(var8
, 4l);
1477 ((struct instance_standard__NativeArray
*)var1
)->values
[2]=var7
;
1483 { /* Inline mmodule#MModule#name (var_mmodule) on <var_mmodule:MModule> */
1484 var12
= var_mmodule
->attrs
[COLOR_nit__mmodule__MModule___name
].val
; /* _name on <var_mmodule:MModule> */
1485 if (unlikely(var12
== NULL
)) {
1486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1487 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 87);
1491 RET_LABEL11
:(void)0;
1494 ((struct instance_standard__NativeArray
*)var1
)->values
[1]=var10
;
1496 var13
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
1499 var_module_info
= var13
;
1501 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var_module_info
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1503 var_
= var_includes
;
1505 var14
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1510 var16
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_15
);
1514 var17
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_15
);
1517 if (unlikely(varonce18
==NULL
)) {
1518 var19
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1519 if (likely(varonce20
!=NULL
)) {
1522 var22
= "#include ";
1523 var23
= standard___standard__NativeString___to_s_with_length(var22
, 9l);
1527 ((struct instance_standard__NativeArray
*)var19
)->values
[0]=var21
;
1528 if (likely(varonce24
!=NULL
)) {
1532 var27
= standard___standard__NativeString___to_s_with_length(var26
, 1l);
1536 ((struct instance_standard__NativeArray
*)var19
)->values
[2]=var25
;
1541 ((struct instance_standard__NativeArray
*)var19
)->values
[1]=var_incl
;
1543 var28
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
1547 standard___standard__FileWriter___standard__stream__Writer__write(var_stream
, var28
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1550 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_15
); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[String]>*/
1556 BREAK_label
: (void)0;
1558 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_15
); /* Direct call array#ArrayIterator#finish on <var_15:ArrayIterator[String]>*/
1561 nit___nit__CCompilationUnit___compile_body_core(self
, var_stream
); /* Direct call c_tools#CCompilationUnit#compile_body_core on <self:CCompilationUnit>*/
1564 standard___standard__FileWriter___standard__stream__Stream__close(var_stream
); /* Direct call file#FileWriter#close on <var_stream:FileWriter>*/
1568 /* method light_ffi_base#ForeignType#ctype for (self: ForeignType): String */
1569 val
* nit___nit__ForeignType___ctype(val
* self
) {
1570 val
* var
/* : String */;
1571 static val
* varonce
;
1572 val
* var1
/* : String */;
1573 char* var2
/* : NativeString */;
1574 val
* var3
/* : FlatString */;
1575 if (likely(varonce
!=NULL
)) {
1579 var3
= standard___standard__NativeString___to_s_with_length(var2
, 5l);