int main() { void *obj = truffle_import("foreign"); double sum = 0; sum += truffle_invoke_i(obj, "addI", 1); // 4 sum += truffle_invoke_c(obj, "addB", 2); // 3 sum += truffle_invoke_l(obj, "addL", 3); // 7 sum += truffle_invoke_f(obj, "addF", 4.5); // 10 sum += truffle_invoke_d(obj, "addD", 5.5); // 12 return sum; // 36 }
int rb_block_given_p() { return truffle_invoke_i(RUBY_CEXT, "rb_block_given_p"); }
int rb_type(VALUE value) { return truffle_invoke_i(RUBY_CEXT, "rb_type", value); }
int rb_str_len(VALUE string) { return truffle_invoke_i((void *)string, "bytesize"); }
int rb_fix2int(VALUE value) { return truffle_invoke_i(RUBY_CEXT, "rb_fix2int", value); }
unsigned int FIX2UINT(VALUE value) { return (unsigned int) truffle_invoke_i(RUBY_CEXT, "FIX2UINT", value); }
int FIX2INT(VALUE value) { return truffle_invoke_i(RUBY_CEXT, "FIX2INT", value); }
int NUM2INT(VALUE value) { return truffle_invoke_i(RUBY_CEXT, "NUM2INT", value); }
int rb_jt_io_handle(VALUE io) { return truffle_invoke_i(RUBY_CEXT, "rb_jt_io_handle", io); }
int NAMED(SEXP x){ IMPORT_CALLHELPER(); return truffle_invoke_i(obj, "NAMED", x); }
int TYPEOF(SEXP x) { IMPORT_CALLHELPER(); return truffle_invoke_i(obj, "TYPEOF", x); }
int Rf_asInteger(SEXP x) { IMPORT_CALLHELPER(); return truffle_invoke_i(obj, "Rf_asInteger", x); }
int LENGTH(SEXP x) { IMPORT_CALLHELPER(); return truffle_invoke_i(obj, "LENGTH", x); }
Rboolean Rf_isString(SEXP s) { IMPORT_CALLHELPER(); return (Rboolean) truffle_invoke_i(obj, "Rf_isString", s); }