diff options
Diffstat (limited to 'src/flexint_shared.h')
-rw-r--r-- | src/flexint_shared.h | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/src/flexint_shared.h b/src/flexint_shared.h index 5532813..50c0a0a 100644 --- a/src/flexint_shared.h +++ b/src/flexint_shared.h @@ -1,46 +1,59 @@ /* flex integer type definitions */ +#ifndef YYFLEX_INTTYPES_DEFINED +#define YYFLEX_INTTYPES_DEFINED + /* Prefer C99 integer types if available. */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +# if defined(__cplusplus) && __cplusplus >= 201103L +#include <cstdint> +# define YYFLEX_USE_STDINT +# endif +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former * and not the latter. */ #include <inttypes.h> -# define YYFLEX_USE_STDINT -#else -# if defined(_MSC_VER) && _MSC_VER >= 1600 +# define YYFLEX_USE_STDINT +# else +# if defined(_MSC_VER) && _MSC_VER >= 1600 /* Visual C++ 2010 does not define __STDC_VERSION__ and has <stdint.h> but not * <inttypes.h>. */ #include <stdint.h> -# define YYFLEX_USE_STDINT +# define YYFLEX_USE_STDINT +# endif # endif -#endif -#ifdef YYFLEX_USE_STDINT +# ifdef YYFLEX_USE_STDINT typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -#else +# else typedef unsigned char flex_uint8_t; typedef short int flex_int16_t; typedef unsigned short int flex_uint16_t; -# ifdef __STDC__ +# ifdef __STDC__ typedef signed char flex_int8_t; /* ISO C only requires at least 16 bits for int. */ +# ifdef __cplusplus +#include <climits> +# else #include <limits.h> -# if UINT_MAX >= 4294967295 -# define YYFLEX_INT32_DEFINED +# endif +# if UINT_MAX >= 4294967295 +# define YYFLEX_INT32_DEFINED typedef int flex_int32_t; typedef unsigned int flex_uint32_t; -# endif -# else +# endif +# else typedef char flex_int8_t; -# endif -# ifndef YYFLEX_INT32_DEFINED +# endif +# ifndef YYFLEX_INT32_DEFINED typedef long int flex_int32_t; typedef unsigned long int flex_uint32_t; +# endif # endif -#endif +#endif /* YYFLEX_INTTYPES_DEFINED */ |