mirror of https://github.com/mgba-emu/mgba.git
Scripting: MSVC fixes
This commit is contained in:
parent
e93d780db7
commit
bd20540276
|
@ -8,7 +8,8 @@
|
|||
|
||||
#define _mCPP_CAT(A, B) A ## B
|
||||
|
||||
#define _mCALL(FN, ...) FN(__VA_ARGS__)
|
||||
#define _mIDENT(...) __VA_ARGS__
|
||||
#define _mCALL(FN, ...) _mIDENT(FN(__VA_ARGS__))
|
||||
#define _mCAT(A, B) _mCPP_CAT(A, B)
|
||||
#define _mSTRINGIFY(X, ...) #X
|
||||
|
||||
|
@ -36,25 +37,25 @@
|
|||
|
||||
#define _mEVEN_0(...)
|
||||
#define _mEVEN_1(A, B, ...) A
|
||||
#define _mEVEN_2(A, B, ...) A, _mEVEN_1(__VA_ARGS__)
|
||||
#define _mEVEN_3(A, B, ...) A, _mEVEN_2(__VA_ARGS__)
|
||||
#define _mEVEN_4(A, B, ...) A, _mEVEN_3(__VA_ARGS__)
|
||||
#define _mEVEN_5(A, B, ...) A, _mEVEN_4(__VA_ARGS__)
|
||||
#define _mEVEN_6(A, B, ...) A, _mEVEN_5(__VA_ARGS__)
|
||||
#define _mEVEN_7(A, B, ...) A, _mEVEN_6(__VA_ARGS__)
|
||||
#define _mEVEN_8(A, B, ...) A, _mEVEN_7(__VA_ARGS__)
|
||||
#define _mEVEN_9(A, B, ...) A, _mEVEN_7(__VA_ARGS__)
|
||||
#define _mEVEN_2(A, B, ...) A, _mIDENT(_mEVEN_1(__VA_ARGS__))
|
||||
#define _mEVEN_3(A, B, ...) A, _mIDENT(_mEVEN_2(__VA_ARGS__))
|
||||
#define _mEVEN_4(A, B, ...) A, _mIDENT(_mEVEN_3(__VA_ARGS__))
|
||||
#define _mEVEN_5(A, B, ...) A, _mIDENT(_mEVEN_4(__VA_ARGS__))
|
||||
#define _mEVEN_6(A, B, ...) A, _mIDENT(_mEVEN_5(__VA_ARGS__))
|
||||
#define _mEVEN_7(A, B, ...) A, _mIDENT(_mEVEN_6(__VA_ARGS__))
|
||||
#define _mEVEN_8(A, B, ...) A, _mIDENT(_mEVEN_7(__VA_ARGS__))
|
||||
#define _mEVEN_9(A, B, ...) A, _mIDENT(_mEVEN_7(__VA_ARGS__))
|
||||
|
||||
#define _mODD_0(...)
|
||||
#define _mODD_1(A, B, ...) B
|
||||
#define _mODD_2(A, B, ...) B, _mODD_1(__VA_ARGS__)
|
||||
#define _mODD_3(A, B, ...) B, _mODD_2(__VA_ARGS__)
|
||||
#define _mODD_4(A, B, ...) B, _mODD_3(__VA_ARGS__)
|
||||
#define _mODD_5(A, B, ...) B, _mODD_4(__VA_ARGS__)
|
||||
#define _mODD_6(A, B, ...) B, _mODD_5(__VA_ARGS__)
|
||||
#define _mODD_7(A, B, ...) B, _mODD_6(__VA_ARGS__)
|
||||
#define _mODD_8(A, B, ...) B, _mODD_7(__VA_ARGS__)
|
||||
#define _mODD_9(A, B, ...) B, _mODD_7(__VA_ARGS__)
|
||||
#define _mODD_2(A, B, ...) B, _mIDENT(_mODD_1(__VA_ARGS__))
|
||||
#define _mODD_3(A, B, ...) B, _mIDENT(_mODD_2(__VA_ARGS__))
|
||||
#define _mODD_4(A, B, ...) B, _mIDENT(_mODD_3(__VA_ARGS__))
|
||||
#define _mODD_5(A, B, ...) B, _mIDENT(_mODD_4(__VA_ARGS__))
|
||||
#define _mODD_6(A, B, ...) B, _mIDENT(_mODD_5(__VA_ARGS__))
|
||||
#define _mODD_7(A, B, ...) B, _mIDENT(_mODD_6(__VA_ARGS__))
|
||||
#define _mODD_8(A, B, ...) B, _mIDENT(_mODD_7(__VA_ARGS__))
|
||||
#define _mODD_9(A, B, ...) B, _mIDENT(_mODD_7(__VA_ARGS__))
|
||||
|
||||
#define _mSUCC_0 1
|
||||
#define _mSUCC_1 2
|
||||
|
|
|
@ -275,7 +275,7 @@ CXX_GUARD_START
|
|||
|
||||
#define mSCRIPT_DECLARE_STRUCT_VOID_METHOD(TYPE, NAME, FUNCTION, NPARAMS, ...) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, void, NAME, , NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 0, , NPARAMS, NULL, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 0, 0, NPARAMS, NULL, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_VOID_METHOD_BINDING(TYPE, NAME, FUNCTION, S, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_C_METHOD(TYPE, RETURN, NAME, FUNCTION, NPARAMS, ...) \
|
||||
|
@ -285,31 +285,31 @@ CXX_GUARD_START
|
|||
|
||||
#define mSCRIPT_DECLARE_STRUCT_VOID_C_METHOD(TYPE, NAME, FUNCTION, NPARAMS, ...) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, void, NAME, const, NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 0, , NPARAMS, NULL, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 0, 0, NPARAMS, NULL, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_VOID_METHOD_BINDING(TYPE, NAME, FUNCTION, CS, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_METHOD_WITH_DEFAULTS(TYPE, RETURN, NAME, FUNCTION, NPARAMS, ...) \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## _ ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, mSCRIPT_TYPE_C_ ## RETURN, NAME, , NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 1, mSCRIPT_TYPE_MS_ ## RETURN, NPARAMS, _mSTStructBindingDefaults_ ## TYPE ## NAME, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 1, mSCRIPT_TYPE_MS_ ## RETURN, NPARAMS, _mIDENT(_mSTStructBindingDefaults_ ## TYPE ## _ ## NAME), __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_BINDING(TYPE, RETURN, NAME, FUNCTION, S, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_VOID_METHOD_WITH_DEFAULTS(TYPE, NAME, FUNCTION, NPARAMS, ...) \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## _ ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, void, NAME, , NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 0, , NPARAMS, _mSTStructBindingDefaults_ ## TYPE ## NAME, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, S, 0, 0, NPARAMS, _mIDENT(_mSTStructBindingDefaults_ ## TYPE ## _ ## NAME), __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_VOID_METHOD_BINDING(TYPE, NAME, FUNCTION, S, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_C_METHOD_WITH_DEFAULTS(TYPE, RETURN, NAME, FUNCTION, NPARAMS, ...) \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## _ ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, mSCRIPT_TYPE_C_ ## RETURN, NAME, const, NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 1, mSCRIPT_TYPE_MS_ ## RETURN, NPARAMS, _mSTStructBindingDefaults_ ## TYPE ## NAME, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 1, mSCRIPT_TYPE_MS_##RETURN, NPARAMS, _mIDENT(_mSTStructBindingDefaults_ ## TYPE ## _ ## NAME), __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_BINDING(TYPE, RETURN, NAME, FUNCTION, CS, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_VOID_C_METHOD_WITH_DEFAULTS(TYPE, NAME, FUNCTION, NPARAMS, ...) \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## _ ## NAME[mSCRIPT_PARAMS_MAX]; \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD_SIGNATURE(TYPE, void, NAME, const, NPARAMS, _mEVEN_ ## NPARAMS(__VA_ARGS__)); \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 0, , NPARAMS, _mSTStructBindingDefaults_ ## TYPE ## NAME, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_METHOD(TYPE, NAME, CS, 0, 0, NPARAMS, _mIDENT(_mSTStructBindingDefaults_ ## TYPE ## _ ## NAME, __VA_ARGS__) \
|
||||
_mSCRIPT_DECLARE_STRUCT_VOID_METHOD_BINDING(TYPE, NAME, FUNCTION, CS, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DECLARE_STRUCT_D_METHOD(TYPE, RETURN, NAME, NPARAMS, ...) \
|
||||
|
@ -337,7 +337,7 @@ CXX_GUARD_START
|
|||
mSCRIPT_DECLARE_STRUCT_VOID_C_METHOD_WITH_DEFAU(TYPE, NAME, p0->NAME, NPARAMS, __VA_ARGS__)
|
||||
|
||||
#define mSCRIPT_DEFINE_STRUCT_BINDING_DEFAULTS(TYPE, NAME) \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## NAME[mSCRIPT_PARAMS_MAX] = { \
|
||||
static const struct mScriptValue _mSTStructBindingDefaults_ ## TYPE ## _ ## NAME[mSCRIPT_PARAMS_MAX] = { \
|
||||
mSCRIPT_NO_DEFAULT,
|
||||
|
||||
#define mSCRIPT_DEFINE_DEFAULTS_END }
|
||||
|
@ -441,6 +441,14 @@ CXX_GUARD_START
|
|||
}, \
|
||||
} \
|
||||
|
||||
#define mSCRIPT_VAL(TYPE, VALUE) { \
|
||||
.type = (mSCRIPT_TYPE_MS_ ## TYPE), \
|
||||
.refs = mSCRIPT_VALUE_UNREF, \
|
||||
.value = { \
|
||||
.mSCRIPT_TYPE_FIELD_ ## TYPE = (VALUE) \
|
||||
}, \
|
||||
} \
|
||||
|
||||
#define mSCRIPT_MAKE_S8(VALUE) mSCRIPT_MAKE(S8, VALUE)
|
||||
#define mSCRIPT_MAKE_U8(VALUE) mSCRIPT_MAKE(U8, VALUE)
|
||||
#define mSCRIPT_MAKE_S16(VALUE) mSCRIPT_MAKE(S16, VALUE)
|
||||
|
@ -455,6 +463,20 @@ CXX_GUARD_START
|
|||
#define mSCRIPT_MAKE_S(STRUCT, VALUE) mSCRIPT_MAKE(S(STRUCT), VALUE)
|
||||
#define mSCRIPT_MAKE_CS(STRUCT, VALUE) mSCRIPT_MAKE(CS(STRUCT), VALUE)
|
||||
|
||||
#define mSCRIPT_S8(VALUE) mSCRIPT_VAL(S8, VALUE)
|
||||
#define mSCRIPT_U8(VALUE) mSCRIPT_VAL(U8, VALUE)
|
||||
#define mSCRIPT_S16(VALUE) mSCRIPT_VAL(S16, VALUE)
|
||||
#define mSCRIPT_U16(VALUE) mSCRIPT_VAL(U16, VALUE)
|
||||
#define mSCRIPT_S32(VALUE) mSCRIPT_VAL(S32, VALUE)
|
||||
#define mSCRIPT_U32(VALUE) mSCRIPT_VAL(U32, VALUE)
|
||||
#define mSCRIPT_F32(VALUE) mSCRIPT_VAL(F32, VALUE)
|
||||
#define mSCRIPT_S64(VALUE) mSCRIPT_VAL(S64, VALUE)
|
||||
#define mSCRIPT_U64(VALUE) mSCRIPT_VAL(U64, VALUE)
|
||||
#define mSCRIPT_F64(VALUE) mSCRIPT_VAL(F64, VALUE)
|
||||
#define mSCRIPT_CHARP(VALUE) mSCRIPT_VAL(CHARP, VALUE)
|
||||
#define mSCRIPT_S(STRUCT, VALUE) mSCRIPT_VAL(S(STRUCT), VALUE)
|
||||
#define mSCRIPT_CS(STRUCT, VALUE) mSCRIPT_VAL(CS(STRUCT), VALUE)
|
||||
|
||||
#define mSCRIPT_NO_DEFAULT { \
|
||||
.type = NULL, \
|
||||
.refs = mSCRIPT_VALUE_UNREF, \
|
||||
|
|
Loading…
Reference in New Issue