38# define _RWSTD_EINVAL EINVAL
41# define _RWSTD_EINVAL 22
48typedef unsigned char UChar;
62 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
64 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
66 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 43, 99, 43, 99, 99,
68 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 99, 99, 99, 99, 99,
70 99, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
72 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 99, 99, 99, 99, 99,
74 99, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
76 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 99, 99, 99, 99, 99,
80 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
82 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
83 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
84 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
85 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
86 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
87 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
88 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99
95 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
97 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
101 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
103 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 43, 99,
105 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
107 43, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
109 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
111 99, 10, 11, 12, 13, 14, 15, 16, 17, 18, 99, 99, 99, 99, 99, 99,
113 99, 19, 20, 21, 22, 23, 24, 25, 26, 27, 99, 99, 99, 99, 99, 99,
115 99, 99, 28, 29, 30, 31, 32, 33, 34, 35, 99, 99, 99, 99, 99, 99,
117 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
119 99, 10, 11, 12, 13, 14, 15, 16, 17, 18, 99, 99, 99, 99, 99, 99,
121 99, 19, 20, 21, 22, 23, 24, 25, 26, 27, 99, 99, 99, 99, 99, 99,
123 99, 99, 28, 29, 30, 31, 32, 33, 34, 35, 99, 99, 99, 99, 99, 99,
125 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 99, 99, 99, 99, 99
128# error unknown character set (neither ASCII nor EBCDIC)
138 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
139 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158#define SHLOR(x, dig) (((x) << shift) | __rw_digit_map [UChar (dig)])
161#define SHLOR_4_DIGITS_BEGIN(res, nptr) \
163 res = SHLOR (res, *nptr); \
165 res = SHLOR (res, *nptr); \
167 res = SHLOR (res, *nptr); \
169 res = SHLOR (res, *nptr)
171#define SHLOR_4_DIGITS_END() } } } } (void)0
178#define MULADD(x, dig) (((x) * base) + __rw_digit_map [UChar (dig)])
181#define MULADD_4_DIGITS_BEGIN(res, nptr) \
183 res = MULADD (res, *++nptr); \
185 res = MULADD (res, *++nptr); \
187 res = MULADD (res, *++nptr); \
189 res = MULADD (res, *++nptr)
191#define MULADD_4_DIGITS_END() } } } } (void)0
195__rw_strtoul (
const char *nptr,
int *errptr,
int base)
_THROWS (())
202 const bool neg =
'-' == *nptr++;
211 unsigned long res = __rw_digit_map [
UChar (*nptr)];
235#if 2 < _RWSTD_LONG_SIZE
241# if 4 < _RWSTD_LONG_SIZE
258 const unsigned digit =
259 __rw_digit_map [
UChar (*nptr)];
264 const unsigned long save =
res;
275#if 2 < _RWSTD_LONG_SIZE
276# if 4 < _RWSTD_LONG_SIZE
301#if 2 < _RWSTD_LONG_SIZE
310# if 4 < _RWSTD_LONG_SIZE
367 for (
unsigned long maxres = _RWSTD_ULONG_MAX /
base; *++nptr; ) {
369 const unsigned digit = __rw_digit_map [
UChar (*nptr)];
379 if (_RWSTD_ULONG_MAX -
res < digit)
393 return _RWSTD_ULONG_MAX;
398__rw_strtol (
const char *nptr,
int *errptr,
int base)
_THROWS (())
404 const bool neg =
'-' == *nptr++;
413 unsigned long res = __rw_digit_map [
UChar (*nptr)];
437#if 2 < _RWSTD_LONG_SIZE
443# if 4 < _RWSTD_LONG_SIZE
460 const unsigned digit =
461 __rw_digit_map [
UChar (*nptr)];
466 const unsigned long save =
res;
477#if 2 < _RWSTD_LONG_SIZE
478# if 4 < _RWSTD_LONG_SIZE
503#if 2 < _RWSTD_LONG_SIZE
512# if 4 < _RWSTD_LONG_SIZE
570 for (
unsigned long maxres = _RWSTD_ULONG_MAX /
base; *++nptr; ) {
572 const unsigned digit = __rw_digit_map [
UChar (*nptr)];
582 if (_RWSTD_ULONG_MAX -
res < digit)
590 typedef unsigned long ULong;
593 if (
res >
ULong (_RWSTD_LONG_MIN)) {
595 return _RWSTD_LONG_MIN;
601 if (
res >
ULong (_RWSTD_LONG_MAX)) {
603 return _RWSTD_LONG_MAX;
612 return ULong (
neg ? _RWSTD_LONG_MIN : _RWSTD_LONG_MAX);
616#ifdef _RWSTD_LONG_LONG
626# if (_RWSTD_LONG_SIZE < _RWSTD_LLONG_SIZE)
629__rw_strtoull (
const char *nptr,
int *errptr,
int base)
_THROWS (())
635 const bool neg =
'-' == *nptr++;
672# if 4 < _RWSTD_LLONG_SIZE
688 const unsigned digit =
689 __rw_digit_map [
UChar (*nptr)];
705# if 4 < _RWSTD_LLONG_SIZE
730# if 4 < _RWSTD_LLONG_SIZE
785 for (
ULLong maxres = _RWSTD_ULLONG_MAX /
base; *++nptr; ) {
787 const unsigned digit = __rw_digit_map [
UChar (*nptr)];
797 if (_RWSTD_ULLONG_MAX -
res < digit)
811 return _RWSTD_ULLONG_MAX;
816__rw_strtoll (
const char *nptr,
int *errptr,
int base)
_THROWS (())
822 const bool neg =
'-' == *nptr++;
859# if 4 < _RWSTD_LLONG_SIZE
875 const unsigned digit =
876 __rw_digit_map [
UChar (*nptr)];
892# if 4 < _RWSTD_LLONG_SIZE
918# if 4 < _RWSTD_LLONG_SIZE
973 for (
ULLong maxres = _RWSTD_ULLONG_MAX /
base; *++nptr; ) {
975 const unsigned digit = __rw_digit_map [
UChar (*nptr)];
985 if (_RWSTD_ULLONG_MAX -
res < digit)
996 return _RWSTD_LLONG_MIN;
1004 return _RWSTD_LLONG_MAX;
1013 return ULLong (
neg ? _RWSTD_LLONG_MIN : _RWSTD_LLONG_MAX);
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_ASSERT(ignore)
#define MULADD_4_DIGITS_BEGIN(res, nptr)
#define SHLOR_4_DIGITS_END()
#define SHLOR_4_DIGITS_BEGIN(res, nptr)
#define MULADD_4_DIGITS_END()