37 lines
1.2 KiB
Prolog
37 lines
1.2 KiB
Prolog
:- use_module(library(os)).
|
|
:- use_module(library(ffi)).
|
|
|
|
test :-
|
|
read(Body),
|
|
term_variables(Body, [LIB]),
|
|
Body,
|
|
use_foreign_module(LIB, [
|
|
'ffi_return_values_true'([], bool),
|
|
'ffi_return_values_false'([], bool),
|
|
'ffi_return_values_i8'([], sint8),
|
|
'ffi_return_values_u8'([], uint8),
|
|
'ffi_return_values_i16'([], sint16),
|
|
'ffi_return_values_u16'([], uint16),
|
|
'ffi_return_values_i32'([], sint32),
|
|
'ffi_return_values_u32'([], uint32),
|
|
'ffi_return_values_i64'([], sint64),
|
|
'ffi_return_values_u64'([], uint64),
|
|
'ffi_return_values_f32'([], f32),
|
|
'ffi_return_values_f64'([], f64)
|
|
]),
|
|
ffi:'ffi_return_values_true',
|
|
(\+ ffi:'ffi_return_values_false'),
|
|
ffi:'ffi_return_values_i8'(I8),
|
|
ffi:'ffi_return_values_u8'(U8),
|
|
ffi:'ffi_return_values_i16'(I16),
|
|
ffi:'ffi_return_values_u16'(U16),
|
|
ffi:'ffi_return_values_i32'(I32),
|
|
ffi:'ffi_return_values_u32'(U32),
|
|
ffi:'ffi_return_values_i64'(I64),
|
|
ffi:'ffi_return_values_u64'(U64),
|
|
ffi:'ffi_return_values_f32'(F32),
|
|
ffi:'ffi_return_values_f64'(F64),
|
|
write((i8-I8, u8-U8, i16-I16, u16-U16, i32-I32, u32-U32, i64-I64, u64-U64, f32-F32, f64-F64)).
|
|
|
|
:- initialization(test).
|