From 802e5f8b20d0b77e2de7a9a18015a84b48c50c48 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Mon, 6 Feb 2023 17:13:22 +0800 Subject: [PATCH] up --- amalgamate.py | 3 - plugins/flutter/src/pocketpy.h | 1541 +---------------------------- plugins/godot/godot-cpp | 2 +- plugins/macos/pocketpy/pocketpy.h | 1541 +---------------------------- scripts/moc.py | 57 -- src/_bindings.h | 1491 ---------------------------- src/main.cpp | 4 +- src/pocketpy.h | 53 +- 8 files changed, 154 insertions(+), 4538 deletions(-) delete mode 100644 scripts/moc.py delete mode 100644 src/_bindings.h diff --git a/amalgamate.py b/amalgamate.py index 175b7806..cb7e68c4 100644 --- a/amalgamate.py +++ b/amalgamate.py @@ -1,7 +1,5 @@ with open("src/opcodes.h", "rt", encoding='utf-8') as f: OPCODES_TEXT = f.read() -with open("src/_bindings.h", "rt", encoding='utf-8') as f: - _BINDINGS_TEXT = f.read() pipeline = [ ["hash_table8.hpp", "common.h", "memory.h", "str.h", "safestl.h", "builtins.h", "error.h"], @@ -32,7 +30,6 @@ def remove_copied_include(text): text ) text = text.replace('#include "opcodes.h"', OPCODES_TEXT) - text = text.replace('#include "_bindings.h"', _BINDINGS_TEXT) return text for seq in pipeline: diff --git a/plugins/flutter/src/pocketpy.h b/plugins/flutter/src/pocketpy.h index 4a866807..95d0204d 100644 --- a/plugins/flutter/src/pocketpy.h +++ b/plugins/flutter/src/pocketpy.h @@ -6717,1498 +6717,57 @@ extern "C" { s_out->str(""); s_err->str(""); return strdup(ss.str().c_str()); } -} -extern "C" { -typedef i64 (*__f_int__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int_int(VM* vm, const char* mod, const char* name, __f_int__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef i64 (*__f_int__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int(VM* vm, const char* mod, const char* name, __f_int__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_int__int_float(VM* vm, const char* mod, const char* name, __f_int__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_int__int_str(VM* vm, const char* mod, const char* name, __f_int__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_int__int_bool(VM* vm, const char* mod, const char* name, __f_int__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_int__float_int(VM* vm, const char* mod, const char* name, __f_int__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float(VM* vm, const char* mod, const char* name, __f_int__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_int__float_str(VM* vm, const char* mod, const char* name, __f_int__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_int__float_bool(VM* vm, const char* mod, const char* name, __f_int__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_int__str_int(VM* vm, const char* mod, const char* name, __f_int__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_int__str_float(VM* vm, const char* mod, const char* name, __f_int__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str(VM* vm, const char* mod, const char* name, __f_int__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_int__str_bool(VM* vm, const char* mod, const char* name, __f_int__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_int__bool_int(VM* vm, const char* mod, const char* name, __f_int__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_int__bool_float(VM* vm, const char* mod, const char* name, __f_int__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_int__bool_str(VM* vm, const char* mod, const char* name, __f_int__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int(VM* vm, const char* mod, const char* name, __f_float__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_float__int_float(VM* vm, const char* mod, const char* name, __f_float__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_float__int_str(VM* vm, const char* mod, const char* name, __f_float__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_float__int_bool(VM* vm, const char* mod, const char* name, __f_float__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_float__float_int(VM* vm, const char* mod, const char* name, __f_float__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float(VM* vm, const char* mod, const char* name, __f_float__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_float__float_str(VM* vm, const char* mod, const char* name, __f_float__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_float__float_bool(VM* vm, const char* mod, const char* name, __f_float__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_float__str_int(VM* vm, const char* mod, const char* name, __f_float__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_float__str_float(VM* vm, const char* mod, const char* name, __f_float__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str(VM* vm, const char* mod, const char* name, __f_float__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_float__str_bool(VM* vm, const char* mod, const char* name, __f_float__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_float__bool_int(VM* vm, const char* mod, const char* name, __f_float__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_float__bool_float(VM* vm, const char* mod, const char* name, __f_float__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_float__bool_str(VM* vm, const char* mod, const char* name, __f_float__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int(VM* vm, const char* mod, const char* name, __f_str__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_str__int_float(VM* vm, const char* mod, const char* name, __f_str__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_str__int_str(VM* vm, const char* mod, const char* name, __f_str__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_str__int_bool(VM* vm, const char* mod, const char* name, __f_str__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_str__float_int(VM* vm, const char* mod, const char* name, __f_str__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float(VM* vm, const char* mod, const char* name, __f_str__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_str__float_str(VM* vm, const char* mod, const char* name, __f_str__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_str__float_bool(VM* vm, const char* mod, const char* name, __f_str__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_str__str_int(VM* vm, const char* mod, const char* name, __f_str__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_str__str_float(VM* vm, const char* mod, const char* name, __f_str__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str(VM* vm, const char* mod, const char* name, __f_str__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_str__str_bool(VM* vm, const char* mod, const char* name, __f_str__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_str__bool_int(VM* vm, const char* mod, const char* name, __f_str__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_str__bool_float(VM* vm, const char* mod, const char* name, __f_str__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_str__bool_str(VM* vm, const char* mod, const char* name, __f_str__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_bool__int_float(VM* vm, const char* mod, const char* name, __f_bool__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_bool__int_str(VM* vm, const char* mod, const char* name, __f_bool__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_bool__int_bool(VM* vm, const char* mod, const char* name, __f_bool__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_bool__float_int(VM* vm, const char* mod, const char* name, __f_bool__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_bool__float_str(VM* vm, const char* mod, const char* name, __f_bool__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_bool__float_bool(VM* vm, const char* mod, const char* name, __f_bool__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_bool__str_int(VM* vm, const char* mod, const char* name, __f_bool__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_bool__str_float(VM* vm, const char* mod, const char* name, __f_bool__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_bool__str_bool(VM* vm, const char* mod, const char* name, __f_bool__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_bool__bool_int(VM* vm, const char* mod, const char* name, __f_bool__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_bool__bool_float(VM* vm, const char* mod, const char* name, __f_bool__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_bool__bool_str(VM* vm, const char* mod, const char* name, __f_bool__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int(VM* vm, const char* mod, const char* name, __f_None__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_None__int_float(VM* vm, const char* mod, const char* name, __f_None__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_None__int_str(VM* vm, const char* mod, const char* name, __f_None__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_None__int_bool(VM* vm, const char* mod, const char* name, __f_None__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_None__float_int(VM* vm, const char* mod, const char* name, __f_None__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float(VM* vm, const char* mod, const char* name, __f_None__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_None__float_str(VM* vm, const char* mod, const char* name, __f_None__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_None__float_bool(VM* vm, const char* mod, const char* name, __f_None__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_None__str_int(VM* vm, const char* mod, const char* name, __f_None__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_None__str_float(VM* vm, const char* mod, const char* name, __f_None__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str(VM* vm, const char* mod, const char* name, __f_None__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_None__str_bool(VM* vm, const char* mod, const char* name, __f_None__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_None__bool_int(VM* vm, const char* mod, const char* name, __f_None__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_None__bool_float(VM* vm, const char* mod, const char* name, __f_None__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_None__bool_str(VM* vm, const char* mod, const char* name, __f_None__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef i64 (*__f_int__int)(i64); -__EXPORT -void pkpy_vm_bind_int__int(VM* vm, const char* mod, const char* name, __f_int__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float)(f64); -__EXPORT -void pkpy_vm_bind_int__float(VM* vm, const char* mod, const char* name, __f_int__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str)(const char*); -__EXPORT -void pkpy_vm_bind_int__str(VM* vm, const char* mod, const char* name, __f_int__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool)(bool); -__EXPORT -void pkpy_vm_bind_int__bool(VM* vm, const char* mod, const char* name, __f_int__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int)(i64); -__EXPORT -void pkpy_vm_bind_float__int(VM* vm, const char* mod, const char* name, __f_float__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float)(f64); -__EXPORT -void pkpy_vm_bind_float__float(VM* vm, const char* mod, const char* name, __f_float__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str)(const char*); -__EXPORT -void pkpy_vm_bind_float__str(VM* vm, const char* mod, const char* name, __f_float__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool)(bool); -__EXPORT -void pkpy_vm_bind_float__bool(VM* vm, const char* mod, const char* name, __f_float__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int)(i64); -__EXPORT -void pkpy_vm_bind_str__int(VM* vm, const char* mod, const char* name, __f_str__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float)(f64); -__EXPORT -void pkpy_vm_bind_str__float(VM* vm, const char* mod, const char* name, __f_str__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str)(const char*); -__EXPORT -void pkpy_vm_bind_str__str(VM* vm, const char* mod, const char* name, __f_str__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool)(bool); -__EXPORT -void pkpy_vm_bind_str__bool(VM* vm, const char* mod, const char* name, __f_str__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int)(i64); -__EXPORT -void pkpy_vm_bind_bool__int(VM* vm, const char* mod, const char* name, __f_bool__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float)(f64); -__EXPORT -void pkpy_vm_bind_bool__float(VM* vm, const char* mod, const char* name, __f_bool__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str)(const char*); -__EXPORT -void pkpy_vm_bind_bool__str(VM* vm, const char* mod, const char* name, __f_bool__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool)(bool); -__EXPORT -void pkpy_vm_bind_bool__bool(VM* vm, const char* mod, const char* name, __f_bool__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int)(i64); -__EXPORT -void pkpy_vm_bind_None__int(VM* vm, const char* mod, const char* name, __f_None__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__float)(f64); -__EXPORT -void pkpy_vm_bind_None__float(VM* vm, const char* mod, const char* name, __f_None__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__str)(const char*); -__EXPORT -void pkpy_vm_bind_None__str(VM* vm, const char* mod, const char* name, __f_None__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__bool)(bool); -__EXPORT -void pkpy_vm_bind_None__bool(VM* vm, const char* mod, const char* name, __f_None__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef i64 (*__f_int__)(); -__EXPORT -void pkpy_vm_bind_int__(VM* vm, const char* mod, const char* name, __f_int__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 ret = f(); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__)(); -__EXPORT -void pkpy_vm_bind_float__(VM* vm, const char* mod, const char* name, __f_float__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 ret = f(); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__)(); -__EXPORT -void pkpy_vm_bind_str__(VM* vm, const char* mod, const char* name, __f_str__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* ret = f(); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__)(); -__EXPORT -void pkpy_vm_bind_bool__(VM* vm, const char* mod, const char* name, __f_bool__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool ret = f(); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__)(); -__EXPORT -void pkpy_vm_bind_None__(VM* vm, const char* mod, const char* name, __f_None__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f(); - return vm->None; - }); -} + typedef i64 (*f_int_t)(const char*); + typedef f64 (*f_float_t)(const char*); + typedef bool (*f_bool_t)(const char*); + typedef const char* (*f_str_t)(const char*); + typedef void (*f_None_t)(const char*); + + static f_int_t f_int = nullptr; + static f_float_t f_float = nullptr; + static f_bool_t f_bool = nullptr; + static f_str_t f_str = nullptr; + static f_None_t f_None = nullptr; + + __EXPORT + /// Setup the callback functions. + void pkpy_setup_callbacks(f_int_t f_int, f_float_t f_float, f_bool_t f_bool, f_str_t f_str, f_None_t f_None){ + ::f_int = f_int; + ::f_float = f_float; + ::f_bool = f_bool; + ::f_str = f_str; + ::f_None = f_None; + } + + __EXPORT + /// Bind a function to a virtual machine. + char* pkpy_vm_bind(VM* vm, const char* mod, const char* name, int ret_code){ + if(!f_int || !f_float || !f_bool || !f_str || !f_None) return nullptr; + static int kGlobalBindId = 0; + for(int i=0; mod[i]; i++) if(mod[i] == ' ') return nullptr; + for(int i=0; name[i]; i++) if(name[i] == ' ') return nullptr; + std::string f_header = std::string(mod) + '.' + name + '#' + std::to_string(kGlobalBindId++); + PyVar obj = vm->new_module_if_not_existed(mod); + vm->bindFunc<-1>(obj, name, [ret_code, f_header](VM* vm, const pkpy::Args& args){ + _StrStream ss; + ss << f_header << ' '; + for(int i=0; icall(args[i], __json__); + ss << vm->PyStr_AS_C(x) << ' '; + } + switch(ret_code){ + case 'i': return vm->PyInt(f_int(ss.str().c_str())); + case 'f': return vm->PyFloat(f_float(ss.str().c_str())); + case 'b': return vm->PyBool(f_bool(ss.str().c_str())); + case 's': return vm->PyStr(f_str(ss.str().c_str())); + case 'N': f_None(ss.str().c_str()); return vm->None; + } + UNREACHABLE(); + return vm->None; + }); + return strdup(f_header.c_str()); + } } #endif // POCKETPY_H \ No newline at end of file diff --git a/plugins/godot/godot-cpp b/plugins/godot/godot-cpp index 6df3b2fd..5a56f312 160000 --- a/plugins/godot/godot-cpp +++ b/plugins/godot/godot-cpp @@ -1 +1 @@ -Subproject commit 6df3b2fdfe9b1da642c18bfbd937b94541bf89bc +Subproject commit 5a56f312c7e20d3356eaa0ac2711c1abd0da802c diff --git a/plugins/macos/pocketpy/pocketpy.h b/plugins/macos/pocketpy/pocketpy.h index 4a866807..95d0204d 100644 --- a/plugins/macos/pocketpy/pocketpy.h +++ b/plugins/macos/pocketpy/pocketpy.h @@ -6717,1498 +6717,57 @@ extern "C" { s_out->str(""); s_err->str(""); return strdup(ss.str().c_str()); } -} -extern "C" { -typedef i64 (*__f_int__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int_int(VM* vm, const char* mod, const char* name, __f_int__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef i64 (*__f_int__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int(VM* vm, const char* mod, const char* name, __f_int__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_int__int_float(VM* vm, const char* mod, const char* name, __f_int__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_int__int_str(VM* vm, const char* mod, const char* name, __f_int__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_int__int_bool(VM* vm, const char* mod, const char* name, __f_int__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_int__float_int(VM* vm, const char* mod, const char* name, __f_int__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float(VM* vm, const char* mod, const char* name, __f_int__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_int__float_str(VM* vm, const char* mod, const char* name, __f_int__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_int__float_bool(VM* vm, const char* mod, const char* name, __f_int__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_int__str_int(VM* vm, const char* mod, const char* name, __f_int__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_int__str_float(VM* vm, const char* mod, const char* name, __f_int__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str(VM* vm, const char* mod, const char* name, __f_int__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_int__str_bool(VM* vm, const char* mod, const char* name, __f_int__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_int__bool_int(VM* vm, const char* mod, const char* name, __f_int__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_int__bool_float(VM* vm, const char* mod, const char* name, __f_int__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_int__bool_str(VM* vm, const char* mod, const char* name, __f_int__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int(VM* vm, const char* mod, const char* name, __f_float__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_float__int_float(VM* vm, const char* mod, const char* name, __f_float__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_float__int_str(VM* vm, const char* mod, const char* name, __f_float__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_float__int_bool(VM* vm, const char* mod, const char* name, __f_float__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_float__float_int(VM* vm, const char* mod, const char* name, __f_float__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float(VM* vm, const char* mod, const char* name, __f_float__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_float__float_str(VM* vm, const char* mod, const char* name, __f_float__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_float__float_bool(VM* vm, const char* mod, const char* name, __f_float__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_float__str_int(VM* vm, const char* mod, const char* name, __f_float__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_float__str_float(VM* vm, const char* mod, const char* name, __f_float__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str(VM* vm, const char* mod, const char* name, __f_float__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_float__str_bool(VM* vm, const char* mod, const char* name, __f_float__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_float__bool_int(VM* vm, const char* mod, const char* name, __f_float__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_float__bool_float(VM* vm, const char* mod, const char* name, __f_float__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_float__bool_str(VM* vm, const char* mod, const char* name, __f_float__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int(VM* vm, const char* mod, const char* name, __f_str__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_str__int_float(VM* vm, const char* mod, const char* name, __f_str__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_str__int_str(VM* vm, const char* mod, const char* name, __f_str__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_str__int_bool(VM* vm, const char* mod, const char* name, __f_str__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_str__float_int(VM* vm, const char* mod, const char* name, __f_str__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float(VM* vm, const char* mod, const char* name, __f_str__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_str__float_str(VM* vm, const char* mod, const char* name, __f_str__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_str__float_bool(VM* vm, const char* mod, const char* name, __f_str__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_str__str_int(VM* vm, const char* mod, const char* name, __f_str__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_str__str_float(VM* vm, const char* mod, const char* name, __f_str__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str(VM* vm, const char* mod, const char* name, __f_str__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_str__str_bool(VM* vm, const char* mod, const char* name, __f_str__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_str__bool_int(VM* vm, const char* mod, const char* name, __f_str__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_str__bool_float(VM* vm, const char* mod, const char* name, __f_str__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_str__bool_str(VM* vm, const char* mod, const char* name, __f_str__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_bool__int_float(VM* vm, const char* mod, const char* name, __f_bool__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_bool__int_str(VM* vm, const char* mod, const char* name, __f_bool__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_bool__int_bool(VM* vm, const char* mod, const char* name, __f_bool__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_bool__float_int(VM* vm, const char* mod, const char* name, __f_bool__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_bool__float_str(VM* vm, const char* mod, const char* name, __f_bool__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_bool__float_bool(VM* vm, const char* mod, const char* name, __f_bool__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_bool__str_int(VM* vm, const char* mod, const char* name, __f_bool__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_bool__str_float(VM* vm, const char* mod, const char* name, __f_bool__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_bool__str_bool(VM* vm, const char* mod, const char* name, __f_bool__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_bool__bool_int(VM* vm, const char* mod, const char* name, __f_bool__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_bool__bool_float(VM* vm, const char* mod, const char* name, __f_bool__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_bool__bool_str(VM* vm, const char* mod, const char* name, __f_bool__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int(VM* vm, const char* mod, const char* name, __f_None__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_None__int_float(VM* vm, const char* mod, const char* name, __f_None__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_None__int_str(VM* vm, const char* mod, const char* name, __f_None__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_None__int_bool(VM* vm, const char* mod, const char* name, __f_None__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_None__float_int(VM* vm, const char* mod, const char* name, __f_None__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float(VM* vm, const char* mod, const char* name, __f_None__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_None__float_str(VM* vm, const char* mod, const char* name, __f_None__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_None__float_bool(VM* vm, const char* mod, const char* name, __f_None__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_None__str_int(VM* vm, const char* mod, const char* name, __f_None__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_None__str_float(VM* vm, const char* mod, const char* name, __f_None__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str(VM* vm, const char* mod, const char* name, __f_None__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_None__str_bool(VM* vm, const char* mod, const char* name, __f_None__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_None__bool_int(VM* vm, const char* mod, const char* name, __f_None__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_None__bool_float(VM* vm, const char* mod, const char* name, __f_None__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_None__bool_str(VM* vm, const char* mod, const char* name, __f_None__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef i64 (*__f_int__int)(i64); -__EXPORT -void pkpy_vm_bind_int__int(VM* vm, const char* mod, const char* name, __f_int__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float)(f64); -__EXPORT -void pkpy_vm_bind_int__float(VM* vm, const char* mod, const char* name, __f_int__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str)(const char*); -__EXPORT -void pkpy_vm_bind_int__str(VM* vm, const char* mod, const char* name, __f_int__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool)(bool); -__EXPORT -void pkpy_vm_bind_int__bool(VM* vm, const char* mod, const char* name, __f_int__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int)(i64); -__EXPORT -void pkpy_vm_bind_float__int(VM* vm, const char* mod, const char* name, __f_float__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float)(f64); -__EXPORT -void pkpy_vm_bind_float__float(VM* vm, const char* mod, const char* name, __f_float__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str)(const char*); -__EXPORT -void pkpy_vm_bind_float__str(VM* vm, const char* mod, const char* name, __f_float__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool)(bool); -__EXPORT -void pkpy_vm_bind_float__bool(VM* vm, const char* mod, const char* name, __f_float__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int)(i64); -__EXPORT -void pkpy_vm_bind_str__int(VM* vm, const char* mod, const char* name, __f_str__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float)(f64); -__EXPORT -void pkpy_vm_bind_str__float(VM* vm, const char* mod, const char* name, __f_str__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str)(const char*); -__EXPORT -void pkpy_vm_bind_str__str(VM* vm, const char* mod, const char* name, __f_str__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool)(bool); -__EXPORT -void pkpy_vm_bind_str__bool(VM* vm, const char* mod, const char* name, __f_str__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int)(i64); -__EXPORT -void pkpy_vm_bind_bool__int(VM* vm, const char* mod, const char* name, __f_bool__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float)(f64); -__EXPORT -void pkpy_vm_bind_bool__float(VM* vm, const char* mod, const char* name, __f_bool__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str)(const char*); -__EXPORT -void pkpy_vm_bind_bool__str(VM* vm, const char* mod, const char* name, __f_bool__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool)(bool); -__EXPORT -void pkpy_vm_bind_bool__bool(VM* vm, const char* mod, const char* name, __f_bool__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int)(i64); -__EXPORT -void pkpy_vm_bind_None__int(VM* vm, const char* mod, const char* name, __f_None__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__float)(f64); -__EXPORT -void pkpy_vm_bind_None__float(VM* vm, const char* mod, const char* name, __f_None__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__str)(const char*); -__EXPORT -void pkpy_vm_bind_None__str(VM* vm, const char* mod, const char* name, __f_None__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__bool)(bool); -__EXPORT -void pkpy_vm_bind_None__bool(VM* vm, const char* mod, const char* name, __f_None__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef i64 (*__f_int__)(); -__EXPORT -void pkpy_vm_bind_int__(VM* vm, const char* mod, const char* name, __f_int__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 ret = f(); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__)(); -__EXPORT -void pkpy_vm_bind_float__(VM* vm, const char* mod, const char* name, __f_float__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 ret = f(); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__)(); -__EXPORT -void pkpy_vm_bind_str__(VM* vm, const char* mod, const char* name, __f_str__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* ret = f(); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__)(); -__EXPORT -void pkpy_vm_bind_bool__(VM* vm, const char* mod, const char* name, __f_bool__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool ret = f(); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__)(); -__EXPORT -void pkpy_vm_bind_None__(VM* vm, const char* mod, const char* name, __f_None__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f(); - return vm->None; - }); -} + typedef i64 (*f_int_t)(const char*); + typedef f64 (*f_float_t)(const char*); + typedef bool (*f_bool_t)(const char*); + typedef const char* (*f_str_t)(const char*); + typedef void (*f_None_t)(const char*); + + static f_int_t f_int = nullptr; + static f_float_t f_float = nullptr; + static f_bool_t f_bool = nullptr; + static f_str_t f_str = nullptr; + static f_None_t f_None = nullptr; + + __EXPORT + /// Setup the callback functions. + void pkpy_setup_callbacks(f_int_t f_int, f_float_t f_float, f_bool_t f_bool, f_str_t f_str, f_None_t f_None){ + ::f_int = f_int; + ::f_float = f_float; + ::f_bool = f_bool; + ::f_str = f_str; + ::f_None = f_None; + } + + __EXPORT + /// Bind a function to a virtual machine. + char* pkpy_vm_bind(VM* vm, const char* mod, const char* name, int ret_code){ + if(!f_int || !f_float || !f_bool || !f_str || !f_None) return nullptr; + static int kGlobalBindId = 0; + for(int i=0; mod[i]; i++) if(mod[i] == ' ') return nullptr; + for(int i=0; name[i]; i++) if(name[i] == ' ') return nullptr; + std::string f_header = std::string(mod) + '.' + name + '#' + std::to_string(kGlobalBindId++); + PyVar obj = vm->new_module_if_not_existed(mod); + vm->bindFunc<-1>(obj, name, [ret_code, f_header](VM* vm, const pkpy::Args& args){ + _StrStream ss; + ss << f_header << ' '; + for(int i=0; icall(args[i], __json__); + ss << vm->PyStr_AS_C(x) << ' '; + } + switch(ret_code){ + case 'i': return vm->PyInt(f_int(ss.str().c_str())); + case 'f': return vm->PyFloat(f_float(ss.str().c_str())); + case 'b': return vm->PyBool(f_bool(ss.str().c_str())); + case 's': return vm->PyStr(f_str(ss.str().c_str())); + case 'N': f_None(ss.str().c_str()); return vm->None; + } + UNREACHABLE(); + return vm->None; + }); + return strdup(f_header.c_str()); + } } #endif // POCKETPY_H \ No newline at end of file diff --git a/scripts/moc.py b/scripts/moc.py deleted file mode 100644 index b32cb3e2..00000000 --- a/scripts/moc.py +++ /dev/null @@ -1,57 +0,0 @@ -mapping = { - 'int': 'i64', - 'float': 'f64', - 'str': 'const char*', - 'bool': 'bool', - 'None': 'void' -} - -def args(n, a: list, res: list, first=True): - if n == 0: - # 3 args must be the same type - if len(a) == 4 and len(set(a[1:])) != 1: - return - res.append(tuple(a)) - return - for p_ret, c_ret in mapping.items(): - if not first and p_ret == 'None': - continue - a.append(p_ret) - args(n-1, a, res, first=False) - a.pop() - -data = [] -for n in [4,3,2,1]: - res = [] - args(n, [], res) - for p_ret,*p_args in res: - c_args = [mapping[i] for i in p_args] - c_ret = mapping[p_ret] - name = f'__f_{p_ret}__{"_".join(p_args)}' - # if c_ret == 'const char*': - # c_ret = 'char*' - s = f'typedef {c_ret} (*{name})({", ".join(c_args)});' - s += '\n' - - impl = [] - for i, p_arg in enumerate(p_args): - impl.append( f'{mapping[p_arg]} _{i} = vm->Py{p_arg.capitalize()}_AS_C(args[{i}]);' ) - call_impl = f'f({", ".join([f"_{j}" for j in range(len(p_args))])})'; - if p_ret == 'None': - impl.append( call_impl + ';' ) - impl.append( 'return vm->None;' ) - else: - impl.append ( f'{mapping[p_ret]} ret = {call_impl};' ) - impl.append( f'return vm->Py{p_ret.capitalize()}(ret);' ) - impl = '\n'.join([' '*8 + i for i in impl]) - s += f'''__EXPORT\nvoid pkpy_vm_bind{name[3:]}(VM* vm, const char* mod, const char* name, {name} f) {{ - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<{len(p_args)}>(obj, name, [f](VM* vm, const pkpy::Args& args) {{ -{impl} - }}); -}}''' + '\n' - data.append(s) - -with open('src/_bindings.h', 'w') as f: - text = '\n'.join(data) - f.write('extern "C" {\n' + text + '}') \ No newline at end of file diff --git a/src/_bindings.h b/src/_bindings.h deleted file mode 100644 index 648b6e1b..00000000 --- a/src/_bindings.h +++ /dev/null @@ -1,1491 +0,0 @@ -extern "C" { -typedef i64 (*__f_int__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int_int(VM* vm, const char* mod, const char* name, __f_int__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - i64 ret = f(_0, _1, _2); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f64 ret = f(_0, _1, _2); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - const char* ret = f(_0, _1, _2); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - bool ret = f(_0, _1, _2); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int_int)(i64, i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 _2 = vm->PyInt_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__float_float_float)(f64, f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 _2 = vm->PyFloat_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__str_str_str)(const char*, const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* _2 = vm->PyStr_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool_bool)(bool, bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool _2 = vm->PyBool_AS_C(args[2]); - f(_0, _1, _2); - return vm->None; - }); -} - -typedef i64 (*__f_int__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_int__int_int(VM* vm, const char* mod, const char* name, __f_int__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_int__int_float(VM* vm, const char* mod, const char* name, __f_int__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_int__int_str(VM* vm, const char* mod, const char* name, __f_int__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_int__int_bool(VM* vm, const char* mod, const char* name, __f_int__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_int__float_int(VM* vm, const char* mod, const char* name, __f_int__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_int__float_float(VM* vm, const char* mod, const char* name, __f_int__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_int__float_str(VM* vm, const char* mod, const char* name, __f_int__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_int__float_bool(VM* vm, const char* mod, const char* name, __f_int__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_int__str_int(VM* vm, const char* mod, const char* name, __f_int__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_int__str_float(VM* vm, const char* mod, const char* name, __f_int__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_int__str_str(VM* vm, const char* mod, const char* name, __f_int__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_int__str_bool(VM* vm, const char* mod, const char* name, __f_int__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_int__bool_int(VM* vm, const char* mod, const char* name, __f_int__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_int__bool_float(VM* vm, const char* mod, const char* name, __f_int__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_int__bool_str(VM* vm, const char* mod, const char* name, __f_int__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_int__bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - i64 ret = f(_0, _1); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_float__int_int(VM* vm, const char* mod, const char* name, __f_float__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_float__int_float(VM* vm, const char* mod, const char* name, __f_float__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_float__int_str(VM* vm, const char* mod, const char* name, __f_float__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_float__int_bool(VM* vm, const char* mod, const char* name, __f_float__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_float__float_int(VM* vm, const char* mod, const char* name, __f_float__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_float__float_float(VM* vm, const char* mod, const char* name, __f_float__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_float__float_str(VM* vm, const char* mod, const char* name, __f_float__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_float__float_bool(VM* vm, const char* mod, const char* name, __f_float__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_float__str_int(VM* vm, const char* mod, const char* name, __f_float__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_float__str_float(VM* vm, const char* mod, const char* name, __f_float__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_float__str_str(VM* vm, const char* mod, const char* name, __f_float__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_float__str_bool(VM* vm, const char* mod, const char* name, __f_float__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_float__bool_int(VM* vm, const char* mod, const char* name, __f_float__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_float__bool_float(VM* vm, const char* mod, const char* name, __f_float__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_float__bool_str(VM* vm, const char* mod, const char* name, __f_float__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_float__bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f64 ret = f(_0, _1); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_str__int_int(VM* vm, const char* mod, const char* name, __f_str__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_str__int_float(VM* vm, const char* mod, const char* name, __f_str__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_str__int_str(VM* vm, const char* mod, const char* name, __f_str__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_str__int_bool(VM* vm, const char* mod, const char* name, __f_str__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_str__float_int(VM* vm, const char* mod, const char* name, __f_str__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_str__float_float(VM* vm, const char* mod, const char* name, __f_str__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_str__float_str(VM* vm, const char* mod, const char* name, __f_str__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_str__float_bool(VM* vm, const char* mod, const char* name, __f_str__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_str__str_int(VM* vm, const char* mod, const char* name, __f_str__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_str__str_float(VM* vm, const char* mod, const char* name, __f_str__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_str__str_str(VM* vm, const char* mod, const char* name, __f_str__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_str__str_bool(VM* vm, const char* mod, const char* name, __f_str__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_str__bool_int(VM* vm, const char* mod, const char* name, __f_str__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_str__bool_float(VM* vm, const char* mod, const char* name, __f_str__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_str__bool_str(VM* vm, const char* mod, const char* name, __f_str__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_str__bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - const char* ret = f(_0, _1); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_bool__int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_bool__int_float(VM* vm, const char* mod, const char* name, __f_bool__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_bool__int_str(VM* vm, const char* mod, const char* name, __f_bool__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_bool__int_bool(VM* vm, const char* mod, const char* name, __f_bool__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_bool__float_int(VM* vm, const char* mod, const char* name, __f_bool__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_bool__float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_bool__float_str(VM* vm, const char* mod, const char* name, __f_bool__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_bool__float_bool(VM* vm, const char* mod, const char* name, __f_bool__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_bool__str_int(VM* vm, const char* mod, const char* name, __f_bool__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_bool__str_float(VM* vm, const char* mod, const char* name, __f_bool__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_bool__str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_bool__str_bool(VM* vm, const char* mod, const char* name, __f_bool__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_bool__bool_int(VM* vm, const char* mod, const char* name, __f_bool__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_bool__bool_float(VM* vm, const char* mod, const char* name, __f_bool__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_bool__bool_str(VM* vm, const char* mod, const char* name, __f_bool__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_bool__bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - bool ret = f(_0, _1); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int_int)(i64, i64); -__EXPORT -void pkpy_vm_bind_None__int_int(VM* vm, const char* mod, const char* name, __f_None__int_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_float)(i64, f64); -__EXPORT -void pkpy_vm_bind_None__int_float(VM* vm, const char* mod, const char* name, __f_None__int_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_str)(i64, const char*); -__EXPORT -void pkpy_vm_bind_None__int_str(VM* vm, const char* mod, const char* name, __f_None__int_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__int_bool)(i64, bool); -__EXPORT -void pkpy_vm_bind_None__int_bool(VM* vm, const char* mod, const char* name, __f_None__int_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_int)(f64, i64); -__EXPORT -void pkpy_vm_bind_None__float_int(VM* vm, const char* mod, const char* name, __f_None__float_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_float)(f64, f64); -__EXPORT -void pkpy_vm_bind_None__float_float(VM* vm, const char* mod, const char* name, __f_None__float_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_str)(f64, const char*); -__EXPORT -void pkpy_vm_bind_None__float_str(VM* vm, const char* mod, const char* name, __f_None__float_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__float_bool)(f64, bool); -__EXPORT -void pkpy_vm_bind_None__float_bool(VM* vm, const char* mod, const char* name, __f_None__float_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_int)(const char*, i64); -__EXPORT -void pkpy_vm_bind_None__str_int(VM* vm, const char* mod, const char* name, __f_None__str_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_float)(const char*, f64); -__EXPORT -void pkpy_vm_bind_None__str_float(VM* vm, const char* mod, const char* name, __f_None__str_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_str)(const char*, const char*); -__EXPORT -void pkpy_vm_bind_None__str_str(VM* vm, const char* mod, const char* name, __f_None__str_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__str_bool)(const char*, bool); -__EXPORT -void pkpy_vm_bind_None__str_bool(VM* vm, const char* mod, const char* name, __f_None__str_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_int)(bool, i64); -__EXPORT -void pkpy_vm_bind_None__bool_int(VM* vm, const char* mod, const char* name, __f_None__bool_int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 _1 = vm->PyInt_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_float)(bool, f64); -__EXPORT -void pkpy_vm_bind_None__bool_float(VM* vm, const char* mod, const char* name, __f_None__bool_float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 _1 = vm->PyFloat_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_str)(bool, const char*); -__EXPORT -void pkpy_vm_bind_None__bool_str(VM* vm, const char* mod, const char* name, __f_None__bool_str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* _1 = vm->PyStr_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef void (*__f_None__bool_bool)(bool, bool); -__EXPORT -void pkpy_vm_bind_None__bool_bool(VM* vm, const char* mod, const char* name, __f_None__bool_bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<2>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool _1 = vm->PyBool_AS_C(args[1]); - f(_0, _1); - return vm->None; - }); -} - -typedef i64 (*__f_int__int)(i64); -__EXPORT -void pkpy_vm_bind_int__int(VM* vm, const char* mod, const char* name, __f_int__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__float)(f64); -__EXPORT -void pkpy_vm_bind_int__float(VM* vm, const char* mod, const char* name, __f_int__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__str)(const char*); -__EXPORT -void pkpy_vm_bind_int__str(VM* vm, const char* mod, const char* name, __f_int__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef i64 (*__f_int__bool)(bool); -__EXPORT -void pkpy_vm_bind_int__bool(VM* vm, const char* mod, const char* name, __f_int__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - i64 ret = f(_0); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__int)(i64); -__EXPORT -void pkpy_vm_bind_float__int(VM* vm, const char* mod, const char* name, __f_float__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__float)(f64); -__EXPORT -void pkpy_vm_bind_float__float(VM* vm, const char* mod, const char* name, __f_float__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__str)(const char*); -__EXPORT -void pkpy_vm_bind_float__str(VM* vm, const char* mod, const char* name, __f_float__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef f64 (*__f_float__bool)(bool); -__EXPORT -void pkpy_vm_bind_float__bool(VM* vm, const char* mod, const char* name, __f_float__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f64 ret = f(_0); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__int)(i64); -__EXPORT -void pkpy_vm_bind_str__int(VM* vm, const char* mod, const char* name, __f_str__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__float)(f64); -__EXPORT -void pkpy_vm_bind_str__float(VM* vm, const char* mod, const char* name, __f_str__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__str)(const char*); -__EXPORT -void pkpy_vm_bind_str__str(VM* vm, const char* mod, const char* name, __f_str__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef const char* (*__f_str__bool)(bool); -__EXPORT -void pkpy_vm_bind_str__bool(VM* vm, const char* mod, const char* name, __f_str__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - const char* ret = f(_0); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__int)(i64); -__EXPORT -void pkpy_vm_bind_bool__int(VM* vm, const char* mod, const char* name, __f_bool__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__float)(f64); -__EXPORT -void pkpy_vm_bind_bool__float(VM* vm, const char* mod, const char* name, __f_bool__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__str)(const char*); -__EXPORT -void pkpy_vm_bind_bool__str(VM* vm, const char* mod, const char* name, __f_bool__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef bool (*__f_bool__bool)(bool); -__EXPORT -void pkpy_vm_bind_bool__bool(VM* vm, const char* mod, const char* name, __f_bool__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - bool ret = f(_0); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__int)(i64); -__EXPORT -void pkpy_vm_bind_None__int(VM* vm, const char* mod, const char* name, __f_None__int f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 _0 = vm->PyInt_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__float)(f64); -__EXPORT -void pkpy_vm_bind_None__float(VM* vm, const char* mod, const char* name, __f_None__float f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 _0 = vm->PyFloat_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__str)(const char*); -__EXPORT -void pkpy_vm_bind_None__str(VM* vm, const char* mod, const char* name, __f_None__str f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* _0 = vm->PyStr_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef void (*__f_None__bool)(bool); -__EXPORT -void pkpy_vm_bind_None__bool(VM* vm, const char* mod, const char* name, __f_None__bool f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<1>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool _0 = vm->PyBool_AS_C(args[0]); - f(_0); - return vm->None; - }); -} - -typedef i64 (*__f_int__)(); -__EXPORT -void pkpy_vm_bind_int__(VM* vm, const char* mod, const char* name, __f_int__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - i64 ret = f(); - return vm->PyInt(ret); - }); -} - -typedef f64 (*__f_float__)(); -__EXPORT -void pkpy_vm_bind_float__(VM* vm, const char* mod, const char* name, __f_float__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f64 ret = f(); - return vm->PyFloat(ret); - }); -} - -typedef const char* (*__f_str__)(); -__EXPORT -void pkpy_vm_bind_str__(VM* vm, const char* mod, const char* name, __f_str__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - const char* ret = f(); - return vm->PyStr(ret); - }); -} - -typedef bool (*__f_bool__)(); -__EXPORT -void pkpy_vm_bind_bool__(VM* vm, const char* mod, const char* name, __f_bool__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - bool ret = f(); - return vm->PyBool(ret); - }); -} - -typedef void (*__f_None__)(); -__EXPORT -void pkpy_vm_bind_None__(VM* vm, const char* mod, const char* name, __f_None__ f) { - PyVar obj = vm->new_module_if_not_existed(mod); - vm->bindFunc<0>(obj, name, [f](VM* vm, const pkpy::Args& args) { - f(); - return vm->None; - }); -} -} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index fe0f5aa9..02e32488 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,10 +19,10 @@ struct Timer{ int main(int argc, char** argv){ VM* vm = pkpy_new_vm(true); - pkpy_vm_bind_str__(vm, "builtins", "input", [](){ + vm->bindBuiltinFunc<0>("input", [](VM* vm, const pkpy::Args& args){ static std::string line; std::getline(std::cin, line); - return line.c_str(); + return vm->PyStr(line); }); if(argc == 1){ REPL* repl = pkpy_new_repl(vm); diff --git a/src/pocketpy.h b/src/pocketpy.h index ba8cc8d1..0c461ebb 100644 --- a/src/pocketpy.h +++ b/src/pocketpy.h @@ -792,6 +792,55 @@ extern "C" { s_out->str(""); s_err->str(""); return strdup(ss.str().c_str()); } -} -#include "_bindings.h" \ No newline at end of file + typedef i64 (*f_int_t)(const char*); + typedef f64 (*f_float_t)(const char*); + typedef bool (*f_bool_t)(const char*); + typedef const char* (*f_str_t)(const char*); + typedef void (*f_None_t)(const char*); + + static f_int_t f_int = nullptr; + static f_float_t f_float = nullptr; + static f_bool_t f_bool = nullptr; + static f_str_t f_str = nullptr; + static f_None_t f_None = nullptr; + + __EXPORT + /// Setup the callback functions. + void pkpy_setup_callbacks(f_int_t f_int, f_float_t f_float, f_bool_t f_bool, f_str_t f_str, f_None_t f_None){ + ::f_int = f_int; + ::f_float = f_float; + ::f_bool = f_bool; + ::f_str = f_str; + ::f_None = f_None; + } + + __EXPORT + /// Bind a function to a virtual machine. + char* pkpy_vm_bind(VM* vm, const char* mod, const char* name, int ret_code){ + if(!f_int || !f_float || !f_bool || !f_str || !f_None) return nullptr; + static int kGlobalBindId = 0; + for(int i=0; mod[i]; i++) if(mod[i] == ' ') return nullptr; + for(int i=0; name[i]; i++) if(name[i] == ' ') return nullptr; + std::string f_header = std::string(mod) + '.' + name + '#' + std::to_string(kGlobalBindId++); + PyVar obj = vm->new_module_if_not_existed(mod); + vm->bindFunc<-1>(obj, name, [ret_code, f_header](VM* vm, const pkpy::Args& args){ + _StrStream ss; + ss << f_header << ' '; + for(int i=0; icall(args[i], __json__); + ss << vm->PyStr_AS_C(x) << ' '; + } + switch(ret_code){ + case 'i': return vm->PyInt(f_int(ss.str().c_str())); + case 'f': return vm->PyFloat(f_float(ss.str().c_str())); + case 'b': return vm->PyBool(f_bool(ss.str().c_str())); + case 's': return vm->PyStr(f_str(ss.str().c_str())); + case 'N': f_None(ss.str().c_str()); return vm->None; + } + UNREACHABLE(); + return vm->None; + }); + return strdup(f_header.c_str()); + } +} \ No newline at end of file