1 #include "nitc__light_ffi.sep.0.h"
2 /* method light_ffi#MModule#uses_ffi for (self: MModule): Bool */
3 short int nitc__light_ffi___MModule___uses_ffi(val
* self
) {
4 short int var
/* : Bool */;
5 short int var1
/* : Bool */;
6 var1
= self
->attrs
[COLOR_nitc__light_ffi__MModule___uses_ffi
].s
; /* _uses_ffi on <self:MModule> */
11 /* method light_ffi#MModule#uses_ffi= for (self: MModule, Bool) */
12 void nitc__light_ffi___MModule___uses_ffi_61d(val
* self
, short int p0
) {
13 self
->attrs
[COLOR_nitc__light_ffi__MModule___uses_ffi
].s
= p0
; /* _uses_ffi on <self:MModule> */
16 /* method light_ffi#MModule#ffi_ccu for (self: MModule): nullable CCompilationUnit */
17 val
* nitc__light_ffi___MModule___ffi_ccu(val
* self
) {
18 val
* var
/* : nullable CCompilationUnit */;
19 val
* var1
/* : nullable CCompilationUnit */;
20 var1
= self
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
; /* _ffi_ccu on <self:MModule> */
25 /* method light_ffi#MModule#ffi_ccu= for (self: MModule, nullable CCompilationUnit) */
26 void nitc__light_ffi___MModule___ffi_ccu_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
= p0
; /* _ffi_ccu on <self:MModule> */
30 /* method light_ffi#MModule#present_languages for (self: MModule): HashSet[FFILanguage] */
31 val
* nitc__light_ffi___MModule___present_languages(val
* self
) {
32 val
* var
/* : HashSet[FFILanguage] */;
33 val
* var1
/* : HashSet[FFILanguage] */;
34 var1
= self
->attrs
[COLOR_nitc__light_ffi__MModule___present_languages
].val
; /* _present_languages on <self:MModule> */
35 if (unlikely(var1
== NULL
)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 50);
44 /* method light_ffi#MModule#finalize_ffi_wrapper for (self: MModule, String, MModule) */
45 void nitc__light_ffi___MModule___finalize_ffi_wrapper(val
* self
, val
* p0
, val
* p1
) {
46 val
* var_compdir
/* var compdir: String */;
47 val
* var_mainmodule
/* var mainmodule: MModule */;
48 val
* var
/* : MultiHashMap[String, String] */;
49 val
* var2
/* : MultiHashMap[String, String] */;
51 val
* var3
/* : String */;
52 char* var4
/* : NativeString */;
53 val
* var5
/* : String */;
54 val
* var6
/* : nullable Object */;
56 val
* var8
/* : String */;
57 char* var9
/* : NativeString */;
58 val
* var10
/* : String */;
59 val
* var11
/* : String */;
60 val
* var_cflags
/* var cflags: String */;
61 val
* var12
/* : nullable CCompilationUnit */;
62 val
* var14
/* : nullable CCompilationUnit */;
63 val
* var15
/* : nullable CCompilationUnit */;
64 val
* var17
/* : nullable CCompilationUnit */;
65 val
* var18
/* : Array[String] */;
66 val
* var20
/* : Array[String] */;
67 val
* var_
/* var : Array[String] */;
68 val
* var21
/* : IndexedIterator[nullable Object] */;
69 val
* var_22
/* var : IndexedIterator[String] */;
70 short int var23
/* : Bool */;
71 val
* var24
/* : nullable Object */;
72 val
* var_filename
/* var filename: String */;
73 val
* var25
/* : ExternCFile */;
74 val
* var_f
/* var f: ExternCFile */;
75 val
* var26
/* : Array[String] */;
76 val
* var28
/* : Array[String] */;
77 val
* var29
/* : Array[String] */;
78 val
* var31
/* : Array[String] */;
79 val
* var32
/* : Array[ExternFile] */;
80 val
* var34
/* : Array[ExternFile] */;
84 { /* Inline light_c#MModule#cflags (self) on <self:MModule> */
85 var2
= self
->attrs
[COLOR_nitc__light_c__MModule___cflags
].val
; /* _cflags on <self:MModule> */
86 if (unlikely(var2
== NULL
)) {
87 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
88 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c
, 77);
95 if (likely(varonce
!=NULL
)) {
99 var5
= core__flat___NativeString___to_s_full(var4
, 0l, 0l);
104 var6
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var
, var3
);
106 if (likely(varonce7
!=NULL
)) {
110 var10
= core__flat___NativeString___to_s_full(var9
, 1l, 1l);
115 var11
= core__abstract_text___Collection___join(var6
, var8
);
119 { /* Inline light_ffi#MModule#ffi_ccu (self) on <self:MModule> */
120 var14
= self
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
; /* _ffi_ccu on <self:MModule> */
126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 58);
130 nitc__light_ffi_base___CCompilationUnit___write_as_impl(var12
, self
, var_compdir
); /* Direct call light_ffi_base#CCompilationUnit#write_as_impl on <var12:nullable CCompilationUnit>*/
133 { /* Inline light_ffi#MModule#ffi_ccu (self) on <self:MModule> */
134 var17
= self
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
; /* _ffi_ccu on <self:MModule> */
140 PRINT_ERROR("Runtime error: %s", "Receiver is null");
141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 59);
144 { /* Inline c_tools#CCompilationUnit#files (var15) on <var15:nullable CCompilationUnit> */
145 if (unlikely(var15
== NULL
)) {
146 PRINT_ERROR("Runtime error: %s", "Receiver is null");
147 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 47);
150 var20
= var15
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___files
].val
; /* _files on <var15:nullable CCompilationUnit> */
151 if (unlikely(var20
== NULL
)) {
152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
153 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 47);
162 var21
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
167 var23
= ((short int(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_22
); /* is_ok on <var_22:IndexedIterator[String]>*/
174 var24
= ((val
*(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_22
); /* item on <var_22:IndexedIterator[String]>*/
176 var_filename
= var24
;
177 var25
= NEW_nitc__ExternCFile(&type_nitc__ExternCFile
);
179 ((void(*)(val
* self
, val
* p0
))(var25
->class->vft
[COLOR_nitc__c_tools__ExternFile__filename_61d
]))(var25
, var_filename
); /* filename= on <var25:ExternCFile>*/
182 ((void(*)(val
* self
, val
* p0
))(var25
->class->vft
[COLOR_nitc__c_tools__ExternCFile__cflags_61d
]))(var25
, var_cflags
); /* cflags= on <var25:ExternCFile>*/
185 ((void(*)(val
* self
))(var25
->class->vft
[COLOR_core__kernel__Object__init
]))(var25
); /* init on <var25:ExternCFile>*/
189 { /* Inline c_tools#ExternFile#pkgconfigs (var_f) on <var_f:ExternCFile> */
190 var28
= var_f
->attrs
[COLOR_nitc__c_tools__ExternFile___pkgconfigs
].val
; /* _pkgconfigs on <var_f:ExternCFile> */
191 if (unlikely(var28
== NULL
)) {
192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
193 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 123);
201 { /* Inline light_c#MModule#pkgconfigs (self) on <self:MModule> */
202 var31
= self
->attrs
[COLOR_nitc__light_c__MModule___pkgconfigs
].val
; /* _pkgconfigs on <self:MModule> */
203 if (unlikely(var31
== NULL
)) {
204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c
, 83);
213 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var26
, var29
); /* Direct call array#Array#add_all on <var26:Array[String]>*/
216 { /* Inline light_ffi_base#MModule#ffi_files (self) on <self:MModule> */
217 var34
= self
->attrs
[COLOR_nitc__light_ffi_base__MModule___ffi_files
].val
; /* _ffi_files on <self:MModule> */
218 if (unlikely(var34
== NULL
)) {
219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ffi_files");
220 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 82);
228 core___core__Array___core__abstract_collection__SimpleCollection__add(var32
, var_f
); /* Direct call array#Array#add on <var32:Array[ExternFile]>*/
231 ((void(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_22
); /* next on <var_22:IndexedIterator[String]>*/
234 BREAK_label
: (void)0;
236 ((void(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_22
); /* finish on <var_22:IndexedIterator[String]>*/
240 /* method light_ffi#MModule#compiled_ffi_methods for (self: MModule): HashSet[AMethPropdef] */
241 val
* nitc__light_ffi___MModule___compiled_ffi_methods(val
* self
) {
242 val
* var
/* : HashSet[AMethPropdef] */;
243 val
* var1
/* : HashSet[AMethPropdef] */;
244 var1
= self
->attrs
[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods
].val
; /* _compiled_ffi_methods on <self:MModule> */
245 if (unlikely(var1
== NULL
)) {
246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
247 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 66);
254 /* method light_ffi#AModule#ensure_compile_ffi_wrapper for (self: AModule) */
255 void nitc__light_ffi___AModule___ensure_compile_ffi_wrapper(val
* self
) {
256 val
* var
/* : nullable MModule */;
257 val
* var2
/* : nullable MModule */;
258 val
* var_mmodule
/* var mmodule: nullable MModule */;
259 short int var3
/* : Bool */;
260 short int var4
/* : Bool */;
261 short int var5
/* : Bool */;
262 val
* var_other
/* var other: nullable Object */;
263 short int var7
/* : Bool */;
264 short int var9
/* : Bool */;
265 short int var_
/* var : Bool */;
266 val
* var10
/* : nullable CCompilationUnit */;
267 val
* var12
/* : nullable CCompilationUnit */;
268 short int var13
/* : Bool */;
269 short int var14
/* : Bool */;
270 val
* var_other16
/* var other: nullable Object */;
271 short int var17
/* : Bool */;
272 short int var18
/* : Bool */;
273 val
* var19
/* : CCompilationUnit */;
274 val
* var_ffi_ccu
/* var ffi_ccu: CCompilationUnit */;
275 val
* var22
/* : ANodes[AExternCodeBlock] */;
276 val
* var24
/* : ANodes[AExternCodeBlock] */;
277 val
* var_25
/* var : ANodes[AExternCodeBlock] */;
278 val
* var26
/* : Iterator[ANode] */;
279 val
* var_27
/* var : Iterator[AExternCodeBlock] */;
280 short int var28
/* : Bool */;
281 val
* var29
/* : nullable Object */;
282 val
* var_block
/* var block: AExternCodeBlock */;
283 val
* var30
/* : nullable FFILanguage */;
284 val
* var32
/* : nullable FFILanguage */;
285 val
* var_language
/* var language: nullable FFILanguage */;
286 short int var33
/* : Bool */;
287 short int var34
/* : Bool */;
288 short int var36
/* : Bool */;
289 short int var37
/* : Bool */;
290 val
* var38
/* : HashSet[FFILanguage] */;
291 val
* var40
/* : HashSet[FFILanguage] */;
292 val
* var41
/* : Template */;
293 val
* var43
/* : Template */;
294 val
* var44
/* : NativeArray[String] */;
296 static val
* varonce45
;
297 val
* var46
/* : String */;
298 char* var47
/* : NativeString */;
299 val
* var48
/* : String */;
300 static val
* varonce49
;
301 val
* var50
/* : String */;
302 char* var51
/* : NativeString */;
303 val
* var52
/* : String */;
304 val
* var53
/* : String */;
305 val
* var54
/* : String */;
306 val
* var55
/* : Template */;
307 val
* var57
/* : Template */;
308 static val
* varonce58
;
309 val
* var59
/* : String */;
310 char* var60
/* : NativeString */;
311 val
* var61
/* : String */;
312 val
* var62
/* : Template */;
313 val
* var64
/* : Template */;
314 static val
* varonce65
;
315 val
* var66
/* : String */;
316 char* var67
/* : NativeString */;
317 val
* var68
/* : String */;
318 val
* var69
/* : Template */;
319 val
* var71
/* : Template */;
320 static val
* varonce72
;
321 val
* var73
/* : String */;
322 char* var74
/* : NativeString */;
323 val
* var75
/* : String */;
324 val
* var76
/* : Template */;
325 val
* var78
/* : Template */;
326 static val
* varonce79
;
327 val
* var80
/* : String */;
328 char* var81
/* : NativeString */;
329 val
* var82
/* : String */;
330 val
* var83
/* : Template */;
331 val
* var85
/* : Template */;
332 static val
* varonce86
;
333 val
* var87
/* : String */;
334 char* var88
/* : NativeString */;
335 val
* var89
/* : String */;
336 val
* var90
/* : Template */;
337 val
* var92
/* : Template */;
338 static val
* varonce93
;
339 val
* var94
/* : String */;
340 char* var95
/* : NativeString */;
341 val
* var96
/* : String */;
342 val
* var97
/* : ANodes[AClassdef] */;
343 val
* var99
/* : ANodes[AClassdef] */;
344 val
* var_100
/* var : ANodes[AClassdef] */;
345 val
* var101
/* : Iterator[ANode] */;
346 val
* var_102
/* var : Iterator[AClassdef] */;
347 short int var103
/* : Bool */;
348 val
* var105
/* : nullable Object */;
349 val
* var_nclassdef
/* var nclassdef: AClassdef */;
350 short int var106
/* : Bool */;
351 short int var107
/* : Bool */;
354 short int var_108
/* var : Bool */;
355 val
* var109
/* : nullable AExternCodeBlock */;
356 val
* var111
/* : nullable AExternCodeBlock */;
357 short int var112
/* : Bool */;
358 short int var113
/* : Bool */;
359 short int var115
/* : Bool */;
360 short int var116
/* : Bool */;
361 val
* var118
/* : nullable AExternCodeBlock */;
362 val
* var120
/* : nullable AExternCodeBlock */;
363 val
* var121
/* : nullable FFILanguage */;
364 val
* var123
/* : nullable FFILanguage */;
365 val
* var_language124
/* var language: nullable FFILanguage */;
366 short int var125
/* : Bool */;
367 short int var126
/* : Bool */;
368 short int var128
/* : Bool */;
369 short int var129
/* : Bool */;
370 val
* var130
/* : HashSet[FFILanguage] */;
371 val
* var132
/* : HashSet[FFILanguage] */;
372 val
* var133
/* : nullable AExternCodeBlock */;
373 val
* var135
/* : nullable AExternCodeBlock */;
374 val
* var136
/* : nullable FFILanguage */;
375 val
* var138
/* : nullable FFILanguage */;
376 val
* var139
/* : nullable AExternCodeBlock */;
377 val
* var141
/* : nullable AExternCodeBlock */;
378 val
* var_block143
/* var block: AExternCodeBlock */;
379 val
* var_m
/* var m: AClassdef */;
380 val
* var_ecc
/* var ecc: CCompilationUnit */;
381 val
* var_mmodule144
/* var mmodule: MModule */;
383 { /* Inline loader#AModule#mmodule (self) on <self:AModule> */
384 var2
= self
->attrs
[COLOR_nitc__loader__AModule___mmodule
].val
; /* _mmodule on <self:AModule> */
390 if (var_mmodule
== NULL
) {
391 var4
= 1; /* is null */
393 var4
= 0; /* arg is null but recv is not */
396 { /* Inline kernel#Object#== (var_mmodule,((val*)NULL)) on <var_mmodule:nullable MModule> */
397 var_other
= ((val
*)NULL
);
399 { /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on <var_mmodule:nullable MModule(MModule)> */
400 var9
= var_mmodule
== var_other
;
417 { /* Inline light_ffi#MModule#ffi_ccu (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
418 var12
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
; /* _ffi_ccu on <var_mmodule:nullable MModule(MModule)> */
424 var13
= 0; /* is null */
426 var13
= 1; /* arg is null and recv is not */
429 { /* Inline kernel#Object#!= (var10,((val*)NULL)) on <var10:nullable CCompilationUnit> */
430 var_other16
= ((val
*)NULL
);
432 var17
= ((short int(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var10
, var_other16
); /* == on <var10:nullable CCompilationUnit(CCompilationUnit)>*/
447 var19
= NEW_nitc__CCompilationUnit(&type_nitc__CCompilationUnit
);
449 { /* Inline kernel#Object#init (var19) on <var19:CCompilationUnit> */
455 { /* Inline light_ffi#MModule#ffi_ccu= (var_mmodule,var_ffi_ccu) on <var_mmodule:nullable MModule(MModule)> */
456 var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
= var_ffi_ccu
; /* _ffi_ccu on <var_mmodule:nullable MModule(MModule)> */
461 { /* Inline parser_nodes#AModule#n_extern_code_blocks (self) on <self:AModule> */
462 var24
= self
->attrs
[COLOR_nitc__parser_nodes__AModule___n_extern_code_blocks
].val
; /* _n_extern_code_blocks on <self:AModule> */
463 if (unlikely(var24
== NULL
)) {
464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1059);
474 var26
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_25
);
479 var28
= ((short int(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_27
); /* is_ok on <var_27:Iterator[AExternCodeBlock]>*/
486 var29
= ((val
*(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_27
); /* item on <var_27:Iterator[AExternCodeBlock]>*/
490 { /* Inline light_ffi_base#AExternCodeBlock#language (var_block) on <var_block:AExternCodeBlock> */
491 var32
= var_block
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <var_block:AExternCodeBlock> */
496 var_language
= var30
;
497 if (var_language
== NULL
) {
498 var33
= 0; /* is null */
500 var33
= 1; /* arg is null and recv is not */
503 { /* Inline kernel#Object#!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
504 var_other16
= ((val
*)NULL
);
506 var36
= ((short int(*)(val
* self
, val
* p0
))(var_language
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_language
, var_other16
); /* == on <var_language:nullable FFILanguage(FFILanguage)>*/
515 if (unlikely(!var33
)) {
516 PRINT_ERROR("Runtime error: %s", "Assert failed");
517 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 88);
521 { /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
522 var40
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___present_languages
].val
; /* _present_languages on <var_mmodule:nullable MModule(MModule)> */
523 if (unlikely(var40
== NULL
)) {
524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 50);
533 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var38
, var_language
); /* Direct call hash_collection#HashSet#add on <var38:HashSet[FFILanguage]>*/
536 nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_module_block(var_language
, var_block
, var_ffi_ccu
, var_mmodule
); /* Direct call light_c#CLanguage#compile_module_block on <var_language:nullable FFILanguage(FFILanguage)>*/
539 ((void(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_27
); /* next on <var_27:Iterator[AExternCodeBlock]>*/
542 BREAK_label
: (void)0;
544 ((void(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_27
); /* finish on <var_27:Iterator[AExternCodeBlock]>*/
547 { /* Inline c_tools#CCompilationUnit#header_c_base (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
548 var43
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___header_c_base
].val
; /* _header_c_base on <var_ffi_ccu:CCompilationUnit> */
549 if (unlikely(var43
== NULL
)) {
550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
551 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 24);
558 if (unlikely(varonce
==NULL
)) {
559 var44
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
560 if (likely(varonce45
!=NULL
)) {
563 var47
= "#include \"";
564 var48
= core__flat___NativeString___to_s_full(var47
, 10l, 10l);
568 ((struct instance_core__NativeArray
*)var44
)->values
[0]=var46
;
569 if (likely(varonce49
!=NULL
)) {
572 var51
= "._nitni.h\"\n";
573 var52
= core__flat___NativeString___to_s_full(var51
, 11l, 11l);
577 ((struct instance_core__NativeArray
*)var44
)->values
[2]=var50
;
583 var53
= nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_mmodule
);
585 ((struct instance_core__NativeArray
*)var44
)->values
[1]=var53
;
587 var54
= ((val
*(*)(val
* self
))(var44
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var44
); /* native_to_s on <var44:NativeArray[String]>*/
591 template___template__Template___add(var41
, var54
); /* Direct call template#Template#add on <var41:Template>*/
594 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
595 var57
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
596 if (unlikely(var57
== NULL
)) {
597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
598 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
605 if (likely(varonce58
!=NULL
)) {
608 var60
= "#ifdef ANDROID\n";
609 var61
= core__flat___NativeString___to_s_full(var60
, 15l, 15l);
614 template___template__Template___add(var55
, var59
); /* Direct call template#Template#add on <var55:Template>*/
617 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
618 var64
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
619 if (unlikely(var64
== NULL
)) {
620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
628 if (likely(varonce65
!=NULL
)) {
631 var67
= "\t#include <android/log.h>\n";
632 var68
= core__flat___NativeString___to_s_full(var67
, 26l, 26l);
637 template___template__Template___add(var62
, var66
); /* Direct call template#Template#add on <var62:Template>*/
640 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
641 var71
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
642 if (unlikely(var71
== NULL
)) {
643 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
651 if (likely(varonce72
!=NULL
)) {
654 var74
= "\t#define PRINT_ERROR(...) (void)__android_log_print(ANDROID_LOG_WARN, \"Nit\", __VA_ARGS__)\n";
655 var75
= core__flat___NativeString___to_s_full(var74
, 90l, 90l);
660 template___template__Template___add(var69
, var73
); /* Direct call template#Template#add on <var69:Template>*/
663 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
664 var78
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
665 if (unlikely(var78
== NULL
)) {
666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
674 if (likely(varonce79
!=NULL
)) {
678 var82
= core__flat___NativeString___to_s_full(var81
, 6l, 6l);
683 template___template__Template___add(var76
, var80
); /* Direct call template#Template#add on <var76:Template>*/
686 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
687 var85
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
688 if (unlikely(var85
== NULL
)) {
689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
690 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
697 if (likely(varonce86
!=NULL
)) {
700 var88
= "\t#define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__)\n";
701 var89
= core__flat___NativeString___to_s_full(var88
, 55l, 55l);
706 template___template__Template___add(var83
, var87
); /* Direct call template#Template#add on <var83:Template>*/
709 { /* Inline c_tools#CCompilationUnit#body_decl (var_ffi_ccu) on <var_ffi_ccu:CCompilationUnit> */
710 var92
= var_ffi_ccu
->attrs
[COLOR_nitc__c_tools__CCompilationUnit___body_decl
].val
; /* _body_decl on <var_ffi_ccu:CCompilationUnit> */
711 if (unlikely(var92
== NULL
)) {
712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools
, 37);
720 if (likely(varonce93
!=NULL
)) {
724 var96
= core__flat___NativeString___to_s_full(var95
, 7l, 7l);
729 template___template__Template___add(var90
, var94
); /* Direct call template#Template#add on <var90:Template>*/
732 { /* Inline parser_nodes#AModule#n_classdefs (self) on <self:AModule> */
733 var99
= self
->attrs
[COLOR_nitc__parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <self:AModule> */
734 if (unlikely(var99
== NULL
)) {
735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1062);
745 var101
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_100
);
750 var103
= ((short int(*)(val
* self
))((((long)var_102
&3)?class_info
[((long)var_102
&3)]:var_102
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_102
); /* is_ok on <var_102:Iterator[AClassdef]>*/
757 var105
= ((val
*(*)(val
* self
))((((long)var_102
&3)?class_info
[((long)var_102
&3)]:var_102
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_102
); /* item on <var_102:Iterator[AClassdef]>*/
759 var_nclassdef
= var105
;
760 /* <var_nclassdef:AClassdef> isa AStdClassdef */
761 cltype
= type_nitc__AStdClassdef
.color
;
762 idtype
= type_nitc__AStdClassdef
.id
;
763 if(cltype
>= var_nclassdef
->type
->table_size
) {
766 var107
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
771 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
772 var111
= var_nclassdef
->attrs
[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
774 RET_LABEL110
:(void)0;
777 if (var109
== NULL
) {
778 var112
= 0; /* is null */
780 var112
= 1; /* arg is null and recv is not */
783 { /* Inline kernel#Object#!= (var109,((val*)NULL)) on <var109:nullable AExternCodeBlock> */
784 var_other16
= ((val
*)NULL
);
786 var115
= ((short int(*)(val
* self
, val
* p0
))(var109
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var109
, var_other16
); /* == on <var109:nullable AExternCodeBlock(AExternCodeBlock)>*/
791 RET_LABEL114
:(void)0;
801 { /* Inline light_ffi#MModule#uses_ffi= (var_mmodule,1) on <var_mmodule:nullable MModule(MModule)> */
802 var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___uses_ffi
].s
= 1; /* _uses_ffi on <var_mmodule:nullable MModule(MModule)> */
803 RET_LABEL117
:(void)0;
807 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
808 var120
= var_nclassdef
->attrs
[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
810 RET_LABEL119
:(void)0;
813 if (var118
== NULL
) {
814 PRINT_ERROR("Runtime error: %s", "Receiver is null");
815 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 106);
818 { /* Inline light_ffi_base#AExternCodeBlock#language (var118) on <var118:nullable AExternCodeBlock> */
819 if (unlikely(var118
== NULL
)) {
820 PRINT_ERROR("Runtime error: %s", "Receiver is null");
821 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 102);
824 var123
= var118
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <var118:nullable AExternCodeBlock> */
826 RET_LABEL122
:(void)0;
829 var_language124
= var121
;
830 if (var_language124
== NULL
) {
831 var125
= 0; /* is null */
833 var125
= 1; /* arg is null and recv is not */
836 { /* Inline kernel#Object#!= (var_language124,((val*)NULL)) on <var_language124:nullable FFILanguage> */
837 var_other16
= ((val
*)NULL
);
839 var128
= ((short int(*)(val
* self
, val
* p0
))(var_language124
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_language124
, var_other16
); /* == on <var_language124:nullable FFILanguage(FFILanguage)>*/
844 RET_LABEL127
:(void)0;
848 if (unlikely(!var125
)) {
849 PRINT_ERROR("Runtime error: %s", "Assert failed");
850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 107);
854 { /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:nullable MModule(MModule)> */
855 var132
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___present_languages
].val
; /* _present_languages on <var_mmodule:nullable MModule(MModule)> */
856 if (unlikely(var132
== NULL
)) {
857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
858 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 50);
862 RET_LABEL131
:(void)0;
866 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var130
, var_language124
); /* Direct call hash_collection#HashSet#add on <var130:HashSet[FFILanguage]>*/
869 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
870 var135
= var_nclassdef
->attrs
[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
872 RET_LABEL134
:(void)0;
875 if (var133
== NULL
) {
876 PRINT_ERROR("Runtime error: %s", "Receiver is null");
877 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 109);
880 { /* Inline light_ffi_base#AExternCodeBlock#language (var133) on <var133:nullable AExternCodeBlock> */
881 if (unlikely(var133
== NULL
)) {
882 PRINT_ERROR("Runtime error: %s", "Receiver is null");
883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 102);
886 var138
= var133
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <var133:nullable AExternCodeBlock> */
888 RET_LABEL137
:(void)0;
892 { /* Inline parser_nodes#AStdClassdef#n_extern_code_block (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
893 var141
= var_nclassdef
->attrs
[COLOR_nitc__parser_nodes__AStdClassdef___n_extern_code_block
].val
; /* _n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)> */
895 RET_LABEL140
:(void)0;
898 if (unlikely(var139
== NULL
)) {
899 PRINT_ERROR("Runtime error: %s", "Cast failed");
900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 110);
903 if (var136
== NULL
) {
904 PRINT_ERROR("Runtime error: %s", "Receiver is null");
905 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 109);
908 { /* Inline light_c#CLanguage#compile_extern_class (var136,var139,var_nclassdef,var_ffi_ccu,var_mmodule) on <var136:nullable FFILanguage> */
909 var_block143
= var139
;
910 var_m
= var_nclassdef
;
911 var_ecc
= var_ffi_ccu
;
912 var_mmodule144
= var_mmodule
;
913 RET_LABEL142
:(void)0;
919 ((void(*)(val
* self
))((((long)var_102
&3)?class_info
[((long)var_102
&3)]:var_102
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_102
); /* next on <var_102:Iterator[AClassdef]>*/
922 BREAK_label104
: (void)0;
924 ((void(*)(val
* self
))((((long)var_102
&3)?class_info
[((long)var_102
&3)]:var_102
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_102
); /* finish on <var_102:Iterator[AClassdef]>*/
928 /* method light_ffi#AMethPropdef#compile_ffi_method for (self: AMethPropdef, MModule) */
929 void nitc__light_ffi___AMethPropdef___compile_ffi_method(val
* self
, val
* p0
) {
930 val
* var_mmodule
/* var mmodule: MModule */;
931 val
* var
/* : nullable AExternCodeBlock */;
932 val
* var2
/* : nullable AExternCodeBlock */;
933 short int var3
/* : Bool */;
934 short int var4
/* : Bool */;
935 val
* var_other
/* var other: nullable Object */;
936 short int var6
/* : Bool */;
937 short int var7
/* : Bool */;
938 val
* var8
/* : HashSet[AMethPropdef] */;
939 val
* var10
/* : HashSet[AMethPropdef] */;
940 short int var11
/* : Bool */;
941 val
* var12
/* : HashSet[AMethPropdef] */;
942 val
* var14
/* : HashSet[AMethPropdef] */;
943 val
* var15
/* : nullable AExternCodeBlock */;
944 val
* var17
/* : nullable AExternCodeBlock */;
945 val
* var18
/* : nullable FFILanguage */;
946 val
* var20
/* : nullable FFILanguage */;
947 val
* var_language
/* var language: nullable FFILanguage */;
948 short int var21
/* : Bool */;
949 short int var22
/* : Bool */;
950 short int var24
/* : Bool */;
951 short int var25
/* : Bool */;
952 val
* var26
/* : HashSet[FFILanguage] */;
953 val
* var28
/* : HashSet[FFILanguage] */;
954 val
* var29
/* : nullable AExternCodeBlock */;
955 val
* var31
/* : nullable AExternCodeBlock */;
956 val
* var32
/* : nullable FFILanguage */;
957 val
* var34
/* : nullable FFILanguage */;
958 val
* var35
/* : nullable AExternCodeBlock */;
959 val
* var37
/* : nullable AExternCodeBlock */;
960 val
* var38
/* : nullable CCompilationUnit */;
961 val
* var40
/* : nullable CCompilationUnit */;
964 { /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
965 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block
].val
; /* _n_extern_code_block on <self:AMethPropdef> */
971 var3
= 0; /* is null */
973 var3
= 1; /* arg is null and recv is not */
976 { /* Inline kernel#Object#!= (var,((val*)NULL)) on <var:nullable AExternCodeBlock> */
977 var_other
= ((val
*)NULL
);
979 var6
= ((short int(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var
, var_other
); /* == on <var:nullable AExternCodeBlock(AExternCodeBlock)>*/
988 if (unlikely(!var3
)) {
989 PRINT_ERROR("Runtime error: %s", "Assert failed");
990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 120);
994 { /* Inline light_ffi#MModule#compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
995 var10
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods
].val
; /* _compiled_ffi_methods on <var_mmodule:MModule> */
996 if (unlikely(var10
== NULL
)) {
997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
998 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 66);
1006 var11
= core___core__HashSet___core__abstract_collection__Collection__has(var8
, self
);
1013 { /* Inline light_ffi#MModule#compiled_ffi_methods (var_mmodule) on <var_mmodule:MModule> */
1014 var14
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___compiled_ffi_methods
].val
; /* _compiled_ffi_methods on <var_mmodule:MModule> */
1015 if (unlikely(var14
== NULL
)) {
1016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiled_ffi_methods");
1017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 66);
1021 RET_LABEL13
:(void)0;
1025 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var12
, self
); /* Direct call hash_collection#HashSet#add on <var12:HashSet[AMethPropdef]>*/
1028 { /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
1029 var17
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block
].val
; /* _n_extern_code_block on <self:AMethPropdef> */
1031 RET_LABEL16
:(void)0;
1034 if (var15
== NULL
) {
1035 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1036 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 125);
1039 { /* Inline light_ffi_base#AExternCodeBlock#language (var15) on <var15:nullable AExternCodeBlock> */
1040 if (unlikely(var15
== NULL
)) {
1041 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1042 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 102);
1045 var20
= var15
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <var15:nullable AExternCodeBlock> */
1047 RET_LABEL19
:(void)0;
1050 var_language
= var18
;
1051 if (var_language
== NULL
) {
1052 var21
= 0; /* is null */
1054 var21
= 1; /* arg is null and recv is not */
1057 { /* Inline kernel#Object#!= (var_language,((val*)NULL)) on <var_language:nullable FFILanguage> */
1058 var_other
= ((val
*)NULL
);
1060 var24
= ((short int(*)(val
* self
, val
* p0
))(var_language
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_language
, var_other
); /* == on <var_language:nullable FFILanguage(FFILanguage)>*/
1065 RET_LABEL23
:(void)0;
1069 if (unlikely(!var21
)) {
1070 PRINT_ERROR("Runtime error: %s", "Assert failed");
1071 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 126);
1075 { /* Inline light_ffi#MModule#present_languages (var_mmodule) on <var_mmodule:MModule> */
1076 var28
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___present_languages
].val
; /* _present_languages on <var_mmodule:MModule> */
1077 if (unlikely(var28
== NULL
)) {
1078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _present_languages");
1079 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 50);
1083 RET_LABEL27
:(void)0;
1087 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var26
, var_language
); /* Direct call hash_collection#HashSet#add on <var26:HashSet[FFILanguage]>*/
1090 { /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
1091 var31
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block
].val
; /* _n_extern_code_block on <self:AMethPropdef> */
1093 RET_LABEL30
:(void)0;
1096 if (var29
== NULL
) {
1097 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1098 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 128);
1101 { /* Inline light_ffi_base#AExternCodeBlock#language (var29) on <var29:nullable AExternCodeBlock> */
1102 if (unlikely(var29
== NULL
)) {
1103 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi_base
, 102);
1107 var34
= var29
->attrs
[COLOR_nitc__light_ffi_base__AExternCodeBlock___language
].val
; /* _language on <var29:nullable AExternCodeBlock> */
1109 RET_LABEL33
:(void)0;
1113 { /* Inline parser_nodes#AMethPropdef#n_extern_code_block (self) on <self:AMethPropdef> */
1114 var37
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_extern_code_block
].val
; /* _n_extern_code_block on <self:AMethPropdef> */
1116 RET_LABEL36
:(void)0;
1119 if (unlikely(var35
== NULL
)) {
1120 PRINT_ERROR("Runtime error: %s", "Cast failed");
1121 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 129);
1125 { /* Inline light_ffi#MModule#ffi_ccu (var_mmodule) on <var_mmodule:MModule> */
1126 var40
= var_mmodule
->attrs
[COLOR_nitc__light_ffi__MModule___ffi_ccu
].val
; /* _ffi_ccu on <var_mmodule:MModule> */
1128 RET_LABEL39
:(void)0;
1131 if (unlikely(var38
== NULL
)) {
1132 PRINT_ERROR("Runtime error: %s", "Cast failed");
1133 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 129);
1136 if (var32
== NULL
) {
1137 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1138 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_ffi
, 128);
1141 nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_extern_method(var32
, var35
, self
, var38
, var_mmodule
); /* Direct call light_c#CLanguage#compile_extern_method on <var32:nullable FFILanguage>*/