- struct DFA_state **dfaar = xpe->dfa->states;
- struct DFA_state *s = dfaar[0];
- struct DFA_tran *t = s->trans;
- int i = s->tran_no;
- unsigned char c = *pexpr++;
- int start_line = 1;
-
- if ((c >= t->ch[0] && c <= t->ch[1]) || (!t->ch[0]))
- {
- const char *p = pexpr;
- do
- {
- if ((s = dfaar[t->to])->rule_no &&
- (start_line || s->rule_nno))
- {
- ok = 1;
- break;
- }
- for (t=s->trans, i=s->tran_no; --i >= 0; t++)
- if ((unsigned) *p >= t->ch[0] && (unsigned) *p <= t->ch[1])
- break;
- p++;
- }
- while (i >= 0);
- }
- if (ok)
- yaz_log(YLOG_DEBUG, " xpath match %s",xpe->xpath_expr);
- else
- yaz_log(YLOG_DEBUG, " xpath no match %s",xpe->xpath_expr);