BITSET_WORD_BITS
int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0
: BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS);
for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
if (other_idx < BITSET_WORD_BITS)
&& (node->token.opr.idx >= BITSET_WORD_BITS
for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
[0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
# if 4 * BITSET_WORD_BITS < ASCII_CHARS
# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
>> (SBC_MAX % BITSET_WORD_BITS == 0
: BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
if (BITSET_WORD_BITS == 64)
else if (BITSET_WORD_BITS == 32)
for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
# if BITSET_WORD_BITS <= SBC_MAX
#define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS)
set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
if (SBC_MAX % BITSET_WORD_BITS != 0)
((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i)
if (SBC_MAX % BITSET_WORD_BITS != 0)
((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1)
if (subexp_idx < BITSET_WORD_BITS
if (subexp_idx < BITSET_WORD_BITS)
&& dfa->nodes[node].opr.idx < BITSET_WORD_BITS
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
if (ASCII_CHARS % BITSET_WORD_BITS == 0)