Home | History | Annotate | Download | only in re2

Lines Matching defs:ip

81 // jumps to ip->out() and ip->out1() in parallel.  Each of the
93 // kInstByteRange instruction (at ip->out()) and waits for
345 // If ip is not on workq, adds ip to work queue and returns true.
346 // If ip is already on work queue, does nothing and returns false.
347 // If ip is NULL, does nothing and returns true (pretends to add it).
365 // These conditions must be true for any instruction ip:
368 // path from ip to nip.
370 // ip that matches any particular byte c.
371 // (3) there is at most one input-free path from ip to a kInstMatch
401 int* nodebyid = new int[size]; // indexed by ip
430 Prog::Inst* ip = inst(id);
432 switch (ip->opcode()) {
439 if (!AddQ(&workq, ip->out()) || !AddQ(&workq, ip->out1()))
441 stack[nstack].id = ip->out1();
443 stack[nstack].id = ip->out();
448 int nextindex = nodebyid[ip->out()];
459 nodebyid[ip->out()] = nextindex;
461 AddQ(&tovisit, ip->out());
465 for (int c = ip->lo(); c <= ip->hi(); c++) {
482 if (ip->foldcase()) {
483 Rune lo = max<Rune>(ip->lo(), 'a') + 'A' - 'a';
484 Rune hi = min<Rune>(ip->hi(), 'z') + 'A' - 'a';
507 if (ip->cap() < kMaxCap)
508 cond |= (1 << kCapShift) << ip->cap();
512 cond |= ip->empty();
517 // kInstCapture and kInstNop always proceed to ip->out().
518 // kInstEmptyWidth only sometimes proceeds to ip->out(),
524 if (!AddQ(&workq, ip->out())) {
528 *it, ip->out());
532 stack[nstack].id = ip->out();