Lines Matching refs:Frag

105 struct Frag {
109 explicit Frag(LinkerInitialized) {}
110 Frag() : begin(0) { end.p = 0; } // needed so Frag can go in vector
111 Frag(uint32 begin, PatchList end) : begin(begin), end(end) {}
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() {
297 return Frag(0, nullPatchList);
301 static bool IsNoMatch(Frag a) {
306 Frag Compiler::Cat(Frag a, Frag b) {
322 return Frag(b.begin, a.end);
326 return Frag(a.begin, b.end);
330 Frag Compiler::Alt(Frag a, Frag b) {
342 return Frag(id, PatchList::Append(inst_, a.end, b.end));
353 Frag Compiler::Star(Frag a, bool nongreedy) {
361 return Frag(id, PatchList::Mk(id << 1));
364 return Frag(id, PatchList::Mk((id << 1) | 1));
369 Frag Compiler::Plus(Frag a, bool nongreedy) {
371 Frag f = Star(a, nongreedy);
372 return Frag(a.begin, f.end);
376 Frag Compiler::Quest(Frag a, bool nongreedy) {
388 return Frag(id, PatchList::Append(inst_, pl, a.end));
392 Frag Compiler::ByteRange(int lo, int hi, bool foldcase) {
407 return Frag(id, PatchList::Mk(id << 1));
411 Frag Compiler::Nop() {
416 return Frag(id, PatchList::Mk(id << 1));
420 Frag Compiler::Match(int32 match_id) {
425 return Frag(id, nullPatchList);
429 Frag Compiler::EmptyWidth(EmptyOp empty) {
444 return Frag(id, PatchList::Mk(id << 1));
448 Frag Compiler::Capture(Frag a, int n) {
456 return Frag(id, PatchList::Mk((id+1) << 1));
474 // The Frag accumulates in rune_range_. Caching common
486 Frag f = ByteRange(lo, hi, foldcase);
529 Frag Compiler::EndRange() {
667 Frag Compiler::Copy(Frag arg) {
676 Frag Compiler::ShortVisit(Regexp* re, Frag) {
682 Frag Compiler::PreVisit(Regexp* re, Frag, bool* stop) {
690 Frag Compiler::Literal(Rune r, bool foldcase) {
703 Frag f = ByteRange((uint8)buf[0], buf[0], false);
713 Frag Compiler::PostVisit(Regexp* re, Frag, Frag, Frag* child_frags,
733 Frag f = Match(re->match_id());
741 Frag f = child_frags[0];
748 Frag f = child_frags[0];
770 Frag f;
772 Frag f1 = Literal(re->runes()[i], re->parse_flags()&Regexp::FoldCase);
1009 Frag f = c.WalkExponential(sre, kNullFrag, 2*c.max_inst_);
1018 Frag all = c.Cat(f, c.Match(0));
1033 Frag unanchored = c.Cat(c.DotStar(), all);
1087 Frag Compiler::DotStar() {
1100 Frag all = c.WalkExponential(re, kNullFrag, 2*c.max_inst_);