Lines Matching defs:firstpos
1608 Firstpos: The firstpos of a node is the set of positions (nonempty leaves)
1611 * EMPTY leaves have empty firstpos.
1612 * The firstpos of a nonempty leaf is that leaf itself.
1613 * The firstpos of a QMARK, STAR, or PLUS node is the firstpos of its
1615 * The firstpos of a CAT node is the firstpos of the left argument, union
1616 the firstpos of the right if the left argument is nullable.
1617 * The firstpos of an OR node is the union of firstpos of each argument.
1637 * Every node in the firstpos of the argument of a STAR or PLUS node is in
1639 * Every node in the firstpos of the second argument of a CAT node is in
1651 int *nfirstpos; /* Element count stack for firstpos sets. */
1652 position *firstpos; /* Array where firstpos elements are stored. */
1681 MALLOC(firstpos, position, d->nleaves);
1682 o_firstpos = firstpos, firstpos += d->nleaves;
1704 /* The firstpos and lastpos of the empty leaf are both empty. */
1710 /* Every element in the firstpos of the argument is in the follow
1713 tmp.elems = firstpos;
1730 /* Every element in the firstpos of the second argument is in the
1733 tmp.elems = firstpos;
1743 /* The firstpos of a CAT node is the firstpos of the first argument,
1748 firstpos += nfirstpos[-1];
1772 /* The firstpos is the union of the firstpos of each argument. */
1793 /* This position is in its own firstpos and lastpos. */
1795 --firstpos, --lastpos;
1796 firstpos->index = lastpos->index = i;
1797 firstpos->constraint = lastpos->constraint = NO_CONSTRAINT;
1810 fprintf(stderr, " firstpos:");
1813 fprintf(stderr, " %d:", firstpos[j].index);
1814 prtok(d->tokens[firstpos[j].index]);
1854 /* Get the epsilon closure of the firstpos of the regexp. The result will
1858 insert(firstpos[i], &merged);