Lines Matching defs:stats

127 	Stats_t		stats;		/* RE statistics		*/
365 stats(register Cenv_t* env, register Rex_t* e)
387 x = env->stats.x;
388 l = env->stats.l;
389 y = env->stats.y;
390 k = env->stats.k;
391 t = env->stats.t;
392 if (++env->stats.a <= 0)
394 cm = env->stats.m;
395 env->stats.m = 0;
396 cn = env->stats.n;
397 env->stats.n = 0;
398 if (stats(env, e->re.group.expr.binary.left))
400 m = env->stats.m;
401 env->stats.m = 0;
402 n = env->stats.n;
403 env->stats.n = 0;
404 if (e->re.group.expr.binary.right && stats(env, e->re.group.expr.binary.right))
406 if (env->stats.m > m)
407 env->stats.m = m;
409 m = env->stats.m;
410 if ((env->stats.m += cm) < m)
412 if (env->stats.n < n)
413 env->stats.n = n;
415 n = env->stats.n;
416 if ((env->stats.n += cn) < n)
418 env->stats.x = x;
419 env->stats.l = l;
420 env->stats.y = y;
421 env->stats.k = k;
422 env->stats.t = t;
425 if (++env->stats.b <= 0)
432 n = env->stats.m;
433 if ((env->stats.m += e->lo) < n)
437 n = env->stats.n;
438 if ((env->stats.n += e->hi) < n)
443 if (++env->stats.c <= 0)
445 if (++env->stats.s <= 0)
450 cm = env->stats.m;
451 env->stats.m = 0;
452 cn = env->stats.n;
453 env->stats.n = 0;
454 if (stats(env, e->re.group.expr.binary.left))
456 nm = env->stats.m;
457 env->stats.m = 0;
458 nn = env->stats.n;
459 env->stats.n = 0;
460 if (stats(env, e->re.group.expr.binary.right))
462 if (env->stats.m < nm)
463 env->stats.m = nm;
465 nm = env->stats.m;
466 if ((env->stats.m += cm) < nm)
468 if (env->stats.n < nn)
469 env->stats.n = nn;
471 nn = env->stats.n;
472 if ((env->stats.n += cn) < nn)
476 env->stats.e = 1;
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))
488 m = env->stats.m;
489 n = env->stats.n;
490 x = env->stats.x;
491 y = env->stats.y;
492 if (stats(env, e->re.group.expr.rex))
494 env->stats.m = m;
495 env->stats.n = n;
496 env->stats.x = x;
497 env->stats.y = y;
502 if (++env->stats.u <= 0)
508 if (++env->stats.u <= 0)
510 m = env->stats.m;
511 n = env->stats.n;
512 x = env->stats.x;
513 y = env->stats.y;
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))
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))
525 env->stats.m = m;
526 env->stats.n = n;
527 env->stats.x = x;
528 env->stats.y = y;
531 if (++env->stats.u <= 0)
533 m = env->stats.m;
534 n = env->stats.n;
535 x = env->stats.x;
536 y = env->stats.y;
537 if (stats(env, e->re.group.expr.rex))
539 env->stats.m = m;
540 env->stats.n = n;
541 env->stats.x = x;
542 env->stats.y = y;
545 env->stats.i++;
546 x = env->stats.x;
547 l = env->stats.l;
548 y = env->stats.y;
549 k = env->stats.k;
550 t = env->stats.t;
551 cm = env->stats.m;
552 env->stats.m = 0;
553 if (stats(env, e->re.group.expr.rex))
555 env->stats.m = !env->stats.m;
556 if ((env->stats.m += cm) < cm)
558 env->stats.x = x;
559 env->stats.l = l;
560 env->stats.y = y;
561 env->stats.k = k;
562 env->stats.t = t;
565 x = env->stats.x;
566 l = env->stats.l;
567 y = env->stats.y;
568 k = env->stats.k;
569 t = env->stats.t;
570 if (++env->stats.c <= 0)
572 b = env->stats.b;
573 c = env->stats.c;
574 cm = env->stats.m;
575 env->stats.m = 0;
576 if (stats(env, e->re.group.expr.rex))
578 if (env->stats.m == 1 && b == env->stats.b && c == env->stats.c && ++env->stats.s <= 0)
582 env->stats.x = x;
583 env->stats.l = l;
584 env->stats.y = y;
585 env->stats.k = k;
586 env->stats.t = t;
587 env->stats.m = cm;
591 m = env->stats.m;
592 if ((env->stats.m *= e->lo) > 0 && env->stats.m < m)
594 m = env->stats.m;
595 if ((env->stats.m += cm) < m)
597 if (env->stats.x != x)
598 env->stats.l = cm;
599 if (env->stats.y != y)
600 env->stats.k = cm;
606 cm = env->stats.m;
607 if ((env->stats.m += e->re.string.size) < cm)
609 cn = env->stats.n;
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)
614 env->stats.x = e;
615 env->stats.l = cm;
620 if (++env->stats.s <= 0)
622 cm = env->stats.m;
623 if ((env->stats.m += e->re.trie.min) < cm)
625 cn = env->stats.n;
626 if ((env->stats.n += e->re.trie.max) < cn)
628 env->stats.t++;
629 if (!env->stats.y || env->stats.y->re.trie.min < e->re.trie.min)
631 env->stats.y = e;
632 env->stats.k = cm;
2540 if (stats(env, e))
2547 f->re.group.size = env->stats.m;
2548 memset(&env->stats, 0, sizeof(env->stats));
3006 if ((x = env->stats.x) && x->re.string.size < 3)
3008 if ((t = env->stats.y) && t->re.trie.min < 3)
3031 l = env->stats.l;
3038 l = env->stats.k;
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;
3159 if (env->stats.b)
3347 if (stats(&env, p->env->rex))
3353 if (env.stats.b)
3355 else if (!(env.flags & REG_FIRST) && (env.stats.a || env.stats.c > 1 && env.stats.c != env.stats.s || env.stats.t && (env.stats.t > 1 || env.stats.a || env.stats.c)))
3357 if (p->env->hard || env.stats.c || env.stats.i)
3358 p->env->stats.re_min = p->env->stats.re_max = -1;
3361 if (!(p->env->stats.re_min = env.stats.m))
3362 p->env->stats.re_min = -1;
3363 if (!(p->env->stats.re_max = env.stats.n))
3364 p->env->stats.re_max = -1;
3369 p->re_nsub = env.stats.p;
3387 p->env->min = env.stats.m;
3388 p->env->nsub = env.stats.p + env.stats.u;
3516 if (stats(&env, p->env->rex))