- DFA_state *state = dfas->sortarray[s];
- int i = state->tran_no;
- while (--i >= 0)
- if (ch >= state->trans[i].ch[0] && ch <= state->trans[i].ch[1])
- set_bit (mc, Rdst, 0, state->trans[i].to);
+ if (mask & 15)
+ {
+ if (mask & 1)
+ {
+ struct DFA_state *state = dfa->states[s];
+ int i = state->tran_no;
+ while (--i >= 0)
+ if (ch >= state->trans[i].ch[0] &&
+ ch <= state->trans[i].ch[1])
+ set_bit (mc, Rdst, 0, state->trans[i].to);
+ }
+ if (mask & 2)
+ {
+ struct DFA_state *state = dfa->states[s+1];
+ int i = state->tran_no;
+ while (--i >= 0)
+ if (ch >= state->trans[i].ch[0] &&
+ ch <= state->trans[i].ch[1])
+ set_bit (mc, Rdst, 0, state->trans[i].to);
+ }
+ if (mask & 4)
+ {
+ struct DFA_state *state = dfa->states[s+2];
+ int i = state->tran_no;
+ while (--i >= 0)
+ if (ch >= state->trans[i].ch[0] &&
+ ch <= state->trans[i].ch[1])
+ set_bit (mc, Rdst, 0, state->trans[i].to);
+ }
+ if (mask & 8)
+ {
+ struct DFA_state *state = dfa->states[s+3];
+ int i = state->tran_no;
+ while (--i >= 0)
+ if (ch >= state->trans[i].ch[0] &&
+ ch <= state->trans[i].ch[1])
+ set_bit (mc, Rdst, 0, state->trans[i].to);
+ }
+ }
+ s += 4;
+ if (s >= dfa->no_states)
+ return;
+ mask >>= 4;