1 #include "common_ffi.sep.0.h"
2 /* method common_ffi#MModule#uses_ffi for (self: MModule): Bool */
3 short int common_ffi__MModule__uses_ffi(val
* self
) {
4 short int var
/* : Bool */;
5 short int var1
/* : Bool */;
6 var1
= self
->attrs
[COLOR_common_ffi__MModule___64duses_ffi
].s
; /* @uses_ffi on <self:MModule> */
11 /* method common_ffi#MModule#uses_ffi for (self: Object): Bool */
12 short int VIRTUAL_common_ffi__MModule__uses_ffi(val
* self
) {
13 short int var
/* : Bool */;
14 short int var1
/* : Bool */;
15 var1
= common_ffi__MModule__uses_ffi(self
);
20 /* method common_ffi#MModule#uses_ffi= for (self: MModule, Bool) */
21 void common_ffi__MModule__uses_ffi_61d(val
* self
, short int p0
) {
22 self
->attrs
[COLOR_common_ffi__MModule___64duses_ffi
].s
= p0
; /* @uses_ffi on <self:MModule> */
25 /* method common_ffi#MModule#uses_ffi= for (self: Object, Bool) */
26 void VIRTUAL_common_ffi__MModule__uses_ffi_61d(val
* self
, short int p0
) {
27 common_ffi__MModule__uses_ffi_61d(self
, p0
);
30 /* method common_ffi#AModule#ffi_ccu for (self: AModule): nullable CCompilationUnit */
31 val
* common_ffi__AModule__ffi_ccu(val
* self
) {
32 val
* var
/* : nullable CCompilationUnit */;
33 val
* var1
/* : nullable CCompilationUnit */;
34 var1
= self
->attrs
[COLOR_common_ffi__AModule___64dffi_ccu
].val
; /* @ffi_ccu on <self:AModule> */
39 /* method common_ffi#AModule#ffi_ccu for (self: Object): nullable CCompilationUnit */
40 val
* VIRTUAL_common_ffi__AModule__ffi_ccu(val
* self
) {
41 val
* var
/* : nullable CCompilationUnit */;
42 val
* var1
/* : nullable CCompilationUnit */;
43 var1
= common_ffi__AModule__ffi_ccu(self
);
48 /* method common_ffi#AModule#ffi_ccu= for (self: AModule, nullable CCompilationUnit) */
49 void common_ffi__AModule__ffi_ccu_61d(val
* self
, val
* p0
) {
50 self
->attrs
[COLOR_common_ffi__AModule___64dffi_ccu
].val
= p0
; /* @ffi_ccu on <self:AModule> */
53 /* method common_ffi#AModule#ffi_ccu= for (self: Object, nullable CCompilationUnit) */
54 void VIRTUAL_common_ffi__AModule__ffi_ccu_61d(val
* self
, val
* p0
) {
55 common_ffi__AModule__ffi_ccu_61d(self
, p0
);
58 /* method common_ffi#AModule#present_languages for (self: AModule): HashSet[FFILanguage] */
59 val
* common_ffi__AModule__present_languages(val
* self
) {
60 val
* var
/* : HashSet[FFILanguage] */;
61 val
* var1
/* : HashSet[FFILanguage] */;
62 var1
= self
->attrs
[COLOR_common_ffi__AModule___64dpresent_languages
].val
; /* @present_languages on <self:AModule> */
64 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @present_languages");
65 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 44);
72 /* method common_ffi#AModule#present_languages for (self: Object): HashSet[FFILanguage] */
73 val
* VIRTUAL_common_ffi__AModule__present_languages(val
* self
) {
74 val
* var
/* : HashSet[FFILanguage] */;
75 val
* var1
/* : HashSet[FFILanguage] */;
76 var1
= common_ffi__AModule__present_languages(self
);
81 /* method common_ffi#AModule#present_languages= for (self: AModule, HashSet[FFILanguage]) */
82 void common_ffi__AModule__present_languages_61d(val
* self
, val
* p0
) {
83 self
->attrs
[COLOR_common_ffi__AModule___64dpresent_languages
].val
= p0
; /* @present_languages on <self:AModule> */
86 /* method common_ffi#AModule#present_languages= for (self: Object, HashSet[FFILanguage]) */
87 void VIRTUAL_common_ffi__AModule__present_languages_61d(val
* self
, val
* p0
) {
88 common_ffi__AModule__present_languages_61d(self
, p0
);
91 /* method common_ffi#AModule#ffi_callbacks for (self: AModule): HashMap[FFILanguage, Set[NitniCallback]] */
92 val
* common_ffi__AModule__ffi_callbacks(val
* self
) {
93 val
* var
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
94 val
* var1
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
95 var1
= self
->attrs
[COLOR_common_ffi__AModule___64dffi_callbacks
].val
; /* @ffi_callbacks on <self:AModule> */
97 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @ffi_callbacks");
98 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 47);
105 /* method common_ffi#AModule#ffi_callbacks for (self: Object): HashMap[FFILanguage, Set[NitniCallback]] */
106 val
* VIRTUAL_common_ffi__AModule__ffi_callbacks(val
* self
) {
107 val
* var
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
108 val
* var1
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
109 var1
= common_ffi__AModule__ffi_callbacks(self
);
114 /* method common_ffi#AModule#ffi_callbacks= for (self: AModule, HashMap[FFILanguage, Set[NitniCallback]]) */
115 void common_ffi__AModule__ffi_callbacks_61d(val
* self
, val
* p0
) {
116 self
->attrs
[COLOR_common_ffi__AModule___64dffi_callbacks
].val
= p0
; /* @ffi_callbacks on <self:AModule> */
119 /* method common_ffi#AModule#ffi_callbacks= for (self: Object, HashMap[FFILanguage, Set[NitniCallback]]) */
120 void VIRTUAL_common_ffi__AModule__ffi_callbacks_61d(val
* self
, val
* p0
) {
121 common_ffi__AModule__ffi_callbacks_61d(self
, p0
);
124 /* method common_ffi#AModule#ensure_compile_ffi_wrapper for (self: AModule) */
125 void common_ffi__AModule__ensure_compile_ffi_wrapper(val
* self
) {
126 val
* var
/* : nullable CCompilationUnit */;
127 val
* var1
/* : null */;
128 short int var2
/* : Bool */;
129 val
* var3
/* : CCompilationUnit */;
130 val
* var_ffi_ccu
/* var ffi_ccu: CCompilationUnit */;
131 val
* var4
/* : ANodes[AExternCodeBlock] */;
132 val
* var5
/* : Iterator[nullable Object] */;
133 short int var6
/* : Bool */;
134 val
* var7
/* : nullable Object */;
135 val
* var_block
/* var block: AExternCodeBlock */;
136 val
* var8
/* : nullable FFILanguage */;
137 val
* var_language
/* var language: nullable FFILanguage */;
138 val
* var9
/* : null */;
139 short int var10
/* : Bool */;
140 val
* var11
/* : HashSet[FFILanguage] */;
141 val
* var12
/* : Template */;
143 val
* var13
/* : String */;
144 char* var14
/* : NativeString */;
145 long var15
/* : Int */;
146 val
* var16
/* : String */;
147 val
* var17
/* : nullable MModule */;
148 val
* var18
/* : String */;
149 static val
* varonce19
;
150 val
* var20
/* : String */;
151 char* var21
/* : NativeString */;
152 long var22
/* : Int */;
153 val
* var23
/* : String */;
154 val
* var24
/* : Array[Object] */;
155 long var25
/* : Int */;
156 val
* var26
/* : NativeArray[Object] */;
157 val
* var27
/* : String */;
158 val
* var28
/* : ANodes[AClassdef] */;
159 val
* var29
/* : Iterator[nullable Object] */;
160 short int var30
/* : Bool */;
161 val
* var31
/* : nullable Object */;
162 val
* var_nclassdef
/* var nclassdef: AClassdef */;
163 short int var32
/* : Bool */;
164 short int var33
/* : Bool */;
167 short int var_
/* var : Bool */;
168 val
* var34
/* : nullable AExternCodeBlock */;
169 val
* var35
/* : null */;
170 short int var36
/* : Bool */;
171 val
* var37
/* : nullable MModule */;
172 short int var38
/* : Bool */;
173 val
* var39
/* : nullable AExternCodeBlock */;
174 val
* var40
/* : nullable FFILanguage */;
175 val
* var_language41
/* var language: nullable FFILanguage */;
176 val
* var42
/* : null */;
177 short int var43
/* : Bool */;
178 val
* var44
/* : HashSet[FFILanguage] */;
179 val
* var45
/* : nullable AExternCodeBlock */;
180 val
* var46
/* : nullable FFILanguage */;
181 val
* var47
/* : nullable AExternCodeBlock */;
182 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(self
) /* ffi_ccu on <self:AModule>*/;
185 var2
= 0; /* is null */
187 var2
= 1; /* arg is null and recv is not */
193 var3
= NEW_c_tools__CCompilationUnit(&type_c_tools__CCompilationUnit
);
194 ((void (*)(val
*))(var3
->class->vft
[COLOR_c_tools__CCompilationUnit__init
]))(var3
) /* init on <var3:CCompilationUnit>*/;
196 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu_61d
]))(self
, var_ffi_ccu
) /* ffi_ccu= on <self:AModule>*/;
197 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AModule__n_extern_code_blocks
]))(self
) /* n_extern_code_blocks on <self:AModule>*/;
198 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:ANodes[AExternCodeBlock]>*/;
200 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
202 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
204 var8
= ((val
* (*)(val
*))(var_block
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var_block
) /* language on <var_block:AExternCodeBlock>*/;
207 if (var_language
== NULL
) {
208 var10
= 0; /* is null */
210 var10
= 1; /* arg is null and recv is not */
213 fprintf(stderr
, "Runtime error: %s", "Assert failed");
214 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 63);
217 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__present_languages
]))(self
) /* present_languages on <self:AModule>*/;
218 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var11
, var_language
) /* add on <var11:HashSet[FFILanguage]>*/;
219 ((void (*)(val
*, val
*, val
*, val
*))(var_language
->class->vft
[COLOR_ffi_base__FFILanguage__compile_module_block
]))(var_language
, var_block
, var_ffi_ccu
, self
) /* compile_module_block on <var_language:nullable FFILanguage(FFILanguage)>*/;
220 CONTINUE_label
: (void)0;
221 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
223 BREAK_label
: (void)0;
224 var12
= ((val
* (*)(val
*))(var_ffi_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_base
]))(var_ffi_ccu
) /* header_c_base on <var_ffi_ccu:CCompilationUnit>*/;
228 var14
= "#include \"";
230 var16
= string__NativeString__to_s_with_length(var14
, var15
);
234 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(self
) /* mmodule on <self:AModule>*/;
236 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
237 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 68);
240 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_mmodule__MModule__name
]))(var17
) /* name on <var17:nullable MModule>*/;
245 var21
= "._nitni.h\"\n";
247 var23
= string__NativeString__to_s_with_length(var21
, var22
);
251 var24
= NEW_array__Array(&type_array__Arraykernel__Object
);
252 { /* var24 = array_instance Array[Object] */
254 var26
= NEW_array__NativeArray(var25
, &type_array__NativeArraykernel__Object
);
255 ((struct instance_array__NativeArray
*)var26
)->values
[0] = (val
*) var13
;
256 ((struct instance_array__NativeArray
*)var26
)->values
[1] = (val
*) var18
;
257 ((struct instance_array__NativeArray
*)var26
)->values
[2] = (val
*) var20
;
258 ((void (*)(val
*, val
*, long))(var24
->class->vft
[COLOR_array__Array__with_native
]))(var24
, var26
, var25
) /* with_native on <var24:Array[Object]>*/;
260 var27
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_string__Object__to_s
]))(var24
) /* to_s on <var24:Array[Object]>*/;
261 ((void (*)(val
*, val
*))(var12
->class->vft
[COLOR_template__Template__add
]))(var12
, var27
) /* add on <var12:Template>*/;
262 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(self
) /* n_classdefs on <self:AModule>*/;
263 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var28
) /* iterator on <var28:ANodes[AClassdef]>*/;
265 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
267 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
268 var_nclassdef
= var31
;
269 /* <var_nclassdef:AClassdef> isa AStdClassdef */
270 cltype
= type_parser_nodes__AStdClassdef
.color
;
271 idtype
= type_parser_nodes__AStdClassdef
.id
;
272 if(cltype
>= var_nclassdef
->type
->table_size
) {
275 var33
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
279 var34
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_extern_code_block
]))(var_nclassdef
) /* n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)>*/;
282 var36
= 0; /* is null */
284 var36
= 1; /* arg is null and recv is not */
291 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(self
) /* mmodule on <self:AModule>*/;
294 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
295 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 73);
298 ((void (*)(val
*, short int))(var37
->class->vft
[COLOR_common_ffi__MModule__uses_ffi_61d
]))(var37
, var38
) /* uses_ffi= on <var37:nullable MModule>*/;
300 var39
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_extern_code_block
]))(var_nclassdef
) /* n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)>*/;
302 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
303 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 74);
306 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var39
) /* language on <var39:nullable AExternCodeBlock>*/;
308 var_language41
= var40
;
310 if (var_language41
== NULL
) {
311 var43
= 0; /* is null */
313 var43
= 1; /* arg is null and recv is not */
316 fprintf(stderr
, "Runtime error: %s", "Assert failed");
317 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 75);
320 var44
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__present_languages
]))(self
) /* present_languages on <self:AModule>*/;
321 ((void (*)(val
*, val
*))(var44
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var44
, var_language41
) /* add on <var44:HashSet[FFILanguage]>*/;
322 var45
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_extern_code_block
]))(var_nclassdef
) /* n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)>*/;
324 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
325 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 77);
328 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var45
) /* language on <var45:nullable AExternCodeBlock>*/;
330 var47
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_extern_code_block
]))(var_nclassdef
) /* n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)>*/;
332 fprintf(stderr
, "Runtime error: %s", "Cast failed");
333 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 78);
337 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
338 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 77);
341 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var46
->class->vft
[COLOR_ffi_base__FFILanguage__compile_extern_class
]))(var46
, var47
, var_nclassdef
, var_ffi_ccu
, self
) /* compile_extern_class on <var46:nullable FFILanguage>*/;
345 CONTINUE_label48
: (void)0;
346 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
348 BREAK_label48
: (void)0;
351 /* method common_ffi#AModule#ensure_compile_ffi_wrapper for (self: Object) */
352 void VIRTUAL_common_ffi__AModule__ensure_compile_ffi_wrapper(val
* self
) {
353 common_ffi__AModule__ensure_compile_ffi_wrapper(self
);
356 /* method common_ffi#AModule#finalize_ffi_wrapper for (self: AModule, String, MModule) */
357 void common_ffi__AModule__finalize_ffi_wrapper(val
* self
, val
* p0
, val
* p1
) {
358 val
* var_compdir
/* var compdir: String */;
359 val
* var_mainmodule
/* var mainmodule: MModule */;
360 val
* var
/* : HashSet[FFILanguage] */;
361 val
* var1
/* : Iterator[nullable Object] */;
362 short int var2
/* : Bool */;
363 val
* var3
/* : nullable Object */;
364 val
* var_language
/* var language: FFILanguage */;
365 val
* var4
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
366 val
* var5
/* : Collection[Object] */;
367 short int var6
/* : Bool */;
368 val
* var7
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
369 val
* var8
/* : nullable Object */;
370 val
* var9
/* : Iterator[nullable Object] */;
371 short int var10
/* : Bool */;
372 val
* var11
/* : nullable Object */;
373 val
* var_callback
/* var callback: NitniCallback */;
374 val
* var12
/* : nullable CCompilationUnit */;
375 val
* var14
/* : nullable MModule */;
376 val
* var15
/* : Array[MModule] */;
377 val
* var16
/* : Iterator[nullable Object] */;
378 short int var17
/* : Bool */;
379 val
* var18
/* : nullable Object */;
380 val
* var_mod
/* var mod: MModule */;
381 short int var19
/* : Bool */;
382 val
* var20
/* : nullable CCompilationUnit */;
383 val
* var21
/* : Template */;
385 val
* var22
/* : String */;
386 char* var23
/* : NativeString */;
387 long var24
/* : Int */;
388 val
* var25
/* : String */;
389 val
* var26
/* : String */;
390 static val
* varonce27
;
391 val
* var28
/* : String */;
392 char* var29
/* : NativeString */;
393 long var30
/* : Int */;
394 val
* var31
/* : String */;
395 val
* var32
/* : Array[Object] */;
396 long var33
/* : Int */;
397 val
* var34
/* : NativeArray[Object] */;
398 val
* var35
/* : String */;
399 val
* var37
/* : nullable CCompilationUnit */;
400 val
* var38
/* : nullable CCompilationUnit */;
401 val
* var39
/* : Array[String] */;
402 val
* var40
/* : Iterator[nullable Object] */;
403 short int var41
/* : Bool */;
404 val
* var42
/* : nullable Object */;
405 val
* var_filename
/* var filename: String */;
406 val
* var43
/* : Array[ExternFile] */;
407 val
* var44
/* : ExternCFile */;
408 val
* var45
/* : String */;
411 ((void (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ensure_compile_ffi_wrapper
]))(self
) /* ensure_compile_ffi_wrapper on <self:AModule>*/;
412 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__present_languages
]))(self
) /* present_languages on <self:AModule>*/;
413 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:HashSet[FFILanguage]>*/;
415 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
417 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
419 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_callbacks
]))(self
) /* ffi_callbacks on <self:AModule>*/;
420 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var4
) /* keys on <var4:HashMap[FFILanguage, Set[NitniCallback]]>*/;
421 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var_language
) /* has on <var5:Collection[Object](HashMapKeys[FFILanguage, Set[NitniCallback]])>*/;
423 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_callbacks
]))(self
) /* ffi_callbacks on <self:AModule>*/;
424 var8
= ((val
* (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var7
, var_language
) /* [] on <var7:HashMap[FFILanguage, Set[NitniCallback]]>*/;
425 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:nullable Object(Set[NitniCallback])>*/;
427 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
429 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
430 var_callback
= var11
;
431 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(self
) /* ffi_ccu on <self:AModule>*/;
433 fprintf(stderr
, "Runtime error: %s", "Cast failed");
434 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 90);
437 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var_language
->class->vft
[COLOR_ffi_base__FFILanguage__compile_callback
]))(var_language
, var_callback
, self
, var_mainmodule
, var12
) /* compile_callback on <var_language:FFILanguage>*/;
438 CONTINUE_label
: (void)0;
439 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
441 BREAK_label
: (void)0;
442 ((void (*)(val
*, val
*, val
*))(var_language
->class->vft
[COLOR_ffi_base__FFILanguage__compile_to_files
]))(var_language
, self
, var_compdir
) /* compile_to_files on <var_language:FFILanguage>*/;
445 CONTINUE_label13
: (void)0;
446 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
448 BREAK_label13
: (void)0;
449 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(self
) /* mmodule on <self:AModule>*/;
451 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
452 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 97);
455 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_header_dependency__MModule__header_dependencies
]))(var14
) /* header_dependencies on <var14:nullable MModule>*/;
457 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var15
) /* iterator on <var15:Array[MModule]>*/;
459 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
461 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
463 var19
= ((short int (*)(val
*))(var_mod
->class->vft
[COLOR_common_ffi__MModule__uses_ffi
]))(var_mod
) /* uses_ffi on <var_mod:MModule>*/;
465 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(self
) /* ffi_ccu on <self:AModule>*/;
467 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
468 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 98);
471 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_c_tools__CCompilationUnit__header_custom
]))(var20
) /* header_custom on <var20:nullable CCompilationUnit>*/;
476 var23
= "#include \"";
478 var25
= string__NativeString__to_s_with_length(var23
, var24
);
482 var26
= ((val
* (*)(val
*))(var_mod
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mod
) /* name on <var_mod:MModule>*/;
486 var29
= "._ffi.h\"\n";
488 var31
= string__NativeString__to_s_with_length(var29
, var30
);
492 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
493 { /* var32 = array_instance Array[Object] */
495 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
496 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var22
;
497 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var26
;
498 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
499 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
501 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
502 ((void (*)(val
*, val
*))(var21
->class->vft
[COLOR_template__Template__add
]))(var21
, var35
) /* add on <var21:Template>*/;
505 CONTINUE_label36
: (void)0;
506 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
508 BREAK_label36
: (void)0;
509 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(self
) /* ffi_ccu on <self:AModule>*/;
511 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
512 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 101);
515 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_ffi_base__CCompilationUnit__write_as_impl
]))(var37
, self
, var_compdir
) /* write_as_impl on <var37:nullable CCompilationUnit>*/;
517 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(self
) /* ffi_ccu on <self:AModule>*/;
519 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
520 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 102);
523 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_c_tools__CCompilationUnit__files
]))(var38
) /* files on <var38:nullable CCompilationUnit>*/;
525 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var39
) /* iterator on <var39:Array[String]>*/;
527 var41
= ((short int (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var40
) /* is_ok on <var40:Iterator[nullable Object]>*/;
529 var42
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var40
) /* item on <var40:Iterator[nullable Object]>*/;
530 var_filename
= var42
;
531 var43
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ffi_base__AModule__ffi_files
]))(self
) /* ffi_files on <self:AModule>*/;
532 var44
= NEW_c__ExternCFile(&type_c__ExternCFile
);
533 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_c__AModule__c_compiler_options
]))(self
) /* c_compiler_options on <self:AModule>*/;
534 ((void (*)(val
*, val
*, val
*))(var44
->class->vft
[COLOR_c__ExternCFile__init
]))(var44
, var_filename
, var45
) /* init on <var44:ExternCFile>*/;
535 ((void (*)(val
*, val
*))(var43
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var43
, var44
) /* add on <var43:Array[ExternFile]>*/;
536 CONTINUE_label46
: (void)0;
537 ((void (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var40
) /* next on <var40:Iterator[nullable Object]>*/;
539 BREAK_label46
: (void)0;
542 /* method common_ffi#AModule#finalize_ffi_wrapper for (self: Object, String, MModule) */
543 void VIRTUAL_common_ffi__AModule__finalize_ffi_wrapper(val
* self
, val
* p0
, val
* p1
) {
544 common_ffi__AModule__finalize_ffi_wrapper(self
, p0
, p1
);
547 /* method common_ffi#AExternPropdef#ffi_has_been_compiled for (self: AExternPropdef): Bool */
548 short int common_ffi__AExternPropdef__ffi_has_been_compiled(val
* self
) {
549 short int var
/* : Bool */;
550 short int var1
/* : Bool */;
551 var1
= self
->attrs
[COLOR_common_ffi__AExternPropdef___64dffi_has_been_compiled
].s
; /* @ffi_has_been_compiled on <self:AExternPropdef> */
556 /* method common_ffi#AExternPropdef#ffi_has_been_compiled for (self: Object): Bool */
557 short int VIRTUAL_common_ffi__AExternPropdef__ffi_has_been_compiled(val
* self
) {
558 short int var
/* : Bool */;
559 short int var1
/* : Bool */;
560 var1
= common_ffi__AExternPropdef__ffi_has_been_compiled(self
);
565 /* method common_ffi#AExternPropdef#ffi_has_been_compiled= for (self: AExternPropdef, Bool) */
566 void common_ffi__AExternPropdef__ffi_has_been_compiled_61d(val
* self
, short int p0
) {
567 self
->attrs
[COLOR_common_ffi__AExternPropdef___64dffi_has_been_compiled
].s
= p0
; /* @ffi_has_been_compiled on <self:AExternPropdef> */
570 /* method common_ffi#AExternPropdef#ffi_has_been_compiled= for (self: Object, Bool) */
571 void VIRTUAL_common_ffi__AExternPropdef__ffi_has_been_compiled_61d(val
* self
, short int p0
) {
572 common_ffi__AExternPropdef__ffi_has_been_compiled_61d(self
, p0
);
575 /* method common_ffi#AExternPropdef#compile_ffi_method for (self: AExternPropdef, AModule) */
576 void common_ffi__AExternPropdef__compile_ffi_method(val
* self
, val
* p0
) {
577 val
* var_amodule
/* var amodule: AModule */;
578 val
* var
/* : nullable AExternCodeBlock */;
579 val
* var1
/* : null */;
580 short int var2
/* : Bool */;
581 short int var3
/* : Bool */;
582 short int var4
/* : Bool */;
583 val
* var5
/* : nullable AExternCodeBlock */;
584 val
* var6
/* : nullable FFILanguage */;
585 val
* var_language
/* var language: nullable FFILanguage */;
586 val
* var7
/* : null */;
587 short int var8
/* : Bool */;
588 val
* var9
/* : HashSet[FFILanguage] */;
589 val
* var10
/* : nullable AExternCodeBlock */;
590 val
* var11
/* : nullable FFILanguage */;
591 val
* var12
/* : nullable AExternCodeBlock */;
592 val
* var13
/* : nullable CCompilationUnit */;
594 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern_code_block
]))(self
) /* n_extern_code_block on <self:AExternPropdef>*/;
597 var2
= 0; /* is null */
599 var2
= 1; /* arg is null and recv is not */
602 fprintf(stderr
, "Runtime error: %s", "Assert failed");
603 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 112);
606 var3
= ((short int (*)(val
*))(self
->class->vft
[COLOR_common_ffi__AExternPropdef__ffi_has_been_compiled
]))(self
) /* ffi_has_been_compiled on <self:AExternPropdef>*/;
612 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_common_ffi__AExternPropdef__ffi_has_been_compiled_61d
]))(self
, var4
) /* ffi_has_been_compiled= on <self:AExternPropdef>*/;
613 ((void (*)(val
*))(var_amodule
->class->vft
[COLOR_common_ffi__AModule__ensure_compile_ffi_wrapper
]))(var_amodule
) /* ensure_compile_ffi_wrapper on <var_amodule:AModule>*/;
614 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern_code_block
]))(self
) /* n_extern_code_block on <self:AExternPropdef>*/;
616 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
617 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 119);
620 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var5
) /* language on <var5:nullable AExternCodeBlock>*/;
624 if (var_language
== NULL
) {
625 var8
= 0; /* is null */
627 var8
= 1; /* arg is null and recv is not */
630 fprintf(stderr
, "Runtime error: %s", "Assert failed");
631 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 120);
634 var9
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_common_ffi__AModule__present_languages
]))(var_amodule
) /* present_languages on <var_amodule:AModule>*/;
635 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var9
, var_language
) /* add on <var9:HashSet[FFILanguage]>*/;
636 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern_code_block
]))(self
) /* n_extern_code_block on <self:AExternPropdef>*/;
638 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
639 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 122);
642 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var10
) /* language on <var10:nullable AExternCodeBlock>*/;
644 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern_code_block
]))(self
) /* n_extern_code_block on <self:AExternPropdef>*/;
646 fprintf(stderr
, "Runtime error: %s", "Cast failed");
647 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 123);
650 var13
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_common_ffi__AModule__ffi_ccu
]))(var_amodule
) /* ffi_ccu on <var_amodule:AModule>*/;
652 fprintf(stderr
, "Runtime error: %s", "Cast failed");
653 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 123);
657 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
658 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 122);
661 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var11
->class->vft
[COLOR_ffi_base__FFILanguage__compile_extern_method
]))(var11
, var12
, self
, var13
, var_amodule
) /* compile_extern_method on <var11:nullable FFILanguage>*/;
665 /* method common_ffi#AExternPropdef#compile_ffi_method for (self: Object, AModule) */
666 void VIRTUAL_common_ffi__AExternPropdef__compile_ffi_method(val
* self
, val
* p0
) {
667 common_ffi__AExternPropdef__compile_ffi_method(self
, p0
);
670 /* method common_ffi#VerifyNitniCallbacksPhase#process_npropdef for (self: VerifyNitniCallbacksPhase, APropdef) */
671 void common_ffi__VerifyNitniCallbacksPhase__process_npropdef(val
* self
, val
* p0
) {
672 val
* var_npropdef
/* var npropdef: APropdef */;
673 short int var
/* : Bool */;
676 short int var1
/* : Bool */;
677 val
* var2
/* : nullable AExternCodeBlock */;
678 val
* var_code_block
/* var code_block: nullable AExternCodeBlock */;
679 val
* var3
/* : null */;
680 short int var4
/* : Bool */;
681 val
* var5
/* : nullable FFILanguage */;
682 val
* var_lang
/* var lang: nullable FFILanguage */;
683 val
* var6
/* : null */;
684 short int var7
/* : Bool */;
685 val
* var8
/* : ForeignCallbackSet */;
686 val
* var9
/* : Set[NitniCallback] */;
687 val
* var10
/* : Iterator[nullable Object] */;
688 short int var11
/* : Bool */;
689 val
* var12
/* : nullable Object */;
690 val
* var_callback
/* var callback: NitniCallback */;
691 val
* var13
/* : nullable ANode */;
692 val
* var14
/* : nullable ANode */;
693 short int var15
/* : Bool */;
696 const char* var_class_name
;
697 val
* var18
/* : HashMap[FFILanguage, Set[NitniCallback]] */;
698 val
* var_map
/* var map: HashMap[FFILanguage, Set[NitniCallback]] */;
699 val
* var19
/* : Collection[Object] */;
700 short int var20
/* : Bool */;
701 short int var21
/* : Bool */;
702 val
* var22
/* : HashSet[NitniCallback] */;
703 val
* var23
/* : nullable Object */;
705 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_common_ffi__VerifyNitniCallbacksPhase__process_npropdef
]))(self
, p0
) /* process_npropdef on <self:VerifyNitniCallbacksPhase>*/;
706 /* <var_npropdef:APropdef> isa AExternPropdef */
707 cltype
= type_parser_nodes__AExternPropdef
.color
;
708 idtype
= type_parser_nodes__AExternPropdef
.id
;
709 if(cltype
>= var_npropdef
->type
->table_size
) {
712 var
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
719 var2
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern_code_block
]))(var_npropdef
) /* n_extern_code_block on <var_npropdef:APropdef(AExternPropdef)>*/;
720 var_code_block
= var2
;
722 if (var_code_block
== NULL
) {
723 var4
= 1; /* is null */
725 var4
= 0; /* arg is null but recv is not */
731 var5
= ((val
* (*)(val
*))(var_code_block
->class->vft
[COLOR_ffi_base__AExternCodeBlock__language
]))(var_code_block
) /* language on <var_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
734 if (var_lang
== NULL
) {
735 var7
= 0; /* is null */
737 var7
= 1; /* arg is null and recv is not */
740 fprintf(stderr
, "Runtime error: %s", "Assert failed");
741 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 138);
744 var8
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(var_npropdef
) /* foreign_callbacks on <var_npropdef:APropdef(AExternPropdef)>*/;
745 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__all
]))(var8
) /* all on <var8:ForeignCallbackSet>*/;
746 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Set[NitniCallback]>*/;
748 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
750 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
751 var_callback
= var12
;
752 var13
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var_npropdef
) /* parent on <var_npropdef:APropdef(AExternPropdef)>*/;
754 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
755 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 142);
758 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var13
) /* parent on <var13:nullable ANode>*/;
760 /* <var14:nullable ANode> isa AModule */
761 cltype16
= type_parser_nodes__AModule
.color
;
762 idtype17
= type_parser_nodes__AModule
.id
;
766 if(cltype16
>= var14
->type
->table_size
) {
769 var15
= var14
->type
->type_table
[cltype16
] == idtype17
;
773 var_class_name
= var14
== NULL ?
"null" : var14
->type
->name
;
774 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name
);
775 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/common_ffi.nit", 142);
778 var18
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_common_ffi__AModule__ffi_callbacks
]))(var14
) /* ffi_callbacks on <var14:nullable ANode(AModule)>*/;
780 var19
= ((val
* (*)(val
*))(var_map
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var_map
) /* keys on <var_map:HashMap[FFILanguage, Set[NitniCallback]]>*/;
781 var20
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var19
, var_lang
) /* has on <var19:Collection[Object](HashMapKeys[FFILanguage, Set[NitniCallback]])>*/;
784 var22
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetnitni_callbacks__NitniCallback
);
785 ((void (*)(val
*))(var22
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var22
) /* init on <var22:HashSet[NitniCallback]>*/;
786 ((void (*)(val
*, val
*, val
*))(var_map
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_map
, var_lang
, var22
) /* []= on <var_map:HashMap[FFILanguage, Set[NitniCallback]]>*/;
789 var23
= ((val
* (*)(val
*, val
*))(var_map
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_map
, var_lang
) /* [] on <var_map:HashMap[FFILanguage, Set[NitniCallback]]>*/;
790 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var_callback
) /* add on <var23:nullable Object(Set[NitniCallback])>*/;
791 CONTINUE_label
: (void)0;
792 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
794 BREAK_label
: (void)0;
797 /* method common_ffi#VerifyNitniCallbacksPhase#process_npropdef for (self: Object, APropdef) */
798 void VIRTUAL_common_ffi__VerifyNitniCallbacksPhase__process_npropdef(val
* self
, val
* p0
) {
799 common_ffi__VerifyNitniCallbacksPhase__process_npropdef(self
, p0
);