1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#ifndef EASYXS_SCALAR_H
#define EASYXS_SCALAR_H 1
#include "init.h"
/* EXPERIMENTAL! */
enum exs_sv_type_e {
EXS_SVTYPE_UNKNOWN,
EXS_SVTYPE_UNDEF,
EXS_SVTYPE_REFERENCE,
EXS_SVTYPE_BOOLEAN,
EXS_SVTYPE_STRING,
EXS_SVTYPE_UV,
EXS_SVTYPE_IV,
EXS_SVTYPE_NV,
};
typedef enum exs_sv_type_e exs_sv_type_e;
#ifndef SvIsBOOL
#define SvIsBOOL(sv) FALSE
#endif
#define exs_sv_type(sv) ( \
!SvOK(sv) ? EXS_SVTYPE_UNDEF \
: SvROK(sv) ? EXS_SVTYPE_REFERENCE \
: SvIsBOOL(sv) ? EXS_SVTYPE_BOOLEAN \
: SvPOK(sv) ? EXS_SVTYPE_STRING \
: SvUOK(sv) ? EXS_SVTYPE_UV \
: SvIOK(sv) ? EXS_SVTYPE_IV \
: SvNOK(sv) ? EXS_SVTYPE_NV \
: EXS_SVTYPE_UNKNOWN \
)
#endif
|