1 #include "nitc__light_ffi_base.sep.0.h"
2 /* method light_ffi_base#ToolContext#ffi_language_assignation_phase for (self: ToolContext): Phase */
3 val
* nitc__light_ffi_base___ToolContext___ffi_language_assignation_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nitc__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_nitc__light_ffi_base
, 26);
16 /* method light_ffi_base#FFILanguageAssignationPhase#languages for (self: FFILanguageAssignationPhase): Array[FFILanguage] */
17 val
* nitc___nitc__FFILanguageAssignationPhase___languages(val
* self
) {
18 val
* var
/* : Array[FFILanguage] */;
19 val
* var1
/* : Array[FFILanguage] */;
20 var1
= self
->attrs
[COLOR_nitc__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_nitc__light_ffi_base
, 36);
30 /* method light_ffi_base#FFILanguageAssignationPhase#process_nmodule for (self: FFILanguageAssignationPhase, AModule) */
31 void nitc___nitc__FFILanguageAssignationPhase___nitc__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_nitc__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_nitc__parser_nodes
, 1059);
56 var3
= nitc___nitc__ANodes___core__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_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExternCodeBlock]>*/
68 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExternCodeBlock]>*/
72 nitc___nitc__FFILanguageAssignationPhase___verify_foreign_code_on_node(self
, var_block
); /* Direct call light_ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node on <self:FFILanguageAssignationPhase>*/
75 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__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_core__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 nitc___nitc__FFILanguageAssignationPhase___nitc__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_nitc__AMethPropdef
.color
;
101 idtype
= type_nitc__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_nitc__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_core__kernel__Object___61d_61d
]))(var_code_block
, var_other
); /* == on <var_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/
136 nitc___nitc__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 nitc___nitc__FFILanguageAssignationPhase___nitc__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_nitc__AStdClassdef
.color
;
164 idtype
= type_nitc__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_nitc__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_core__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_nitc__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_nitc__light_ffi_base
, 59);
215 nitc___nitc__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 nitc___nitc__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
/* : IndexedIterator[nullable Object] */;
229 val
* var_4
/* var : IndexedIterator[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
/* : String */;
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
/* : String */;
255 val
* var32
/* : Message */;
259 { /* Inline light_ffi_base#FFILanguageAssignationPhase#languages (self) on <self:FFILanguageAssignationPhase> */
260 var2
= self
->attrs
[COLOR_nitc__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_nitc__light_ffi_base
, 36);
272 var3
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
277 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:IndexedIterator[FFILanguage]>*/
284 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:IndexedIterator[FFILanguage]>*/
288 var7
= nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__identify_language(var_v
, var_n
);
290 var_identified
= var7
;
294 var8
= var_identified
;
300 { /* Inline phase#Phase#toolcontext (self) on <self:FFILanguageAssignationPhase> */
301 var12
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FFILanguageAssignationPhase> */
302 if (unlikely(var12
== NULL
)) {
303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 200);
312 { /* Inline parser_nodes#ANode#location (var_n) on <var_n:AExternCodeBlock> */
313 var15
= var_n
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var_n:AExternCodeBlock> */
314 if (unlikely(var15
== NULL
)) {
315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
316 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
323 if (likely(varonce
!=NULL
)) {
326 var17
= "FFI Error: two languages identified as possible handlers.";
327 var18
= core__flat___NativeString___to_s_full(var17
, 57l, 57l);
332 var19
= nitc___nitc__ToolContext___error(var10
, var13
, var16
);
337 { /* Inline light_ffi_base#AExternCodeBlock#language= (var_n,var_v) on <var_n:AExternCodeBlock> */
338 var_n
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
= var_v
; /* _language on <var_n:AExternCodeBlock> */
346 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:IndexedIterator[FFILanguage]>*/
349 BREAK_label
: (void)0;
351 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:IndexedIterator[FFILanguage]>*/
356 { /* Inline phase#Phase#toolcontext (self) on <self:FFILanguageAssignationPhase> */
357 var24
= self
->attrs
[COLOR_nitc__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_nitc__phase
, 200);
368 { /* Inline parser_nodes#ANode#location (var_n) on <var_n:AExternCodeBlock> */
369 var27
= var_n
->attrs
[COLOR_nitc__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_nitc__parser_nodes
, 24);
379 if (likely(varonce28
!=NULL
)) {
382 var30
= "FFI Error: unsupported language.";
383 var31
= core__flat___NativeString___to_s_full(var30
, 32l, 32l);
388 var32
= nitc___nitc__ToolContext___error(var22
, var25
, var29
);
394 /* method light_ffi_base#MModule#ffi_files for (self: MModule): Array[ExternFile] */
395 val
* nitc__light_ffi_base___MModule___ffi_files(val
* self
) {
396 val
* var
/* : Array[ExternFile] */;
397 val
* var1
/* : Array[ExternFile] */;
398 var1
= self
->attrs
[COLOR_nitc__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_nitc__light_ffi_base
, 82);
408 /* method light_ffi_base#AExternCodeBlock#language_name for (self: AExternCodeBlock): nullable String */
409 val
* nitc__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_nitc__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_nitc__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_nitc__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_nitc__parser_nodes
, 2849);
475 var15
= var10
->attrs
[COLOR_nitc__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_nitc__parser_nodes
, 2849);
486 var16
= nitc__light_ffi_base___TString___without_quotes(var13
);
493 /* method light_ffi_base#AExternCodeBlock#language_name_lowered for (self: AExternCodeBlock): nullable String */
494 val
* nitc__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
= nitc__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_core__kernel__Object___61d_61d
]))(var1
, ((val
*)NULL
)); /* == on <var1:nullable String>*/
519 var4
= nitc__light_ffi_base___AExternCodeBlock___language_name(self
);
522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
523 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 96);
526 var5
= ((val
*(*)(val
* self
))(var4
->class->vft
[COLOR_core__abstract_text__String__to_lower
]))(var4
); /* to_lower on <var4:nullable String>*/
533 /* method light_ffi_base#AExternCodeBlock#code for (self: AExternCodeBlock): String */
534 val
* nitc__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_nitc__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_nitc__parser_nodes
, 2860);
552 var4
= nitc__light_ffi_base___TExternCodeSegment___without_guard(var1
);
559 /* method light_ffi_base#AExternCodeBlock#language for (self: AExternCodeBlock): nullable FFILanguage */
560 val
* nitc__light_ffi_base___AExternCodeBlock___language(val
* self
) {
561 val
* var
/* : nullable FFILanguage */;
562 val
* var1
/* : nullable FFILanguage */;
563 var1
= self
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <self:AExternCodeBlock> */
568 /* method light_ffi_base#AExternCodeBlock#language= for (self: AExternCodeBlock, nullable FFILanguage) */
569 void nitc__light_ffi_base___AExternCodeBlock___language_61d(val
* self
, val
* p0
) {
570 self
->attrs
[COLOR_nitc__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
* nitc___nitc__FFILanguage___ffi_language_assignation_phase(val
* self
) {
575 val
* var
/* : FFILanguageAssignationPhase */;
576 val
* var1
/* : FFILanguageAssignationPhase */;
577 var1
= self
->attrs
[COLOR_nitc__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_nitc__light_ffi_base
, 109);
587 /* method light_ffi_base#FFILanguage#ffi_language_assignation_phase= for (self: FFILanguage, FFILanguageAssignationPhase) */
588 void nitc___nitc__FFILanguage___ffi_language_assignation_phase_61d(val
* self
, val
* p0
) {
589 self
->attrs
[COLOR_nitc__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 nitc___nitc__FFILanguage___core__kernel__Object__init(val
* self
) {
594 val
* var
/* : FFILanguageAssignationPhase */;
595 val
* var2
/* : FFILanguageAssignationPhase */;
596 val
* var3
/* : Array[FFILanguage] */;
597 val
* var5
/* : Array[FFILanguage] */;
599 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__FFILanguage___core__kernel__Object__init
]))(self
); /* init on <self:FFILanguage>*/
602 { /* Inline light_ffi_base#FFILanguage#ffi_language_assignation_phase (self) on <self:FFILanguage> */
603 var2
= self
->attrs
[COLOR_nitc__light_ffi_base__FFILanguage___ffi_language_assignation_phase
].val
; /* _ffi_language_assignation_phase on <self:FFILanguage> */
604 if (unlikely(var2
== NULL
)) {
605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_language_assignation_phase");
606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 109);
614 { /* Inline light_ffi_base#FFILanguageAssignationPhase#languages (var) on <var:FFILanguageAssignationPhase> */
615 var5
= var
->attrs
[COLOR_nitc__light_ffi_base__FFILanguageAssignationPhase___languages
].val
; /* _languages on <var:FFILanguageAssignationPhase> */
616 if (unlikely(var5
== NULL
)) {
617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _languages");
618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 36);
626 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, self
); /* Direct call array#Array#add on <var3:Array[FFILanguage]>*/
630 /* method light_ffi_base#TString#without_quotes for (self: TString): String */
631 val
* nitc__light_ffi_base___TString___without_quotes(val
* self
) {
632 val
* var
/* : String */;
633 val
* var1
/* : String */;
634 long var2
/* : Int */;
635 short int var3
/* : Bool */;
636 short int var5
/* : Bool */;
639 const char* var_class_name
;
640 short int var6
/* : Bool */;
641 val
* var7
/* : String */;
642 val
* var8
/* : String */;
643 long var9
/* : Int */;
644 long var10
/* : Int */;
645 short int var12
/* : Bool */;
648 const char* var_class_name15
;
649 long var16
/* : Int */;
650 val
* var17
/* : Text */;
652 var1
= nitc__lexer_work___Token___text(self
);
655 var2
= ((long(*)(val
* self
))(var1
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var1
); /* length on <var1:String>*/
658 { /* Inline kernel#Int#>= (var2,2l) on <var2:Int> */
659 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
660 /* <2l:Int> isa OTHER */
661 var5
= 1; /* easy <2l:Int> isa OTHER*/
662 if (unlikely(!var5
)) {
663 var_class_name
= type_core__Int
.name
;
664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
665 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 729);
674 if (unlikely(!var3
)) {
675 PRINT_ERROR("Runtime error: %s", "Assert failed");
676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 142);
680 var7
= nitc__lexer_work___Token___text(self
);
683 var8
= nitc__lexer_work___Token___text(self
);
686 var9
= ((long(*)(val
* self
))(var8
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var8
); /* length on <var8:String>*/
689 { /* Inline kernel#Int#- (var9,2l) on <var9:Int> */
690 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
691 /* <2l:Int> isa OTHER */
692 var12
= 1; /* easy <2l:Int> isa OTHER*/
693 if (unlikely(!var12
)) {
694 var_class_name15
= type_core__Int
.name
;
695 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15
);
696 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
706 var17
= ((val
*(*)(val
* self
, long p0
, long p1
))(var7
->class->vft
[COLOR_core__abstract_text__Text__substring
]))(var7
, 1l, var10
); /* substring on <var7:String>*/
713 /* method light_ffi_base#TExternCodeSegment#without_guard for (self: TExternCodeSegment): String */
714 val
* nitc__light_ffi_base___TExternCodeSegment___without_guard(val
* self
) {
715 val
* var
/* : String */;
716 val
* var1
/* : String */;
717 long var2
/* : Int */;
718 short int var3
/* : Bool */;
719 short int var5
/* : Bool */;
722 const char* var_class_name
;
723 short int var6
/* : Bool */;
724 val
* var7
/* : String */;
725 val
* var8
/* : String */;
726 long var9
/* : Int */;
727 long var10
/* : Int */;
728 short int var12
/* : Bool */;
731 const char* var_class_name15
;
732 long var16
/* : Int */;
733 val
* var17
/* : Text */;
735 var1
= nitc__lexer_work___Token___text(self
);
738 var2
= ((long(*)(val
* self
))(var1
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var1
); /* length on <var1:String>*/
741 { /* Inline kernel#Int#>= (var2,4l) on <var2:Int> */
742 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
743 /* <4l:Int> isa OTHER */
744 var5
= 1; /* easy <4l:Int> isa OTHER*/
745 if (unlikely(!var5
)) {
746 var_class_name
= type_core__Int
.name
;
747 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
748 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 729);
757 if (unlikely(!var3
)) {
758 PRINT_ERROR("Runtime error: %s", "Assert failed");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 151);
763 var7
= nitc__lexer_work___Token___text(self
);
766 var8
= nitc__lexer_work___Token___text(self
);
769 var9
= ((long(*)(val
* self
))(var8
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var8
); /* length on <var8:String>*/
772 { /* Inline kernel#Int#- (var9,4l) on <var9:Int> */
773 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
774 /* <4l:Int> isa OTHER */
775 var12
= 1; /* easy <4l:Int> isa OTHER*/
776 if (unlikely(!var12
)) {
777 var_class_name15
= type_core__Int
.name
;
778 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15
);
779 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
789 var17
= ((val
*(*)(val
* self
, long p0
, long p1
))(var7
->class->vft
[COLOR_core__abstract_text__Text__substring
]))(var7
, 2l, var10
); /* substring on <var7:String>*/
796 /* method light_ffi_base#CCompilationUnit#write_as_impl for (self: CCompilationUnit, MModule, String) */
797 void nitc__light_ffi_base___CCompilationUnit___write_as_impl(val
* self
, val
* p0
, val
* p1
) {
798 val
* var_mmodule
/* var mmodule: MModule */;
799 val
* var_compdir
/* var compdir: String */;
800 val
* var
/* : NativeArray[String] */;
802 static val
* varonce1
;
803 val
* var2
/* : String */;
804 char* var3
/* : NativeString */;
805 val
* var4
/* : String */;
806 val
* var5
/* : String */;
807 val
* var6
/* : String */;
808 val
* var_base_name
/* var base_name: String */;
809 val
* var8
/* : NativeArray[String] */;
810 static val
* varonce7
;
811 static val
* varonce9
;
812 val
* var10
/* : String */;
813 char* var11
/* : NativeString */;
814 val
* var12
/* : String */;
815 val
* var13
/* : String */;
816 val
* var_h_file
/* var h_file: String */;
817 val
* var15
/* : NativeArray[String] */;
818 static val
* varonce14
;
819 static val
* varonce16
;
820 val
* var17
/* : String */;
821 char* var18
/* : NativeString */;
822 val
* var19
/* : String */;
823 val
* var20
/* : String */;
824 val
* var21
/* : String */;
825 val
* var22
/* : String */;
826 val
* var_guard
/* var guard: String */;
827 val
* var24
/* : NativeArray[String] */;
828 static val
* varonce23
;
829 static val
* varonce25
;
830 val
* var26
/* : String */;
831 char* var27
/* : NativeString */;
832 val
* var28
/* : String */;
833 val
* var29
/* : String */;
834 val
* var30
/* : Array[String] */;
835 val
* var_
/* var : Array[String] */;
836 static val
* varonce31
;
837 val
* var32
/* : String */;
838 char* var33
/* : NativeString */;
839 val
* var34
/* : String */;
840 val
* var36
/* : NativeArray[String] */;
841 static val
* varonce35
;
842 static val
* varonce37
;
843 val
* var38
/* : String */;
844 char* var39
/* : NativeString */;
845 val
* var40
/* : String */;
846 val
* var41
/* : String */;
847 val
* var_c_file
/* var c_file: String */;
848 val
* var43
/* : NativeArray[String] */;
849 static val
* varonce42
;
850 static val
* varonce44
;
851 val
* var45
/* : String */;
852 char* var46
/* : NativeString */;
853 val
* var47
/* : String */;
854 val
* var48
/* : String */;
855 val
* var49
/* : Array[String] */;
856 val
* var_50
/* var : Array[String] */;
857 static val
* varonce51
;
858 val
* var52
/* : String */;
859 char* var53
/* : NativeString */;
860 val
* var54
/* : String */;
861 static val
* varonce55
;
862 val
* var56
/* : String */;
863 char* var57
/* : NativeString */;
864 val
* var58
/* : String */;
865 static val
* varonce59
;
866 val
* var60
/* : String */;
867 char* var61
/* : NativeString */;
868 val
* var62
/* : String */;
869 val
* var64
/* : NativeArray[String] */;
870 static val
* varonce63
;
871 static val
* varonce65
;
872 val
* var66
/* : String */;
873 char* var67
/* : NativeString */;
874 val
* var68
/* : String */;
875 static val
* varonce69
;
876 val
* var70
/* : String */;
877 char* var71
/* : NativeString */;
878 val
* var72
/* : String */;
879 val
* var73
/* : String */;
880 val
* var74
/* : Array[String] */;
881 val
* var76
/* : Array[String] */;
882 val
* var78
/* : NativeArray[String] */;
883 static val
* varonce77
;
884 static val
* varonce79
;
885 val
* var80
/* : String */;
886 char* var81
/* : NativeString */;
887 val
* var82
/* : String */;
888 val
* var83
/* : String */;
891 if (unlikely(varonce
==NULL
)) {
892 var
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
893 if (likely(varonce1
!=NULL
)) {
897 var4
= core__flat___NativeString___to_s_full(var3
, 5l, 5l);
901 ((struct instance_core__NativeArray
*)var
)->values
[1]=var2
;
907 var5
= nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_mmodule
);
909 ((struct instance_core__NativeArray
*)var
)->values
[0]=var5
;
911 var6
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var
); /* native_to_s on <var:NativeArray[String]>*/
914 var_base_name
= var6
;
915 if (unlikely(varonce7
==NULL
)) {
916 var8
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
917 if (likely(varonce9
!=NULL
)) {
921 var12
= core__flat___NativeString___to_s_full(var11
, 2l, 2l);
925 ((struct instance_core__NativeArray
*)var8
)->values
[1]=var10
;
930 ((struct instance_core__NativeArray
*)var8
)->values
[0]=var_base_name
;
932 var13
= ((val
*(*)(val
* self
))(var8
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var8
); /* native_to_s on <var8:NativeArray[String]>*/
936 if (unlikely(varonce14
==NULL
)) {
937 var15
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
938 if (likely(varonce16
!=NULL
)) {
942 var19
= core__flat___NativeString___to_s_full(var18
, 6l, 6l);
946 ((struct instance_core__NativeArray
*)var15
)->values
[1]=var17
;
952 var20
= nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_mmodule
);
955 var21
= ((val
*(*)(val
* self
))(var20
->class->vft
[COLOR_core__abstract_text__String__to_upper
]))(var20
); /* to_upper on <var20:String>*/
957 ((struct instance_core__NativeArray
*)var15
)->values
[0]=var21
;
959 var22
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
963 if (unlikely(varonce23
==NULL
)) {
964 var24
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
965 if (likely(varonce25
!=NULL
)) {
969 var28
= core__flat___NativeString___to_s_full(var27
, 1l, 1l);
973 ((struct instance_core__NativeArray
*)var24
)->values
[1]=var26
;
978 ((struct instance_core__NativeArray
*)var24
)->values
[0]=var_compdir
;
979 ((struct instance_core__NativeArray
*)var24
)->values
[2]=var_h_file
;
981 var29
= ((val
*(*)(val
* self
))(var24
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var24
); /* native_to_s on <var24:NativeArray[String]>*/
984 var30
= NEW_core__Array(&type_core__Array__core__String
);
986 core___core__Array___with_capacity(var30
, 1l); /* Direct call array#Array#with_capacity on <var30:Array[String]>*/
989 if (likely(varonce31
!=NULL
)) {
992 var33
= "<stdint.h>";
993 var34
= core__flat___NativeString___to_s_full(var33
, 10l, 10l);
998 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var32
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
1001 nitc__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>*/
1003 if (unlikely(varonce35
==NULL
)) {
1004 var36
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
1005 if (likely(varonce37
!=NULL
)) {
1009 var40
= core__flat___NativeString___to_s_full(var39
, 2l, 2l);
1013 ((struct instance_core__NativeArray
*)var36
)->values
[1]=var38
;
1018 ((struct instance_core__NativeArray
*)var36
)->values
[0]=var_base_name
;
1020 var41
= ((val
*(*)(val
* self
))(var36
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var36
); /* native_to_s on <var36:NativeArray[String]>*/
1024 if (unlikely(varonce42
==NULL
)) {
1025 var43
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1026 if (likely(varonce44
!=NULL
)) {
1030 var47
= core__flat___NativeString___to_s_full(var46
, 1l, 1l);
1034 ((struct instance_core__NativeArray
*)var43
)->values
[1]=var45
;
1039 ((struct instance_core__NativeArray
*)var43
)->values
[0]=var_compdir
;
1040 ((struct instance_core__NativeArray
*)var43
)->values
[2]=var_c_file
;
1042 var48
= ((val
*(*)(val
* self
))(var43
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var43
); /* native_to_s on <var43:NativeArray[String]>*/
1045 var49
= NEW_core__Array(&type_core__Array__core__String
);
1047 core___core__Array___with_capacity(var49
, 4l); /* Direct call array#Array#with_capacity on <var49:Array[String]>*/
1050 if (likely(varonce51
!=NULL
)) {
1053 var53
= "<stdlib.h>";
1054 var54
= core__flat___NativeString___to_s_full(var53
, 10l, 10l);
1059 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50
, var52
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1061 if (likely(varonce55
!=NULL
)) {
1064 var57
= "<stdio.h>";
1065 var58
= core__flat___NativeString___to_s_full(var57
, 9l, 9l);
1070 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50
, var56
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1072 if (likely(varonce59
!=NULL
)) {
1075 var61
= "<stdint.h>";
1076 var62
= core__flat___NativeString___to_s_full(var61
, 10l, 10l);
1081 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50
, var60
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1083 if (unlikely(varonce63
==NULL
)) {
1084 var64
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1085 if (likely(varonce65
!=NULL
)) {
1089 var68
= core__flat___NativeString___to_s_full(var67
, 1l, 1l);
1093 ((struct instance_core__NativeArray
*)var64
)->values
[0]=var66
;
1094 if (likely(varonce69
!=NULL
)) {
1098 var72
= core__flat___NativeString___to_s_full(var71
, 1l, 1l);
1102 ((struct instance_core__NativeArray
*)var64
)->values
[2]=var70
;
1107 ((struct instance_core__NativeArray
*)var64
)->values
[1]=var_h_file
;
1109 var73
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
1113 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50
, var73
); /* Direct call array#AbstractArray#push on <var_50:Array[String]>*/
1116 nitc__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>*/
1119 { /* Inline c_tools#CCompilationUnit#files (self) on <self:CCompilationUnit> */
1120 var76
= self
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___files
].val
; /* _files on <self:CCompilationUnit> */
1121 if (unlikely(var76
== NULL
)) {
1122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
1123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 47);
1127 RET_LABEL75
:(void)0;
1130 if (unlikely(varonce77
==NULL
)) {
1131 var78
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1132 if (likely(varonce79
!=NULL
)) {
1136 var82
= core__flat___NativeString___to_s_full(var81
, 1l, 1l);
1140 ((struct instance_core__NativeArray
*)var78
)->values
[1]=var80
;
1145 ((struct instance_core__NativeArray
*)var78
)->values
[0]=var_compdir
;
1146 ((struct instance_core__NativeArray
*)var78
)->values
[2]=var_c_file
;
1148 var83
= ((val
*(*)(val
* self
))(var78
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var78
); /* native_to_s on <var78:NativeArray[String]>*/
1152 core___core__Array___core__abstract_collection__SimpleCollection__add(var74
, var83
); /* Direct call array#Array#add on <var74:Array[String]>*/
1156 /* method light_ffi_base#CCompilationUnit#write_header_to_file for (self: CCompilationUnit, MModule, String, Array[String], String) */
1157 void nitc__light_ffi_base___CCompilationUnit___write_header_to_file(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1158 val
* var_mmodule
/* var mmodule: MModule */;
1159 val
* var_file
/* var file: String */;
1160 val
* var_includes
/* var includes: Array[String] */;
1161 val
* var_guard
/* var guard: String */;
1162 val
* var
/* : FileWriter */;
1163 val
* var_stream
/* var stream: FileWriter */;
1164 val
* var1
/* : NativeArray[String] */;
1165 static val
* varonce
;
1166 static val
* varonce2
;
1167 val
* var3
/* : String */;
1168 char* var4
/* : NativeString */;
1169 val
* var5
/* : String */;
1170 static val
* varonce6
;
1171 val
* var7
/* : String */;
1172 char* var8
/* : NativeString */;
1173 val
* var9
/* : String */;
1174 val
* var10
/* : String */;
1175 val
* var12
/* : String */;
1176 val
* var13
/* : String */;
1177 val
* var_module_info
/* var module_info: String */;
1178 val
* var15
/* : NativeArray[String] */;
1179 static val
* varonce14
;
1180 static val
* varonce16
;
1181 val
* var17
/* : String */;
1182 char* var18
/* : NativeString */;
1183 val
* var19
/* : String */;
1184 static val
* varonce20
;
1185 val
* var21
/* : String */;
1186 char* var22
/* : NativeString */;
1187 val
* var23
/* : String */;
1188 val
* var24
/* : String */;
1189 val
* var26
/* : NativeArray[String] */;
1190 static val
* varonce25
;
1191 static val
* varonce27
;
1192 val
* var28
/* : String */;
1193 char* var29
/* : NativeString */;
1194 val
* var30
/* : String */;
1195 static val
* varonce31
;
1196 val
* var32
/* : String */;
1197 char* var33
/* : NativeString */;
1198 val
* var34
/* : String */;
1199 val
* var35
/* : String */;
1200 val
* var_
/* var : Array[String] */;
1201 val
* var36
/* : IndexedIterator[nullable Object] */;
1202 val
* var_37
/* var : IndexedIterator[String] */;
1203 short int var38
/* : Bool */;
1204 val
* var39
/* : nullable Object */;
1205 val
* var_incl
/* var incl: String */;
1206 val
* var41
/* : NativeArray[String] */;
1207 static val
* varonce40
;
1208 static val
* varonce42
;
1209 val
* var43
/* : String */;
1210 char* var44
/* : NativeString */;
1211 val
* var45
/* : String */;
1212 static val
* varonce46
;
1213 val
* var47
/* : String */;
1214 char* var48
/* : NativeString */;
1215 val
* var49
/* : String */;
1216 val
* var50
/* : String */;
1217 static val
* varonce51
;
1218 val
* var52
/* : String */;
1219 char* var53
/* : NativeString */;
1220 val
* var54
/* : String */;
1225 var
= NEW_core__FileWriter(&type_core__FileWriter
);
1227 core___core__FileWriter___open(var
, var_file
); /* Direct call file#FileWriter#open on <var:FileWriter>*/
1230 if (unlikely(varonce
==NULL
)) {
1231 var1
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1232 if (likely(varonce2
!=NULL
)) {
1235 var4
= "/*\n\tExtern implementation of Nit module ";
1236 var5
= core__flat___NativeString___to_s_full(var4
, 40l, 40l);
1240 ((struct instance_core__NativeArray
*)var1
)->values
[0]=var3
;
1241 if (likely(varonce6
!=NULL
)) {
1245 var9
= core__flat___NativeString___to_s_full(var8
, 4l, 4l);
1249 ((struct instance_core__NativeArray
*)var1
)->values
[2]=var7
;
1255 { /* Inline mmodule#MModule#name (var_mmodule) on <var_mmodule:MModule> */
1256 var12
= var_mmodule
->attrs
[COLOR_nitc__mmodule__MModule___name
].val
; /* _name on <var_mmodule:MModule> */
1257 if (unlikely(var12
== NULL
)) {
1258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1259 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 95);
1263 RET_LABEL11
:(void)0;
1266 ((struct instance_core__NativeArray
*)var1
)->values
[1]=var10
;
1268 var13
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
1271 var_module_info
= var13
;
1273 core___core__FileWriter___core__stream__Writer__write(var_stream
, var_module_info
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1275 if (unlikely(varonce14
==NULL
)) {
1276 var15
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1277 if (likely(varonce16
!=NULL
)) {
1281 var19
= core__flat___NativeString___to_s_full(var18
, 8l, 8l);
1285 ((struct instance_core__NativeArray
*)var15
)->values
[0]=var17
;
1286 if (likely(varonce20
!=NULL
)) {
1290 var23
= core__flat___NativeString___to_s_full(var22
, 1l, 1l);
1294 ((struct instance_core__NativeArray
*)var15
)->values
[2]=var21
;
1299 ((struct instance_core__NativeArray
*)var15
)->values
[1]=var_guard
;
1301 var24
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
1305 core___core__FileWriter___core__stream__Writer__write(var_stream
, var24
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1307 if (unlikely(varonce25
==NULL
)) {
1308 var26
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1309 if (likely(varonce27
!=NULL
)) {
1313 var30
= core__flat___NativeString___to_s_full(var29
, 8l, 8l);
1317 ((struct instance_core__NativeArray
*)var26
)->values
[0]=var28
;
1318 if (likely(varonce31
!=NULL
)) {
1322 var34
= core__flat___NativeString___to_s_full(var33
, 2l, 2l);
1326 ((struct instance_core__NativeArray
*)var26
)->values
[2]=var32
;
1331 ((struct instance_core__NativeArray
*)var26
)->values
[1]=var_guard
;
1333 var35
= ((val
*(*)(val
* self
))(var26
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var26
); /* native_to_s on <var26:NativeArray[String]>*/
1337 core___core__FileWriter___core__stream__Writer__write(var_stream
, var35
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1339 var_
= var_includes
;
1341 var36
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1346 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_37
); /* is_ok on <var_37:IndexedIterator[String]>*/
1353 var39
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_37
); /* item on <var_37:IndexedIterator[String]>*/
1356 if (unlikely(varonce40
==NULL
)) {
1357 var41
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1358 if (likely(varonce42
!=NULL
)) {
1361 var44
= "#include ";
1362 var45
= core__flat___NativeString___to_s_full(var44
, 9l, 9l);
1366 ((struct instance_core__NativeArray
*)var41
)->values
[0]=var43
;
1367 if (likely(varonce46
!=NULL
)) {
1371 var49
= core__flat___NativeString___to_s_full(var48
, 1l, 1l);
1375 ((struct instance_core__NativeArray
*)var41
)->values
[2]=var47
;
1380 ((struct instance_core__NativeArray
*)var41
)->values
[1]=var_incl
;
1382 var50
= ((val
*(*)(val
* self
))(var41
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var41
); /* native_to_s on <var41:NativeArray[String]>*/
1386 core___core__FileWriter___core__stream__Writer__write(var_stream
, var50
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1389 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_37
); /* next on <var_37:IndexedIterator[String]>*/
1392 BREAK_label
: (void)0;
1394 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_37
); /* finish on <var_37:IndexedIterator[String]>*/
1397 nitc___nitc__CCompilationUnit___compile_header_core(self
, var_stream
); /* Direct call c_tools#CCompilationUnit#compile_header_core on <self:CCompilationUnit>*/
1399 if (likely(varonce51
!=NULL
)) {
1403 var54
= core__flat___NativeString___to_s_full(var53
, 7l, 7l);
1408 core___core__FileWriter___core__stream__Writer__write(var_stream
, var52
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1411 core___core__FileWriter___core__stream__Stream__close(var_stream
); /* Direct call file#FileWriter#close on <var_stream:FileWriter>*/
1415 /* method light_ffi_base#CCompilationUnit#write_body_to_file for (self: CCompilationUnit, MModule, String, Array[String]) */
1416 void nitc__light_ffi_base___CCompilationUnit___write_body_to_file(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1417 val
* var_mmodule
/* var mmodule: MModule */;
1418 val
* var_file
/* var file: String */;
1419 val
* var_includes
/* var includes: Array[String] */;
1420 val
* var
/* : FileWriter */;
1421 val
* var_stream
/* var stream: FileWriter */;
1422 val
* var1
/* : NativeArray[String] */;
1423 static val
* varonce
;
1424 static val
* varonce2
;
1425 val
* var3
/* : String */;
1426 char* var4
/* : NativeString */;
1427 val
* var5
/* : String */;
1428 static val
* varonce6
;
1429 val
* var7
/* : String */;
1430 char* var8
/* : NativeString */;
1431 val
* var9
/* : String */;
1432 val
* var10
/* : String */;
1433 val
* var12
/* : String */;
1434 val
* var13
/* : String */;
1435 val
* var_module_info
/* var module_info: String */;
1436 val
* var_
/* var : Array[String] */;
1437 val
* var14
/* : IndexedIterator[nullable Object] */;
1438 val
* var_15
/* var : IndexedIterator[String] */;
1439 short int var16
/* : Bool */;
1440 val
* var17
/* : nullable Object */;
1441 val
* var_incl
/* var incl: String */;
1442 val
* var19
/* : NativeArray[String] */;
1443 static val
* varonce18
;
1444 static val
* varonce20
;
1445 val
* var21
/* : String */;
1446 char* var22
/* : NativeString */;
1447 val
* var23
/* : String */;
1448 static val
* varonce24
;
1449 val
* var25
/* : String */;
1450 char* var26
/* : NativeString */;
1451 val
* var27
/* : String */;
1452 val
* var28
/* : String */;
1456 var
= NEW_core__FileWriter(&type_core__FileWriter
);
1458 core___core__FileWriter___open(var
, var_file
); /* Direct call file#FileWriter#open on <var:FileWriter>*/
1461 if (unlikely(varonce
==NULL
)) {
1462 var1
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1463 if (likely(varonce2
!=NULL
)) {
1466 var4
= "/*\n\tExtern implementation of Nit module ";
1467 var5
= core__flat___NativeString___to_s_full(var4
, 40l, 40l);
1471 ((struct instance_core__NativeArray
*)var1
)->values
[0]=var3
;
1472 if (likely(varonce6
!=NULL
)) {
1476 var9
= core__flat___NativeString___to_s_full(var8
, 4l, 4l);
1480 ((struct instance_core__NativeArray
*)var1
)->values
[2]=var7
;
1486 { /* Inline mmodule#MModule#name (var_mmodule) on <var_mmodule:MModule> */
1487 var12
= var_mmodule
->attrs
[COLOR_nitc__mmodule__MModule___name
].val
; /* _name on <var_mmodule:MModule> */
1488 if (unlikely(var12
== NULL
)) {
1489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1490 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 95);
1494 RET_LABEL11
:(void)0;
1497 ((struct instance_core__NativeArray
*)var1
)->values
[1]=var10
;
1499 var13
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
1502 var_module_info
= var13
;
1504 core___core__FileWriter___core__stream__Writer__write(var_stream
, var_module_info
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1506 var_
= var_includes
;
1508 var14
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1513 var16
= ((short int(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_15
); /* is_ok on <var_15:IndexedIterator[String]>*/
1520 var17
= ((val
*(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_15
); /* item on <var_15:IndexedIterator[String]>*/
1523 if (unlikely(varonce18
==NULL
)) {
1524 var19
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1525 if (likely(varonce20
!=NULL
)) {
1528 var22
= "#include ";
1529 var23
= core__flat___NativeString___to_s_full(var22
, 9l, 9l);
1533 ((struct instance_core__NativeArray
*)var19
)->values
[0]=var21
;
1534 if (likely(varonce24
!=NULL
)) {
1538 var27
= core__flat___NativeString___to_s_full(var26
, 1l, 1l);
1542 ((struct instance_core__NativeArray
*)var19
)->values
[2]=var25
;
1547 ((struct instance_core__NativeArray
*)var19
)->values
[1]=var_incl
;
1549 var28
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
1553 core___core__FileWriter___core__stream__Writer__write(var_stream
, var28
); /* Direct call file#FileWriter#write on <var_stream:FileWriter>*/
1556 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_15
); /* next on <var_15:IndexedIterator[String]>*/
1559 BREAK_label
: (void)0;
1561 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_15
); /* finish on <var_15:IndexedIterator[String]>*/
1564 nitc___nitc__CCompilationUnit___compile_body_core(self
, var_stream
); /* Direct call c_tools#CCompilationUnit#compile_body_core on <self:CCompilationUnit>*/
1567 core___core__FileWriter___core__stream__Stream__close(var_stream
); /* Direct call file#FileWriter#close on <var_stream:FileWriter>*/
1571 /* method light_ffi_base#ForeignType#ctype for (self: ForeignType): String */
1572 val
* nitc___nitc__ForeignType___ctype(val
* self
) {
1573 val
* var
/* : String */;
1574 static val
* varonce
;
1575 val
* var1
/* : String */;
1576 char* var2
/* : NativeString */;
1577 val
* var3
/* : String */;
1578 if (likely(varonce
!=NULL
)) {
1582 var3
= core__flat___NativeString___to_s_full(var2
, 5l, 5l);