/*! \file exprtype.h \brief description of EXPR variable type. EXPR variable type is passed to and from user-supplied functions. \author Igor Vlasenko \warning This header file should never be included directly. Include instead. */ #ifndef _EXPRTYPE_H #define _EXPRTYPE_H 1 #ifdef HAVE_CONFIG_H #include "config.h" #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #define EXPR_TYPE_INT 'i' #define EXPR_TYPE_DBL 'd' #define EXPR_TYPE_PSTR 'p' /* NULL is for interface only, internally NULL pstring is used. */ #define EXPR_TYPE_NULL '\0' /* UPSTR is for internal use only. it is never passed to user functions. */ #define EXPR_TYPE_UPSTR 'u' #if defined INT64_MAX || defined int64_t typedef int64_t EXPR_int64; #elif defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == 8 typedef long long int EXPR_int64; #elif defined INT64_NAME typedef INT64_NAME EXPR_int64; #else typedef long int EXPR_int64; #endif #if defined PRId64 # define EXPR_PRId64 PRId64 #elif defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == 8 # define EXPR_PRId64 "lld" #elif defined _MSC_VER # define EXPR_PRId64 "I64d" #else # define EXPR_PRId64 "ld" #endif struct exprval; #endif /* exprtype.h */ /* * Local Variables: * mode: c * End: */