Lines Matching refs:Frag
105 struct Frag { struct
109 explicit Frag(LinkerInitialized) {} in Frag() argument
110 Frag() : begin(0) { end.p = 0; } // needed so Frag can go in vector in Frag() function
111 Frag(uint32 begin, PatchList end) : begin(begin), end(end) {} in Frag() argument
114 static Frag kNullFrag(LINKER_INITIALIZED);
122 class Compiler : public Regexp::Walker<Frag> {
146 Frag PreVisit(Regexp* re, Frag parent_arg, bool* stop);
147 Frag PostVisit(Regexp* re, Frag parent_arg, Frag pre_arg, Frag* child_args,
149 Frag ShortVisit(Regexp* re, Frag parent_arg);
150 Frag Copy(Frag arg);
153 Frag Plus(Frag a, bool nongreedy);
154 Frag Star(Frag a, bool nongreedy);
155 Frag Quest(Frag a, bool nongreedy);
158 Frag Capture(Frag a, int n);
161 Frag Cat(Frag a, Frag b);
162 Frag Alt(Frag a, Frag b);
165 Frag NoMatch();
168 Frag Match(int32 id);
171 Frag Nop();
174 Frag ByteRange(int lo, int hi, bool foldcase);
177 Frag EmptyWidth(EmptyOp op);
206 Frag EndRange();
209 Frag Literal(Rune r, bool foldcase);
215 Frag DotStar();
232 Frag rune_range_;
296 Frag Compiler::NoMatch() { in NoMatch()
297 return Frag(0, nullPatchList); in NoMatch()
301 static bool IsNoMatch(Frag a) { in IsNoMatch()
306 Frag Compiler::Cat(Frag a, Frag b) { in Cat()
322 return Frag(b.begin, a.end); in Cat()
326 return Frag(a.begin, b.end); in Cat()
330 Frag Compiler::Alt(Frag a, Frag b) { in Alt()
342 return Frag(id, PatchList::Append(inst_, a.end, b.end)); in Alt()
353 Frag Compiler::Star(Frag a, bool nongreedy) { in Star()
361 return Frag(id, PatchList::Mk(id << 1)); in Star()
364 return Frag(id, PatchList::Mk((id << 1) | 1)); in Star()
369 Frag Compiler::Plus(Frag a, bool nongreedy) { in Plus()
371 Frag f = Star(a, nongreedy); in Plus()
372 return Frag(a.begin, f.end); in Plus()
376 Frag Compiler::Quest(Frag a, bool nongreedy) { in Quest()
388 return Frag(id, PatchList::Append(inst_, pl, a.end)); in Quest()
392 Frag Compiler::ByteRange(int lo, int hi, bool foldcase) { in ByteRange()
407 return Frag(id, PatchList::Mk(id << 1)); in ByteRange()
411 Frag Compiler::Nop() { in Nop()
416 return Frag(id, PatchList::Mk(id << 1)); in Nop()
420 Frag Compiler::Match(int32 match_id) { in Match()
425 return Frag(id, nullPatchList); in Match()
429 Frag Compiler::EmptyWidth(EmptyOp empty) { in EmptyWidth()
444 return Frag(id, PatchList::Mk(id << 1)); in EmptyWidth()
448 Frag Compiler::Capture(Frag a, int n) { in Capture()
456 return Frag(id, PatchList::Mk((id+1) << 1)); in Capture()
486 Frag f = ByteRange(lo, hi, foldcase); in UncachedRuneByteSuffix()
529 Frag Compiler::EndRange() { in EndRange()
667 Frag Compiler::Copy(Frag arg) { in Copy()
676 Frag Compiler::ShortVisit(Regexp* re, Frag) { in ShortVisit() argument
682 Frag Compiler::PreVisit(Regexp* re, Frag, bool* stop) { in PreVisit() argument
690 Frag Compiler::Literal(Rune r, bool foldcase) { in Literal()
703 Frag f = ByteRange((uint8)buf[0], buf[0], false); in Literal()
713 Frag Compiler::PostVisit(Regexp* re, Frag, Frag, Frag* child_frags, in PostVisit() argument
733 Frag f = Match(re->match_id()); in PostVisit()
741 Frag f = child_frags[0]; in PostVisit()
748 Frag f = child_frags[0]; in PostVisit()
770 Frag f; in PostVisit()
772 Frag f1 = Literal(re->runes()[i], re->parse_flags()&Regexp::FoldCase); in PostVisit()
1009 Frag f = c.WalkExponential(sre, kNullFrag, 2*c.max_inst_); in Compile()
1018 Frag all = c.Cat(f, c.Match(0)); in Compile()
1033 Frag unanchored = c.Cat(c.DotStar(), all); in Compile()
1087 Frag Compiler::DotStar() { in DotStar()
1100 Frag all = c.WalkExponential(re, kNullFrag, 2*c.max_inst_); in CompileSet()