Lines Matching refs:re

238 #define matchpush(e,x)	((x)->re.group.number?_matchpush(e,x):0)
239 #define matchcopy(e,x) ((x)->re.group.number?memcpy(matchframe->match,matchframe->save,matchframe->size):(void*)0)
240 #define matchpop(e,x) ((x)->re.group.number?memcpy(matchframe->match,matchframe->save,matchframe->size),stkpop(stkstd):(void*)0)
257 if (rex->re.group.number <= 0 || (num = rex->re.group.last - rex->re.group.number + 1) <= 0)
265 f->match = m = env->match + rex->re.group.number;
409 DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep %s %d %d %d %d `%-.*s'\n", __LINE__, debug_flag, rexname(rex->re.group.expr.rex), rex->re.group.number, rex->lo, n, rex->hi, env->end - s, s)),(0));
432 catcher.re.rep_catch.ref = rex;
433 catcher.re.rep_catch.cont = cont;
434 catcher.re.rep_catch.beg = s;
435 catcher.re.rep_catch.n = n + 1;
438 rex->re.rep_catch.beg = s;
445 DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x PUSH %d (%d,%d)(%d,%d)(%d,%d) (%d,%d)(%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->best[2].rm_so, env->best[2].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo, env->match[2].rm_so, env->match[2].rm_eo)),(0));
447 r = parse(env, rex->re.group.expr.rex, &catcher, s);
448 DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep parse %d %d `%-.*s'\n", __LINE__, debug_flag, rex->re.group.number, r, env->end - s, s)),(0));
453 DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x POP %d %d (%d,%d)(%d,%d)(%d,%d) (%d,%d)(%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, r, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->best[2].rm_so, env->best[2].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo, env->match[2].rm_so, env->match[2].rm_eo)),(0));
708 if (ic ? collic(rex->re.collate.elements, (char*)key, (char*)key, c, x) : collelt(rex->re.collate.elements, (char*)key, c, x))
719 return rex->re.collate.invert ? !r : r;
832 catcher.re.alt_catch.cont = cont;
834 r = parse(env, rex->re.group.expr.binary.left, &catcher, s);
838 ((Pos_t*)env->pos->vec + env->pos->cur - 1)->serial = catcher.serial = rex->re.group.expr.binary.serial;
839 n = parse(env, rex->re.group.expr.binary.right, &catcher, s);
848 if ((r = parse(env, rex->re.group.expr.binary.left, cont, s)) == NONE)
849 r = parse(env, rex->re.group.expr.binary.right, cont, s);
857 r = follow(env, rex, rex->re.alt_catch.cont, s);
909 if (!settst(rex->re.charclass, s[i]))
931 if (!settst(rex->re.charclass, *s))
946 if (s >= e || !settst(rex->re.charclass, *s))
1017 next.re.conj_right.cont = cont;
1020 catcher.re.conj_left.right = rex->re.group.expr.binary.right;
1021 catcher.re.conj_left.cont = &next;
1022 catcher.re.conj_left.beg = s;
1024 return parse(env, rex->re.group.expr.binary.left, &catcher, s);
1026 rex->re.conj_left.cont->re.conj_right.end = s;
1027 cont = rex->re.conj_left.cont;
1028 s = rex->re.conj_left.beg;
1029 rex = rex->re.conj_left.right;
1032 if (rex->re.conj_right.end != s)
1034 cont = rex->re.conj_right.cont;
1183 if (rex->re.group.number)
1184 env->match[rex->re.group.number].rm_so = s - env->beg;
1187 catcher.re.group_catch.eo = rex->re.group.number ? &env->match[rex->re.group.number].rm_eo : (regoff_t*)0;
1191 catcher.re.group_catch.cont = cont;
1193 r = parse(env, rex->re.group.expr.rex, &catcher, s);
1197 if (rex->re.group.number)
1198 env->match[rex->re.group.number].rm_so = -1;
1202 DEBUG_TEST(0x0200,(sfprintf(sfstdout,"AHA#%04d 0x%04x parse %s=>%s `%-.*s'\n", __LINE__, debug_flag, rexname(rex), rexname(rex->re.group_catch.cont), env->end - s, s)),(0));
1205 if (rex->re.group_catch.eo)
1206 *rex->re.group_catch.eo = s - env->beg;
1210 r = follow(env, rex, rex->re.group_catch.cont, s);
1214 if (rex->re.group_catch.eo)
1215 *rex->re.group_catch.eo = -1;
1222 catcher.re.rep_catch.beg = s;
1223 catcher.re.rep_catch.cont = cont;
1225 return parse(env, rex->re.group.expr.rex, &catcher, s);
1227 return follow(env, rex, rex->re.rep_catch.cont, rex->re.rep_catch.beg);
1229 r = parse(env, rex->re.group.expr.rex, NiL, s);
1236 if ((s - env->beg) < rex->re.group.size)
1241 catcher.re.behind_catch.beg = s;
1242 catcher.re.behind_catch.end = e = env->end;
1243 catcher.re.behind_catch.cont = cont;
1245 for (t = s - rex->re.group.size; t >= env->beg; t--)
1248 r = parse(env, rex->re.group.expr.rex, &catcher, t);
1255 if (s != rex->re.behind_catch.beg)
1257 env->end = rex->re.behind_catch.end;
1258 return follow(env, rex, rex->re.behind_catch.cont, rex->re.behind_catch.beg);
1260 if ((s - env->beg) < rex->re.group.size)
1265 catcher.re.neg_catch.beg = s;
1269 for (t = s - rex->re.group.size; t >= env->beg; t--)
1271 r = parse(env, rex->re.group.expr.rex, &catcher, t);
1283 return s == rex->re.neg_catch.beg ? GOOD : NONE;
1285 if (q = rex->re.group.expr.binary.right)
1287 catcher.re.cond_catch.next[0] = q->re.group.expr.binary.right;
1288 catcher.re.cond_catch.next[1] = q->re.group.expr.binary.left;
1291 catcher.re.cond_catch.next[0] = catcher.re.cond_catch.next[1] = 0;
1292 if (q = rex->re.group.expr.binary.left)
1297 catcher.re.cond_catch.yes = 0;
1298 catcher.re.cond_catch.beg = s;
1299 catcher.re.cond_catch.cont = cont;
1302 if (r == BAD || catcher.re.cond_catch.yes)
1305 else if (!rex->re.group.size || rex->re.group.size > 0 && env->match[rex->re.group.size].rm_so >= 0)
1309 if (q = catcher.re.cond_catch.next[r != NONE])
1314 catcher.re.group_catch.cont = cont;
1320 rex->re.cond_catch.yes = 1;
1324 catcher.re.group_catch.cont = rex->re.cond_catch.cont;
1326 return parse(env, rex->re.cond_catch.next[1], &catcher, rex->re.cond_catch.beg);
1328 return follow(env, rex, rex->re.group_catch.cont, s);
1333 catcher.re.group_catch.cont = cont;
1335 return parse(env, rex->re.group.expr.rex, &catcher, s);
1337 switch (r = follow(env, rex, rex->re.group_catch.cont, s))
1348 f = rex->re.string.fail;
1349 b = rex->re.string.base;
1350 n = rex->re.string.size;
1422 catcher.re.neg_catch.beg = s;
1425 memset(catcher.re.neg_catch.index = p, 0, n);
1427 if (parse(env, rex->re.group.expr.rex, &catcher, s) == BAD)
1458 bitset(rex->re.neg_catch.index, s - rex->re.neg_catch.beg);
1465 if ((c = *s++) == rex->re.nest.primary)
1467 if (s >= env->end || !(s = nestmatch(s, env->end, rex->re.nest.type, c)))
1471 if (rex->re.nest.primary >= 0)
1473 if (rex->re.nest.type[c] & (REX_NEST_delimiter|REX_NEST_separator|REX_NEST_terminator))
1475 if (!(s = nestmatch(s, env->end, rex->re.nest.type, c)))
1477 } while (s < env->end && !(rex->re.nest.type[*(s-1)] & (REX_NEST_delimiter|REX_NEST_separator|REX_NEST_terminator)));
1489 c = rex->re.onechar;
1678 DEBUG_TEST(0x0020,(sfprintf(sfstdout, "AHA#%04d 0x%04x %s n %d len %d s `%-.*s'\n", __LINE__, debug_flag, rexname(rex), rex->re.rep_catch.n, s - rex->re.rep_catch.beg, env->end - s, s)),(0));
1681 if (s == rex->re.rep_catch.beg && rex->re.rep_catch.n > rex->re.rep_catch.ref->lo)
1687 DEBUG_TEST(0x0002,(sfprintf(sfstdout, "AHA#%04d %p re.group.back=%d re.group.expr.rex=%s\n", __LINE__, rex->re.rep_catch.ref->re.group.expr.rex, rex->re.rep_catch.ref->re.group.expr.rex->re.group.back, rexname(rex->re.rep_catch.ref->re.group.expr.rex))),(0));
1688 if (!env->stack || s != rex->re.rep_catch.ref->re.rep_catch.beg && !rex->re.rep_catch.ref->re.group.expr.rex->re.group.back)
1694 r = follow(env, rex, rex->re.rep_catch.cont, s);
1699 r = parserep(env, rex->re.rep_catch.ref, rex->re.rep_catch.cont, s, rex->re.rep_catch.n);
1704 DEBUG_TEST(0x0200,(sfprintf(sfstdout,"AHA#%04d 0x%04x parse %s \"%-.*s\" `%-.*s'\n", __LINE__, debug_flag, rexname(rex), rex->re.string.size, rex->re.string.base, env->end - s, s)),(0));
1705 if (rex->re.string.size > (env->end - s))
1707 t = rex->re.string.base;
1708 e = t + rex->re.string.size;
1733 if (((s + rex->re.trie.min) > env->end) || !(x = rex->re.trie.root[rex->map ? rex->map[*s] : *s]))
1738 r = (*env->disc->re_execf)(env->regex, rex->re.exec.data, rex->re.exec.text, rex->re.exec.size, (const char*)s, env->end - s, &u, env->disc);
1811 listnode(e->re.group.expr.binary.left, level + 1);
1812 listnode(e->re.group.expr.binary.right, level + 1);
1822 listnode(e->re.group.expr.rex, level + 1);
1899 if (len < e->re.bm.right)
1901 DEBUG_TEST(0x0080,(sfprintf(sfstdout, "AHA#%04d REG_NOMATCH %d %d\n", __LINE__, len, e->re.bm.right)),(0));
1907 register size_t index = e->re.bm.left + e->re.bm.size;
1908 register size_t mid = len - e->re.bm.right;
1909 register size_t* skip = e->re.bm.skip;
1910 register size_t* fail = e->re.bm.fail;
1911 register Bm_mask_t** mask = e->re.bm.mask;
1915 DEBUG_TEST(0x0080,(sfprintf(sfstdout, "AHA#%04d REX_BM len=%d right=%d left=%d size=%d %d %d\n", __LINE__, len, e->re.bm.right, e->re.bm.left, e->re.bm.size, index, mid)),(0));
1925 m = mask[n = e->re.bm.size - 1][buf[index]];
1930 if (e->re.bm.back < 0)
1934 i = index - e->re.bm.back;
1941 if (index < e->re.bm.back)
1944 index -= e->re.bm.back;
1956 index += e->re.bm.size;