Lines Matching refs:state
4 * High efficiency lexical state parser
195 struct state {
197 int state[PARALLEL];
206 struct state state[1000];
290 for (y = 0; y < state[walk].count; y++)
291 if (state[walk].c[y] == rset[n][m]) {
293 walk = state[walk].state[y];
303 state[walk].c[state[walk].count] = rset[n][m];
305 state[walk].state[state[walk].count] = next;
306 state[walk].count++;
312 state[walk].c[0] = n++;
313 state[walk].state[0] = 0; /* terminal marker */
314 state[walk].count = 1;
319 state[n].bytepos = walk;
320 walk += (2 * state[n].count);
329 state[n].real_pos = pos;
331 for (m = 0; m < state[n].count; m++) {
333 if (state[n].state[m] == 0)
336 if ((state[state[n].state[m]].bytepos -
341 if (m == state[n].count - 1)
352 for (m = 0; m < state[n].count; m++) {
356 state[n].real_pos, n);
360 y = state[n].c[m];
361 saw = state[n].state[m];
386 if ((state[saw].bytepos - walk) == 2) {
394 j = state[saw].real_pos - pos;
399 state[n].real_pos, state[saw].real_pos);
403 "/* (to 0x%04X state %3d) */,\n",
406 state[saw].real_pos, saw);
409 if (m == state[n].count - 1) {