Lines Matching refs:re

119 	unsigned char*	cursor;		/* curent point in re		*/
162 e->re.data = (char*)e + sizeof(Rex_t);
204 drop(disc, e->re.group.expr.binary.left);
205 drop(disc, e->re.group.expr.binary.right);
215 drop(disc, e->re.group.expr.rex);
219 triedrop(disc, e->re.trie.root[i]);
247 if (e->re.group.expr.binary.left)
248 mark(e->re.group.expr.binary.left, set);
249 if (e->re.group.expr.binary.right)
250 mark(e->re.group.expr.binary.right, set);
261 mark(e->re.group.expr.rex, set);
281 if (e->re.group.expr.binary.left)
282 n = serialize(env, e->re.group.expr.binary.left, n);
283 e->re.group.expr.binary.serial = n++;
284 if (e->re.group.expr.binary.right)
285 n = serialize(env, e->re.group.expr.binary.right, n);
288 n = serialize(env, e->re.group.expr.binary.left, n);
289 n = serialize(env, e->re.group.expr.binary.right, n);
299 n = serialize(env, e->re.group.expr.rex, n);
361 * collect re statistics
398 if (stats(env, e->re.group.expr.binary.left))
404 if (e->re.group.expr.binary.right && stats(env, e->re.group.expr.binary.right))
454 if (stats(env, e->re.group.expr.binary.left))
460 if (stats(env, e->re.group.expr.binary.right))
479 if (e->re.group.number && ++env->stats.p <= 0 || !e->re.group.number && ++env->stats.u <= 0)
481 if (stats(env, e->re.group.expr.rex))
492 if (stats(env, e->re.group.expr.rex))
514 if (e->re.group.size > 0 && ++env->stats.b <= 0)
516 if (e->re.group.expr.binary.left && stats(env, e->re.group.expr.binary.left))
518 if (q = e->re.group.expr.binary.right)
520 if (q->re.group.expr.binary.left && stats(env, q->re.group.expr.binary.left))
522 if (q->re.group.expr.binary.right && stats(env, q->re.group.expr.binary.right))
537 if (stats(env, e->re.group.expr.rex))
553 if (stats(env, e->re.group.expr.rex))
576 if (stats(env, e->re.group.expr.rex))
607 if ((env->stats.m += e->re.string.size) < cm)
610 if ((env->stats.n += e->re.string.size) < cn)
612 if (!env->stats.x || env->stats.x->re.string.size < e->re.string.size)
623 if ((env->stats.m += e->re.trie.min) < cm)
626 if ((env->stats.n += e->re.trie.max) < cn)
629 if (!env->stats.y || env->stats.y->re.trie.min < e->re.trie.min)
1245 setadd(e->re.charclass, c);
1275 setadd(e->re.charclass, last);
1279 setadd(e->re.charclass, '-');
1311 setadd(e->re.charclass, last);
1350 setadd(e->re.charclass, c);
1362 setadd(e->re.charclass, last);
1370 setadd(e->re.charclass, buf[0]);
1400 setadd(e->re.charclass, i);
1406 setadd(e->re.charclass, last);
1407 setadd(e->re.charclass, c);
1418 setadd(e->re.charclass, last);
1477 ce = (Celt_t*)e->re.data;
1478 e->re.collate.invert = neg;
1479 e->re.collate.elements = ce;
1724 if (settst(e->re.charclass, i))
1732 setadd(e->re.charclass, c);
1736 for (i = 0; i < elementsof(e->re.charclass->bits); i++)
1737 e->re.charclass->bits[i] ^= ~0;
1739 setclr(e->re.charclass, env->explicit);
1773 setadd(e->re.charclass, i);
1775 setclr(e->re.charclass, env->explicit);
1781 ce = (Celt_t*)e->re.data;
1782 e->re.collate.invert = 0;
1783 e->re.collate.elements = ce;
1811 f->re.group.expr.rex = e;
1882 f->re.group.expr.rex = e;
1883 f->re.group.number = number;
1884 f->re.group.last = last;
1889 for (; e && e->type >= REX_GROUP && e->type <= REX_GROUP_CUT; e = e->re.group.expr.rex);
1934 *(s = tmp) = f->re.onechar;
1938 s = f->re.string.base;
1939 e = s + f->re.string.size;
1944 if (!(t = g->re.trie.root[*s]) && !(t = g->re.trie.root[*s] = trienode(env, *s)))
1964 if (g->re.trie.min > len)
1965 g->re.trie.min = len;
1966 if (g->re.trie.max < len)
1967 g->re.trie.max = len;
1989 g->re.trie.min = INT_MAX;
2274 e->re.nest.primary = isalnum(*env->cursor) ? -1 : *env->cursor;
2292 if (e->re.nest.type[i] & ~x)
2294 e->re.nest.type[i] = x;
2306 e->re.nest.type[UCHAR_MAX+1] |= REX_NEST_terminator;
2318 if (e->re.nest.type[i] & ~x)
2320 e->re.nest.type[i] = x|REX_NEST_open|REX_NEST_close|(i<<REX_NEST_SHIFT);
2343 if (isalnum(i) || (e->re.nest.type[i] & (REX_NEST_close|REX_NEST_escape|REX_NEST_literal|REX_NEST_quote|REX_NEST_delimiter|REX_NEST_separator|REX_NEST_terminator)))
2345 e->re.nest.type[i] = REX_NEST_open;
2346 if ((x = chr(env, &esc)) < 0 || (e->re.nest.type[x] & (REX_NEST_close|REX_NEST_escape|REX_NEST_delimiter|REX_NEST_separator|REX_NEST_terminator)))
2355 e->re.nest.type[x] |= REX_NEST_close;
2356 e->re.nest.type[i] |= x << REX_NEST_SHIFT;
2373 f->re.group.back = 0;
2374 f->re.group.number = parno;
2375 f->re.group.expr.rex = e;
2426 e->re.group.size = c;
2427 e->re.group.expr.binary.left = f;
2428 if (!(e->re.group.expr.binary.right = alt(env, parno, 1)))
2477 e->re.exec.text = (const char*)p;
2478 e->re.exec.size = env->cursor - p - 2;
2480 e->re.exec.data = 0;
2482 e->re.exec.data = (*env->disc->re_compf)(env->regex, e->re.exec.text, e->re.exec.size, env->disc);
2506 env->paren[c]->re.group.back = 1;
2537 f->re.group.expr.rex = e;
2547 f->re.group.size = env->stats.m;
2632 memcpy((char*)(e->re.string.base = (unsigned char*)e->re.data), (char*)buf, i);
2633 e->re.string.size = i;
2642 f->re.onechar = (env->flags & REG_ICASE) ? toupper(x) : x;
2648 memcpy((char*)(f->re.string.base = (unsigned char*)f->re.data), (char*)p, n);
2649 f->re.string.size = n;
2663 memcpy((char*)(e->re.string.base = (unsigned char*)e->re.data), (char*)buf, c);
2664 e->re.string.size = c;
2676 env->paren[c]->re.group.back = 1;
2730 f->re.group.back = 0;
2731 f->re.group.number = parno;
2732 f->re.group.expr.rex = e;
2749 f->re.group.back = 0;
2750 f->re.group.number = parno;
2751 f->re.group.expr.rex = e;
2812 e->re.onechar = '/';
2867 g->re.group.expr.binary.left = e;
2868 g->re.group.expr.binary.right = f;
2907 g->re.group.number = number;
2908 g->re.group.last = env->parno;
2909 g->re.group.expr.binary.left = e;
2910 g->re.group.expr.binary.right = f;
2936 a->re.bm.mask[m][c] |= b;
2937 if (z == HIT || !a->re.bm.skip[c] || a->re.bm.skip[c] > z && a->re.bm.skip[c] < HIT)
2938 a->re.bm.skip[c] = z;
2947 a->re.bm.mask[m][c] |= b;
2948 if (z == HIT || !a->re.bm.skip[c] || a->re.bm.skip[c] > z && a->re.bm.skip[c] < HIT)
2949 a->re.bm.skip[c] = z;
2970 a->re.bm.complete = 0;
2973 a->re.bm.complete = 0;
3006 if ((x = env->stats.x) && x->re.string.size < 3)
3008 if ((t = env->stats.y) && t->re.trie.min < 3)
3012 if (x->re.string.size >= t->re.trie.min)
3030 n = m = x->re.string.size;
3036 n = t->re.trie.min;
3037 m = t->re.trie.max;
3049 a->re.bm.size = n;
3050 a->re.bm.back = (y == e || y == e->re.group.expr.rex) ? (m - n) : -1;
3051 a->re.bm.left = l - 1;
3052 a->re.bm.right = env->stats.m - l - n;
3053 a->re.bm.complete = (env->stats.e || y != e && (e->type != REX_GROUP || y != e->re.group.expr.rex) || e->next || ((a->re.bm.left + a->re.bm.right) >= 0)) ? 0 : n;
3054 h = (Bm_mask_t*)&a->re.bm.mask[n];
3055 a->re.bm.skip = (size_t*)(h + n * (UCHAR_MAX + 1));
3056 a->re.bm.fail = &a->re.bm.skip[UCHAR_MAX + 1];
3058 a->re.bm.skip[m] = n;
3059 a->re.bm.skip[0] = a->re.bm.skip[env->mappednewline] = (y->next && y->next->type == REX_END) ? HIT : (n + a->re.bm.left);
3061 a->re.bm.fail[i] = 2 * n - i;
3062 mask = a->re.bm.mask;
3069 bmstr(env, a, x->re.string.base, n, 1);
3076 if (t->re.trie.root[i])
3077 m = bmtrie(env, a, v, t->re.trie.root[i], n, 0, m);
3092 DEBUG_TEST(0x0010,sfprintf(sfstderr, "BM#2: fail[%d]=%d => %d\n", k, a->re.bm.fail[k], (a->re.bm.fail[k] > n - j) ? (n - j) : a->re.bm.fail[k]), (0));
3093 if (a->re.bm.fail[k] > n - j)
3094 a->re.bm.fail[k] = n - j;
3099 if (a->re.bm.fail[i] > n + k - i)
3101 DEBUG_TEST(0x0010,sfprintf(sfstderr, "BM#4: fail[%d]=%d => %d\n", i, a->re.bm.fail[i], n + k - i), (0));
3102 a->re.bm.fail[i] = n + k - i;
3107 sfprintf(sfstderr, "STAT: complete=%d n=%d k=%d l=%d r=%d y=%d:%d e=%d:%d\n", a->re.bm.complete, n, k, a->re.bm.left, a->re.bm.right, y->type, y->next ? y->next->type : 0, e->type, e->next ? e->next->type : 0);
3110 if (a->re.bm.mask[m][i])
3111 sfprintf(sfstderr, "MASK: [%d]['%c'] = %032..2u\n", m, i, a->re.bm.mask[m][i]);
3113 if (a->re.bm.skip[i] >= HIT)
3115 else if (a->re.bm.skip[i] > 0 && a->re.bm.skip[i] < n)
3116 sfprintf(sfstderr, "SKIP: ['%c'] = %3d\n", i, a->re.bm.skip[i]);
3124 if (a->re.bm.mask[m][i] & (1 << j))
3143 sfprintf(sfstderr, "%3d", a->re.bm.fail[m]);
3161 e = e->re.group.expr.rex;
3177 s = e->re.string.base;
3178 n = e->re.string.size;
3183 f = a->re.string.fail;
3184 memcpy((char*)(a->re.string.base = (unsigned char*)&f[n]), (char*)s, n);
3185 s = a->re.string.base;
3186 a->re.string.size = n;
3526 p->env->min = g->re.trie.min;