sopno
sopno pc;
sopno look;
static const char *dissect(struct match *m, const char *start, const char *stop, sopno startst, sopno stopst);
static const char *backref(struct match *m, const char *start, const char *stop, sopno startst, sopno stopst, sopno lev, int);
static const char *walk(struct match *m, const char *start, const char *stop, sopno startst, sopno stopst, bool fast);
static states step(struct re_guts *g, sopno start, sopno stop, states bef, wint_t ch, states aft, int sflags);
sopno i;
sopno startst,
sopno stopst)
static void at(struct match *m, const char *title, const char *start, const char *stop, sopno startst, sopno stopst);
const sopno gf = g->firststate+1; /* +1 for OEND */
const sopno gl = g->laststate;
dp = backref(m, m->coldp, endp, gf, gl, (sopno)0, 0);
dp = backref(m, m->coldp, endp, gf, gl, (sopno)0, 0);
sopno startst,
sopno stopst)
sopno ss; /* start sop of current subRE */
sopno es; /* end sop of current subRE */
sopno ssub; /* start sop of subsubRE */
sopno esub; /* end sop of subsubRE */
sopno startst,
sopno stopst,
sopno lev, /* PLUS nesting level */
sopno ss; /* start sop of current subRE */
sopno ssub; /* start sop of subsubRE */
sopno esub; /* end sop of subsubRE */
walk(struct match *m, const char *start, const char *stop, sopno startst,
sopno stopst, bool fast)
sopno start, /* start state within strip */
sopno stop, /* state after stop state within strip */
sopno offset = 2;
static void repeat(struct parse *p, sopno start, int from, int to);
sopno start, /* operand from here to end of strip */
static sopno dupl(struct parse *p, sopno start, sopno finish);
sopno finish = HERE();
sopno copy;
static void doinsert(struct parse *p, sop op, size_t opnd, sopno pos);
static void dofwd(struct parse *p, sopno pos, sop value);
static int enlarge(struct parse *p, sopno size);
static sopno pluscount(struct parse *p, struct re_guts *g);
static sopno /* start of duplicate */
sopno start, /* from here */
sopno finish) /* to this less one */
sopno ret = HERE();
sopno len = finish - start;
doinsert(struct parse *p, sop op, size_t opnd, sopno pos)
sopno sn;
dofwd(struct parse *p, sopno pos, sop value)
enlarge(struct parse *p, sopno size)
sopno newlen;
if (newlen > (sopno)g->mlen) { /* ends one */
if (newlen > (sopno)g->mlen) { /* ends one */
if (newlen > (sopno)g->mlen) { /* ends one */
if (newlen > (sopno)g->mlen) { /* ends one */
static sopno /* nesting depth */
sopno plusnest = 0;
sopno maxnest = 0;
sopno pos;
sopno subno;
sopno start;
sopno back;
sopno fwd;
sopno pos;
sopno subno;
sopno ssize; /* malloced strip size (allocated) */
sopno slen; /* malloced strip length (used) */
sopno pbegin[NPAREN]; /* -> ( ([0] unused) */
sopno pend[NPAREN]; /* -> ) ([0] unused) */
sopno nstates; /* = number of sops */
sopno firststate; /* the initial OEND (normally 0) */
sopno laststate; /* the final OEND */
sopno nplus; /* how deep does it nest +s? */