1/* flex integer type definitions */
2
3#ifndef FLEXINT_H
4#define FLEXINT_H
5
6/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
7
8#if defined(__FreeBSD__) || \
9    (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
10
11/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
12 * if you want the limit (max/min) macros for int types.
13 */
14#ifndef __STDC_LIMIT_MACROS
15#define __STDC_LIMIT_MACROS 1
16#endif
17
18#include <inttypes.h>
19typedef int8_t flex_int8_t;
20typedef uint8_t flex_uint8_t;
21typedef int16_t flex_int16_t;
22typedef uint16_t flex_uint16_t;
23typedef int32_t flex_int32_t;
24typedef uint32_t flex_uint32_t;
25#else
26typedef signed char flex_int8_t;
27typedef short int flex_int16_t;
28typedef int flex_int32_t;
29typedef unsigned char flex_uint8_t;
30typedef unsigned short int flex_uint16_t;
31typedef unsigned int flex_uint32_t;
32
33/* Limits of integral types. */
34#ifndef INT8_MIN
35#define INT8_MIN               (-128)
36#endif
37#ifndef INT16_MIN
38#define INT16_MIN              (-32767-1)
39#endif
40#ifndef INT32_MIN
41#define INT32_MIN              (-2147483647-1)
42#endif
43#ifndef INT8_MAX
44#define INT8_MAX               (127)
45#endif
46#ifndef INT16_MAX
47#define INT16_MAX              (32767)
48#endif
49#ifndef INT32_MAX
50#define INT32_MAX              (2147483647)
51#endif
52#ifndef UINT8_MAX
53#define UINT8_MAX              (255U)
54#endif
55#ifndef UINT16_MAX
56#define UINT16_MAX             (65535U)
57#endif
58#ifndef UINT32_MAX
59#define UINT32_MAX             (4294967295U)
60#endif
61
62#endif /* ! C99 */
63
64#endif /* ! FLEXINT_H */
65