Go to the documentation of this file. 1 #ifndef _RE2C_UTIL_C99_STDINT_
2 #define _RE2C_UTIL_C99_STDINT_
40 typedef signed char int8_t;
41 typedef unsigned char uint8_t;
42 #elif SIZEOF_SHORT == 1
43 typedef signed short int8_t;
44 typedef unsigned short uint8_t;
46 typedef signed int int8_t;
47 typedef unsigned int uint8_t;
48 #elif SIZEOF_LONG == 1
49 typedef signed long int8_t;
50 typedef unsigned long uint8_t;
51 #elif SIZEOF_LONG_LONG == 1
52 typedef signed long long int8_t;
53 typedef unsigned long long uint8_t;
54 #elif SIZEOF___INT64 == 1
55 typedef signed __int64 int8_t;
56 typedef unsigned __int64 uint8_t;
61 typedef signed char int16_t;
62 typedef unsigned char uint16_t;
63 #elif SIZEOF_SHORT == 2
64 typedef signed short int16_t;
65 typedef unsigned short uint16_t;
67 typedef signed int int16_t;
68 typedef unsigned int uint16_t;
69 #elif SIZEOF_LONG == 2
70 typedef signed long int16_t;
71 typedef unsigned long uint16_t;
72 #elif SIZEOF_LONG_LONG == 2
73 typedef signed long long int16_t;
74 typedef unsigned long long uint16_t;
75 #elif SIZEOF___INT64 == 2
76 typedef signed __int64 int16_t;
77 typedef unsigned __int64 uint16_t;
82 typedef signed char int32_t;
83 typedef unsigned char uint32_t;
84 #elif SIZEOF_SHORT == 4
85 typedef signed short int32_t;
86 typedef unsigned short uint32_t;
88 typedef signed int int32_t;
89 typedef unsigned int uint32_t;
90 #elif SIZEOF_LONG == 4
91 typedef signed long int32_t;
92 typedef unsigned long uint32_t;
93 #elif SIZEOF_LONG_LONG == 4
94 typedef signed long long int32_t;
95 typedef unsigned long long uint32_t;
96 #elif SIZEOF___INT64 == 4
97 typedef signed __int64 int32_t;
98 typedef unsigned __int64 uint32_t;
103 typedef signed char int64_t;
104 typedef unsigned char uint64_t;
105 #elif SIZEOF_SHORT == 8
106 typedef signed short int64_t;
107 typedef unsigned short uint64_t;
108 #elif SIZEOF_INT == 8
109 typedef signed int int64_t;
110 typedef unsigned int uint64_t;
111 #elif SIZEOF_LONG == 8
112 typedef signed long int64_t;
113 typedef unsigned long uint64_t;
114 #elif SIZEOF_LONG_LONG == 8
115 typedef signed long long int64_t;
116 typedef unsigned long long uint64_t;
117 #elif SIZEOF___INT64 == 8
118 typedef signed __int64 int64_t;
119 typedef unsigned __int64 uint64_t;
143 #if SIZEOF_VOID_P == 8
155 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // See footnote 220 at page 257 and footnote 221 at page 259
158 #define INT8_MIN (-128) // -2^(8 - 1)
159 #define INT8_MAX 127 // 2^(8 - 1) - 1
160 #define INT16_MIN (-32768) // -2^(16 - 1)
161 #define INT16_MAX 32767 // 2^(16 - 1) - 1
162 #define INT32_MIN (-2147483648) // -2^(32 - 1)
163 #define INT32_MAX 2147483647 // 2^(32 - 1) - 1
164 #define INT64_MIN (-9223372036854775808) // -2^(64 - 1)
165 #define INT64_MAX 9223372036854775807 // 2^(64 - 1) - 1
166 #define UINT8_MAX 0xFF // 2^8 - 1
167 #define UINT16_MAX 0xFFFF // 2^16 - 1
168 #define UINT32_MAX 0xFFFFffff // 2^32 - 1
169 #define UINT64_MAX 0xFFFFffffFFFFffff // 2^64 - 1
172 #define INT_LEAST8_MIN INT8_MIN
173 #define INT_LEAST8_MAX INT8_MAX
174 #define INT_LEAST16_MIN INT16_MIN
175 #define INT_LEAST16_MAX INT16_MAX
176 #define INT_LEAST32_MIN INT32_MIN
177 #define INT_LEAST32_MAX INT32_MAX
178 #define INT_LEAST64_MIN INT64_MIN
179 #define INT_LEAST64_MAX INT64_MAX
180 #define UINT_LEAST8_MAX UINT8_MAX
181 #define UINT_LEAST16_MAX UINT16_MAX
182 #define UINT_LEAST32_MAX UINT32_MAX
183 #define UINT_LEAST64_MAX UINT64_MAX
186 #define INT_FAST8_MIN INT8_MIN
187 #define INT_FAST8_MAX INT8_MAX
188 #define INT_FAST16_MIN INT16_MIN
189 #define INT_FAST16_MAX INT16_MAX
190 #define INT_FAST32_MIN INT32_MIN
191 #define INT_FAST32_MAX INT32_MAX
192 #define INT_FAST64_MIN INT64_MIN
193 #define INT_FAST64_MAX INT64_MAX
194 #define UINT_FAST8_MAX UINT8_MAX
195 #define UINT_FAST16_MAX UINT16_MAX
196 #define UINT_FAST32_MAX UINT32_MAX
197 #define UINT_FAST64_MAX UINT64_MAX
200 #define INTPTR_MIN (-32767) // -(2^15 - 1)
201 #define INTPTR_MAX 32767 // 2^15 - 1
202 #define UINTPTR_MAX 0xFFFF // 2^16 - 1
205 #define INTMAX_MIN (-9223372036854775807) // -(2^63 - 1)
206 #define INTMAX_MAX 9223372036854775807 // 2^63 - 1
207 #define UINTMAX_MAX 0xFFFFffffFFFFffff // 2^64 - 1
229 #endif // __STDC_LIMIT_MACROS
231 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // See footnote 224 at page 260
235 #define UINT8_C(x) x##u
237 #define UINT16_C(x) x##u
239 #define UINT32_C(x) x##u
241 # define INT64_C(x) x##l
242 # define UINT64_C(x) x##ul
243 #elif SIZEOF_0LL == 8
244 # define INT64_C(x) x##ll
245 # define UINT64_C(x) x##ull
246 #elif SIZEOF_0I8 == 8
247 # define INT64_C(x) x##i8
248 # define UINT64_C(x) x##ui8
250 # define INT64_C(x) x
251 # define UINT64_C(x) x##u
255 #define INTMAX_C INT64_C
256 #define UINTMAX_C UINT64_C
258 #endif // __STDC_CONSTANT_MACROS
260 #endif // HAVE_STDINT_H
262 #endif // _RE2C_UTIL_C99_STDINT_