bloaty/third_party/re2/re2/regexp.h
Go to the documentation of this file.
1 // Copyright 2006 The RE2 Authors. All Rights Reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4 
5 #ifndef RE2_REGEXP_H_
6 #define RE2_REGEXP_H_
7 
8 // --- SPONSORED LINK --------------------------------------------------
9 // If you want to use this library for regular expression matching,
10 // you should use re2/re2.h, which provides a class RE2 that
11 // mimics the PCRE interface provided by PCRE's C++ wrappers.
12 // This header describes the low-level interface used to implement RE2
13 // and may change in backwards-incompatible ways from time to time.
14 // In contrast, RE2's interface will not.
15 // ---------------------------------------------------------------------
16 
17 // Regular expression library: parsing, execution, and manipulation
18 // of regular expressions.
19 //
20 // Any operation that traverses the Regexp structures should be written
21 // using Regexp::Walker (see walker-inl.h), not recursively, because deeply nested
22 // regular expressions such as x++++++++++++++++++++... might cause recursive
23 // traversals to overflow the stack.
24 //
25 // It is the caller's responsibility to provide appropriate mutual exclusion
26 // around manipulation of the regexps. RE2 does this.
27 //
28 // PARSING
29 //
30 // Regexp::Parse parses regular expressions encoded in UTF-8.
31 // The default syntax is POSIX extended regular expressions,
32 // with the following changes:
33 //
34 // 1. Backreferences (optional in POSIX EREs) are not supported.
35 // (Supporting them precludes the use of DFA-based
36 // matching engines.)
37 //
38 // 2. Collating elements and collation classes are not supported.
39 // (No one has needed or wanted them.)
40 //
41 // The exact syntax accepted can be modified by passing flags to
42 // Regexp::Parse. In particular, many of the basic Perl additions
43 // are available. The flags are documented below (search for LikePerl).
44 //
45 // If parsed with the flag Regexp::Latin1, both the regular expression
46 // and the input to the matching routines are assumed to be encoded in
47 // Latin-1, not UTF-8.
48 //
49 // EXECUTION
50 //
51 // Once Regexp has parsed a regular expression, it provides methods
52 // to search text using that regular expression. These methods are
53 // implemented via calling out to other regular expression libraries.
54 // (Let's call them the sublibraries.)
55 //
56 // To call a sublibrary, Regexp does not simply prepare a
57 // string version of the regular expression and hand it to the
58 // sublibrary. Instead, Regexp prepares, from its own parsed form, the
59 // corresponding internal representation used by the sublibrary.
60 // This has the drawback of needing to know the internal representation
61 // used by the sublibrary, but it has two important benefits:
62 //
63 // 1. The syntax and meaning of regular expressions is guaranteed
64 // to be that used by Regexp's parser, not the syntax expected
65 // by the sublibrary. Regexp might accept a restricted or
66 // expanded syntax for regular expressions as compared with
67 // the sublibrary. As long as Regexp can translate from its
68 // internal form into the sublibrary's, clients need not know
69 // exactly which sublibrary they are using.
70 //
71 // 2. The sublibrary parsers are bypassed. For whatever reason,
72 // sublibrary regular expression parsers often have security
73 // problems. For example, plan9grep's regular expression parser
74 // has a buffer overflow in its handling of large character
75 // classes, and PCRE's parser has had buffer overflow problems
76 // in the past. Security-team requires sandboxing of sublibrary
77 // regular expression parsers. Avoiding the sublibrary parsers
78 // avoids the sandbox.
79 //
80 // The execution methods we use now are provided by the compiled form,
81 // Prog, described in prog.h
82 //
83 // MANIPULATION
84 //
85 // Unlike other regular expression libraries, Regexp makes its parsed
86 // form accessible to clients, so that client code can analyze the
87 // parsed regular expressions.
88 
89 #include <stdint.h>
90 #include <map>
91 #include <set>
92 #include <string>
93 
94 #include "util/util.h"
95 #include "util/logging.h"
96 #include "util/utf.h"
97 #include "re2/stringpiece.h"
98 
99 namespace re2 {
100 
101 // Keep in sync with string list kOpcodeNames[] in testing/dump.cc
102 enum RegexpOp {
103  // Matches no strings.
105 
106  // Matches empty string.
108 
109  // Matches rune_.
111 
112  // Matches runes_.
114 
115  // Matches concatenation of sub_[0..nsub-1].
117  // Matches union of sub_[0..nsub-1].
119 
120  // Matches sub_[0] zero or more times.
122  // Matches sub_[0] one or more times.
124  // Matches sub_[0] zero or one times.
126 
127  // Matches sub_[0] at least min_ times, at most max_ times.
128  // max_ == -1 means no upper limit.
130 
131  // Parenthesized (capturing) subexpression. Index is cap_.
132  // Optionally, capturing name is name_.
134 
135  // Matches any character.
137 
138  // Matches any byte [sic].
140 
141  // Matches empty string at beginning of line.
143  // Matches empty string at end of line.
145 
146  // Matches word boundary "\b".
148  // Matches not-a-word boundary "\B".
150 
151  // Matches empty string at beginning of text.
153  // Matches empty string at end of text.
155 
156  // Matches character class given by cc_.
158 
159  // Forces match of entire expression right now,
160  // with match ID match_id_ (used by RE2::Set).
162 
164 };
165 
166 // Keep in sync with string list in regexp.cc
168  // No error
170 
171  // Unexpected error
173 
174  // Parse errors
175  kRegexpBadEscape, // bad escape sequence
176  kRegexpBadCharClass, // bad character class
177  kRegexpBadCharRange, // bad character class range
178  kRegexpMissingBracket, // missing closing ]
179  kRegexpMissingParen, // missing closing )
180  kRegexpTrailingBackslash, // at end of regexp
181  kRegexpRepeatArgument, // repeat argument missing, e.g. "*"
182  kRegexpRepeatSize, // bad repetition argument
183  kRegexpRepeatOp, // bad repetition operator
184  kRegexpBadPerlOp, // bad perl operator
185  kRegexpBadUTF8, // invalid UTF-8 in regexp
186  kRegexpBadNamedCapture, // bad named capture
187 };
188 
189 // Error status for certain operations.
191  public:
193  ~RegexpStatus() { delete tmp_; }
194 
197  void set_tmp(std::string* tmp) { delete tmp_; tmp_ = tmp; }
198  RegexpStatusCode code() const { return code_; }
199  const StringPiece& error_arg() const { return error_arg_; }
200  bool ok() const { return code() == kRegexpSuccess; }
201 
202  // Copies state from status.
203  void Copy(const RegexpStatus& status);
204 
205  // Returns text equivalent of code, e.g.:
206  // "Bad character class"
208 
209  // Returns text describing error, e.g.:
210  // "Bad character class: [z-a]"
211  std::string Text() const;
212 
213  private:
214  RegexpStatusCode code_; // Kind of error
215  StringPiece error_arg_; // Piece of regexp containing syntax error.
216  std::string* tmp_; // Temporary storage, possibly where error_arg_ is.
217 
218  RegexpStatus(const RegexpStatus&) = delete;
219  RegexpStatus& operator=(const RegexpStatus&) = delete;
220 };
221 
222 // Compiled form; see prog.h
223 class Prog;
224 
225 struct RuneRange {
226  RuneRange() : lo(0), hi(0) { }
227  RuneRange(int l, int h) : lo(l), hi(h) { }
230 };
231 
232 // Less-than on RuneRanges treats a == b if they overlap at all.
233 // This lets us look in a set to find the range covering a particular Rune.
235  bool operator()(const RuneRange& a, const RuneRange& b) const {
236  return a.hi < b.lo;
237  }
238 };
239 
240 class CharClassBuilder;
241 
242 class CharClass {
243  public:
244  void Delete();
245 
246  typedef RuneRange* iterator;
247  iterator begin() { return ranges_; }
248  iterator end() { return ranges_ + nranges_; }
249 
250  int size() { return nrunes_; }
251  bool empty() { return nrunes_ == 0; }
252  bool full() { return nrunes_ == Runemax+1; }
253  bool FoldsASCII() { return folds_ascii_; }
254 
255  bool Contains(Rune r);
256  CharClass* Negate();
257 
258  private:
259  CharClass(); // not implemented
260  ~CharClass(); // not implemented
261  static CharClass* New(int maxranges);
262 
263  friend class CharClassBuilder;
264 
266  int nrunes_;
268  int nranges_;
269 
270  CharClass(const CharClass&) = delete;
271  CharClass& operator=(const CharClass&) = delete;
272 };
273 
274 class Regexp {
275  public:
276 
277  // Flags for parsing. Can be ORed together.
278  enum ParseFlags {
280  FoldCase = 1<<0, // Fold case during matching (case-insensitive).
281  Literal = 1<<1, // Treat s as literal string instead of a regexp.
282  ClassNL = 1<<2, // Allow char classes like [^a-z] and \D and \s
283  // and [[:space:]] to match newline.
284  DotNL = 1<<3, // Allow . to match newline.
286  OneLine = 1<<4, // Treat ^ and $ as only matching at beginning and
287  // end of text, not around embedded newlines.
288  // (Perl's default)
289  Latin1 = 1<<5, // Regexp and text are in Latin1, not UTF-8.
290  NonGreedy = 1<<6, // Repetition operators are non-greedy by default.
291  PerlClasses = 1<<7, // Allow Perl character classes like \d.
292  PerlB = 1<<8, // Allow Perl's \b and \B.
293  PerlX = 1<<9, // Perl extensions:
294  // non-capturing parens - (?: )
295  // non-greedy operators - *? +? ?? {}?
296  // flag edits - (?i) (?-i) (?i: )
297  // i - FoldCase
298  // m - !OneLine
299  // s - DotNL
300  // U - NonGreedy
301  // line ends: \A \z
302  // \Q and \E to disable/enable metacharacters
303  // (?P<name>expr) for named captures
304  // \C to match any single byte
305  UnicodeGroups = 1<<10, // Allow \p{Han} for Unicode Han group
306  // and \P{Han} for its negation.
307  NeverNL = 1<<11, // Never match NL, even if the regexp mentions
308  // it explicitly.
309  NeverCapture = 1<<12, // Parse all parens as non-capturing.
310 
311  // As close to Perl as we can get.
314 
315  // Internal use only.
316  WasDollar = 1<<13, // on kRegexpEndText: was $ in regexp text
317  AllParseFlags = (1<<14)-1,
318  };
319 
320  // Get. No set, Regexps are logically immutable once created.
321  RegexpOp op() { return static_cast<RegexpOp>(op_); }
322  int nsub() { return nsub_; }
323  bool simple() { return simple_ != 0; }
324  ParseFlags parse_flags() { return static_cast<ParseFlags>(parse_flags_); }
325  int Ref(); // For testing.
326 
327  Regexp** sub() {
328  if(nsub_ <= 1)
329  return &subone_;
330  else
331  return submany_;
332  }
333 
334  int min() { DCHECK_EQ(op_, kRegexpRepeat); return min_; }
335  int max() { DCHECK_EQ(op_, kRegexpRepeat); return max_; }
338  int cap() { DCHECK_EQ(op_, kRegexpCapture); return cap_; }
343 
344  // Increments reference count, returns object as convenience.
345  Regexp* Incref();
346 
347  // Decrements reference count and deletes this object if count reaches 0.
348  void Decref();
349 
350  // Parses string s to produce regular expression, returned.
351  // Caller must release return value with re->Decref().
352  // On failure, sets *status (if status != NULL) and returns NULL.
353  static Regexp* Parse(const StringPiece& s, ParseFlags flags,
355 
356  // Returns a _new_ simplified version of the current regexp.
357  // Does not edit the current regexp.
358  // Caller must release return value with re->Decref().
359  // Simplified means that counted repetition has been rewritten
360  // into simpler terms and all Perl/POSIX features have been
361  // removed. The result will capture exactly the same
362  // subexpressions the original did, unless formatted with ToString.
363  Regexp* Simplify();
364  friend class CoalesceWalker;
365  friend class SimplifyWalker;
366 
367  // Parses the regexp src and then simplifies it and sets *dst to the
368  // string representation of the simplified form. Returns true on success.
369  // Returns false and sets *status (if status != NULL) on parse error.
370  static bool SimplifyRegexp(const StringPiece& src, ParseFlags flags,
372 
373  // Returns the number of capturing groups in the regexp.
374  int NumCaptures();
375  friend class NumCapturesWalker;
376 
377  // Returns a map from names to capturing group indices,
378  // or NULL if the regexp contains no named capture groups.
379  // The caller is responsible for deleting the map.
380  std::map<std::string, int>* NamedCaptures();
381 
382  // Returns a map from capturing group indices to capturing group
383  // names or NULL if the regexp contains no named capture groups. The
384  // caller is responsible for deleting the map.
385  std::map<int, std::string>* CaptureNames();
386 
387  // Returns a string representation of the current regexp,
388  // using as few parentheses as possible.
390 
391  // Convenience functions. They consume the passed reference,
392  // so in many cases you should use, e.g., Plus(re->Incref(), flags).
393  // They do not consume allocated arrays like subs or runes.
394  static Regexp* Plus(Regexp* sub, ParseFlags flags);
395  static Regexp* Star(Regexp* sub, ParseFlags flags);
396  static Regexp* Quest(Regexp* sub, ParseFlags flags);
397  static Regexp* Concat(Regexp** subs, int nsubs, ParseFlags flags);
398  static Regexp* Alternate(Regexp** subs, int nsubs, ParseFlags flags);
399  static Regexp* Capture(Regexp* sub, ParseFlags flags, int cap);
400  static Regexp* Repeat(Regexp* sub, ParseFlags flags, int min, int max);
404  static Regexp* HaveMatch(int match_id, ParseFlags flags);
405 
406  // Like Alternate but does not factor out common prefixes.
407  static Regexp* AlternateNoFactor(Regexp** subs, int nsubs, ParseFlags flags);
408 
409  // Debugging function. Returns string format for regexp
410  // that makes structure clear. Does NOT use regexp syntax.
411  std::string Dump();
412 
413  // Helper traversal class, defined fully in walker-inl.h.
414  template<typename T> class Walker;
415 
416  // Compile to Prog. See prog.h
417  // Reverse prog expects to be run over text backward.
418  // Construction and execution of prog will
419  // stay within approximately max_mem bytes of memory.
420  // If max_mem <= 0, a reasonable default is used.
421  Prog* CompileToProg(int64_t max_mem);
423 
424  // Whether to expect this library to find exactly the same answer as PCRE
425  // when running this regexp. Most regexps do mimic PCRE exactly, but a few
426  // obscure cases behave differently. Technically this is more a property
427  // of the Prog than the Regexp, but the computation is much easier to do
428  // on the Regexp. See mimics_pcre.cc for the exact conditions.
429  bool MimicsPCRE();
430 
431  // Benchmarking function.
432  void NullWalk();
433 
434  // Whether every match of this regexp must be anchored and
435  // begin with a non-empty fixed string (perhaps after ASCII
436  // case-folding). If so, returns the prefix and the sub-regexp that
437  // follows it.
438  // Callers should expect *prefix, *foldcase and *suffix to be "zeroed"
439  // regardless of the return value.
440  bool RequiredPrefix(std::string* prefix, bool* foldcase,
441  Regexp** suffix);
442 
443  private:
444  // Constructor allocates vectors as appropriate for operator.
446 
447  // Use Decref() instead of delete to release Regexps.
448  // This is private to catch deletes at compile time.
449  ~Regexp();
450  void Destroy();
451  bool QuickDestroy();
452 
453  // Helpers for Parse. Listed here so they can edit Regexps.
454  class ParseState;
455 
456  friend class ParseState;
457  friend bool ParseCharClass(StringPiece* s, Regexp** out_re,
459 
460  // Helper for testing [sic].
461  friend bool RegexpEqualTestingOnly(Regexp*, Regexp*);
462 
463  // Computes whether Regexp is already simple.
464  bool ComputeSimple();
465 
466  // Constructor that generates a Star, Plus or Quest,
467  // squashing the pair if sub is also a Star, Plus or Quest.
469 
470  // Constructor that generates a concatenation or alternation,
471  // enforcing the limit on the number of subexpressions for
472  // a particular Regexp.
473  static Regexp* ConcatOrAlternate(RegexpOp op, Regexp** subs, int nsubs,
474  ParseFlags flags, bool can_factor);
475 
476  // Returns the leading string that re starts with.
477  // The returned Rune* points into a piece of re,
478  // so it must not be used after the caller calls re->Decref().
479  static Rune* LeadingString(Regexp* re, int* nrune, ParseFlags* flags);
480 
481  // Removes the first n leading runes from the beginning of re.
482  // Edits re in place.
483  static void RemoveLeadingString(Regexp* re, int n);
484 
485  // Returns the leading regexp in re's top-level concatenation.
486  // The returned Regexp* points at re or a sub-expression of re,
487  // so it must not be used after the caller calls re->Decref().
488  static Regexp* LeadingRegexp(Regexp* re);
489 
490  // Removes LeadingRegexp(re) from re and returns the remainder.
491  // Might edit re in place.
492  static Regexp* RemoveLeadingRegexp(Regexp* re);
493 
494  // Simplifies an alternation of literal strings by factoring out
495  // common prefixes.
496  static int FactorAlternation(Regexp** sub, int nsub, ParseFlags flags);
497  friend class FactorAlternationImpl;
498 
499  // Is a == b? Only efficient on regexps that have not been through
500  // Simplify yet - the expansion of a kRegexpRepeat will make this
501  // take a long time. Do not call on such regexps, hence private.
502  static bool Equal(Regexp* a, Regexp* b);
503 
504  // Allocate space for n sub-regexps.
505  void AllocSub(int n) {
506  DCHECK(n >= 0 && static_cast<uint16_t>(n) == n);
507  if (n > 1)
508  submany_ = new Regexp*[n];
509  nsub_ = static_cast<uint16_t>(n);
510  }
511 
512  // Add Rune to LiteralString
513  void AddRuneToString(Rune r);
514 
515  // Swaps this with that, in place.
516  void Swap(Regexp *that);
517 
518  // Operator. See description of operators above.
519  // uint8_t instead of RegexpOp to control space usage.
521 
522  // Is this regexp structure already simple
523  // (has it been returned by Simplify)?
524  // uint8_t instead of bool to control space usage.
526 
527  // Flags saved from parsing and used during execution.
528  // (Only FoldCase is used.)
529  // uint16_t instead of ParseFlags to control space usage.
531 
532  // Reference count. Exists so that SimplifyRegexp can build
533  // regexp structures that are dags rather than trees to avoid
534  // exponential blowup in space requirements.
535  // uint16_t to control space usage.
536  // The standard regexp routines will never generate a
537  // ref greater than the maximum repeat count (kMaxRepeat),
538  // but even so, Incref and Decref consult an overflow map
539  // when ref_ reaches kMaxRef.
541  static const uint16_t kMaxRef = 0xffff;
542 
543  // Subexpressions.
544  // uint16_t to control space usage.
545  // Concat and Alternate handle larger numbers of subexpressions
546  // by building concatenation or alternation trees.
547  // Other routines should call Concat or Alternate instead of
548  // filling in sub() by hand.
550  static const uint16_t kMaxNsub = 0xffff;
551  union {
552  Regexp** submany_; // if nsub_ > 1
553  Regexp* subone_; // if nsub_ == 1
554  };
555 
556  // Extra space for parse and teardown stacks.
558 
559  // Arguments to operator. See description of operators above.
560  union {
561  struct { // Repeat
562  int max_;
563  int min_;
564  };
565  struct { // Capture
566  int cap_;
568  };
569  struct { // LiteralString
570  int nrunes_;
572  };
573  struct { // CharClass
574  // These two could be in separate union members,
575  // but it wouldn't save any space (there are other two-word structs)
576  // and keeping them separate avoids confusion during parsing.
579  };
580  Rune rune_; // Literal
581  int match_id_; // HaveMatch
582  void *the_union_[2]; // as big as any other element, for memset
583  };
584 
585  Regexp(const Regexp&) = delete;
586  Regexp& operator=(const Regexp&) = delete;
587 };
588 
589 // Character class set: contains non-overlapping, non-abutting RuneRanges.
590 typedef std::set<RuneRange, RuneRangeLess> RuneRangeSet;
591 
593  public:
595 
597  iterator begin() { return ranges_.begin(); }
598  iterator end() { return ranges_.end(); }
599 
600  int size() { return nrunes_; }
601  bool empty() { return nrunes_ == 0; }
602  bool full() { return nrunes_ == Runemax+1; }
603 
604  bool Contains(Rune r);
605  bool FoldsASCII();
606  bool AddRange(Rune lo, Rune hi); // returns whether class changed
608  void AddCharClass(CharClassBuilder* cc);
609  void Negate();
610  void RemoveAbove(Rune r);
612  void AddRangeFlags(Rune lo, Rune hi, Regexp::ParseFlags parse_flags);
613 
614  private:
615  static const uint32_t AlphaMask = (1<<26) - 1;
616  uint32_t upper_; // bitmap of A-Z
617  uint32_t lower_; // bitmap of a-z
618  int nrunes_;
620 
621  CharClassBuilder(const CharClassBuilder&) = delete;
622  CharClassBuilder& operator=(const CharClassBuilder&) = delete;
623 };
624 
625 // Bitwise ops on ParseFlags produce ParseFlags.
628  return static_cast<Regexp::ParseFlags>(
629  static_cast<int>(a) | static_cast<int>(b));
630 }
631 
634  return static_cast<Regexp::ParseFlags>(
635  static_cast<int>(a) ^ static_cast<int>(b));
636 }
637 
640  return static_cast<Regexp::ParseFlags>(
641  static_cast<int>(a) & static_cast<int>(b));
642 }
643 
645  // Attempting to produce a value out of enum's range has undefined behaviour.
646  return static_cast<Regexp::ParseFlags>(
647  ~static_cast<int>(a) & static_cast<int>(Regexp::AllParseFlags));
648 }
649 
650 } // namespace re2
651 
652 #endif // RE2_REGEXP_H_
re2::Regexp::Ref
int Ref()
Definition: bloaty/third_party/re2/re2/regexp.cc:80
re2::CharClass::full
bool full()
Definition: bloaty/third_party/re2/re2/regexp.h:252
re2::CharClass::empty
bool empty()
Definition: bloaty/third_party/re2/re2/regexp.h:251
re2::kRegexpEmptyMatch
@ kRegexpEmptyMatch
Definition: bloaty/third_party/re2/re2/regexp.h:107
re2::kRegexpBeginLine
@ kRegexpBeginLine
Definition: bloaty/third_party/re2/re2/regexp.h:142
re2::Regexp::DotNL
@ DotNL
Definition: bloaty/third_party/re2/re2/regexp.h:284
re2::RegexpStatusCode
RegexpStatusCode
Definition: bloaty/third_party/re2/re2/regexp.h:167
dst
static const char dst[]
Definition: test-fs-copyfile.c:37
re2::kRegexpNoWordBoundary
@ kRegexpNoWordBoundary
Definition: bloaty/third_party/re2/re2/regexp.h:149
re2::CharClassBuilder::AddRange
bool AddRange(Rune lo, Rune hi)
Definition: bloaty/third_party/re2/re2/regexp.cc:742
re2::Regexp::operator=
Regexp & operator=(const Regexp &)=delete
re2::CharClassBuilder::empty
bool empty()
Definition: bloaty/third_party/re2/re2/regexp.h:601
re2::CharClassBuilder::FoldsASCII
bool FoldsASCII()
Definition: bloaty/third_party/re2/re2/regexp.cc:818
re2::Regexp::cc_
CharClass * cc_
Definition: bloaty/third_party/re2/re2/regexp.h:577
re2::Regexp::Decref
void Decref()
Definition: bloaty/third_party/re2/re2/regexp.cc:115
re2::CharClassBuilder::iterator
RuneRangeSet::iterator iterator
Definition: bloaty/third_party/re2/re2/regexp.h:596
re2::CharClassBuilder::upper_
uint32_t upper_
Definition: bloaty/third_party/re2/re2/regexp.h:616
re2::Regexp::ref_
uint16_t ref_
Definition: bloaty/third_party/re2/re2/regexp.h:540
re2::kRegexpRepeatOp
@ kRegexpRepeatOp
Definition: bloaty/third_party/re2/re2/regexp.h:183
re2::CharClassBuilder::Negate
void Negate()
Definition: bloaty/third_party/re2/re2/regexp.cc:868
re2::Regexp::Plus
static Regexp * Plus(Regexp *sub, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:222
re2::Regexp::NullWalk
void NullWalk()
Definition: bloaty/third_party/re2/re2/testing/null_walker.cc:41
re2::Regexp::ParseState
Definition: bloaty/third_party/re2/re2/parse.cc:71
uint16_t
unsigned short uint16_t
Definition: stdint-msvc2008.h:79
re2::CharClassBuilder
Definition: bloaty/third_party/re2/re2/regexp.h:592
re2::Regexp::runes
Rune * runes()
Definition: bloaty/third_party/re2/re2/regexp.h:340
re2::Regexp::Star
static Regexp * Star(Regexp *sub, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:226
re2::Regexp::AddRuneToString
void AddRuneToString(Rune r)
Definition: bloaty/third_party/re2/re2/regexp.cc:170
re2::Regexp::op_
uint8_t op_
Definition: bloaty/third_party/re2/re2/regexp.h:520
re2::CharClass::Contains
bool Contains(Rune r)
Definition: bloaty/third_party/re2/re2/regexp.cc:942
re2::kRegexpLiteralString
@ kRegexpLiteralString
Definition: bloaty/third_party/re2/re2/regexp.h:113
re2::Regexp::Capture
static Regexp * Capture(Regexp *sub, ParseFlags flags, int cap)
Definition: bloaty/third_party/re2/re2/regexp.cc:298
re2::CharClassBuilder::AlphaMask
static const uint32_t AlphaMask
Definition: bloaty/third_party/re2/re2/regexp.h:615
re2::RegexpOp
RegexpOp
Definition: bloaty/third_party/re2/re2/regexp.h:102
re2::CharClassBuilder::ranges_
RuneRangeSet ranges_
Definition: bloaty/third_party/re2/re2/regexp.h:619
re2::Regexp
Definition: bloaty/third_party/re2/re2/regexp.h:274
re2::Regexp::nsub
int nsub()
Definition: bloaty/third_party/re2/re2/regexp.h:322
re2::operator^
Regexp::ParseFlags operator^(Regexp::ParseFlags a, Regexp::ParseFlags b)
Definition: bloaty/third_party/re2/re2/regexp.h:632
re2::CharClass::New
static CharClass * New(int maxranges)
Definition: bloaty/third_party/re2/re2/regexp.cc:906
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
re2::CharClassBuilder::RemoveAbove
void RemoveAbove(Rune r)
Definition: bloaty/third_party/re2/re2/regexp.cc:834
re2::kRegexpLiteral
@ kRegexpLiteral
Definition: bloaty/third_party/re2/re2/regexp.h:110
re2::Regexp::LeadingRegexp
static Regexp * LeadingRegexp(Regexp *re)
Definition: bloaty/third_party/re2/re2/parse.cc:729
re2::CharClassBuilder::AddCharClass
void AddCharClass(CharClassBuilder *cc)
Definition: bloaty/third_party/re2/re2/regexp.cc:808
re2::Regexp::nrunes
int nrunes()
Definition: bloaty/third_party/re2/re2/regexp.h:341
status
absl::Status status
Definition: rls.cc:251
re2::Regexp::name_
std::string * name_
Definition: bloaty/third_party/re2/re2/regexp.h:567
re2
Definition: bloaty/third_party/re2/re2/bitmap256.h:17
re2::operator|
Regexp::ParseFlags operator|(Regexp::ParseFlags a, Regexp::ParseFlags b)
Definition: bloaty/third_party/re2/re2/regexp.h:626
re2::Regexp::UnicodeGroups
@ UnicodeGroups
Definition: bloaty/third_party/re2/re2/regexp.h:305
re2::RegexpStatus
Definition: bloaty/third_party/re2/re2/regexp.h:190
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
re2::Regexp::Concat
static Regexp * Concat(Regexp **subs, int nsubs, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:286
re2::Regexp::CompileToProg
Prog * CompileToProg(int64_t max_mem)
Definition: bloaty/third_party/re2/re2/compile.cc:1220
re2::Regexp::Literal
@ Literal
Definition: bloaty/third_party/re2/re2/regexp.h:281
re2::Regexp::cc
CharClass * cc()
Definition: bloaty/third_party/re2/re2/regexp.h:337
re2::Regexp::ParseCharClass
friend bool ParseCharClass(StringPiece *s, Regexp **out_re, RegexpStatus *status)
re2::Regexp::parse_flags_
uint16_t parse_flags_
Definition: bloaty/third_party/re2/re2/regexp.h:530
re2::kRegexpSuccess
@ kRegexpSuccess
Definition: bloaty/third_party/re2/re2/regexp.h:169
re2::Regexp::NeverCapture
@ NeverCapture
Definition: bloaty/third_party/re2/re2/regexp.h:309
re2::kRegexpHaveMatch
@ kRegexpHaveMatch
Definition: bloaty/third_party/re2/re2/regexp.h:161
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
iterator
const typedef MCPhysReg * iterator
Definition: MCRegisterInfo.h:27
re2::Regexp::OneLine
@ OneLine
Definition: bloaty/third_party/re2/re2/regexp.h:286
re2::Regexp::RegexpEqualTestingOnly
friend bool RegexpEqualTestingOnly(Regexp *, Regexp *)
Definition: bloaty/third_party/re2/re2/testing/parse_test.cc:226
re2::Regexp::RequiredPrefix
bool RequiredPrefix(std::string *prefix, bool *foldcase, Regexp **suffix)
Definition: bloaty/third_party/re2/re2/regexp.cc:658
re2::CharClassBuilder::nrunes_
int nrunes_
Definition: bloaty/third_party/re2/re2/regexp.h:618
re2::kRegexpWordBoundary
@ kRegexpWordBoundary
Definition: bloaty/third_party/re2/re2/regexp.h:147
re2::SimplifyWalker
Definition: bloaty/third_party/re2/re2/simplify.cc:138
re2::Regexp::Latin1
@ Latin1
Definition: bloaty/third_party/re2/re2/regexp.h:289
re2::Regexp::LiteralString
static Regexp * LiteralString(Rune *runes, int nrunes, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:321
re2::CharClass::ranges_
RuneRange * ranges_
Definition: bloaty/third_party/re2/re2/regexp.h:267
re2::kRegexpEndText
@ kRegexpEndText
Definition: bloaty/third_party/re2/re2/regexp.h:154
re2::Regexp::rune_
Rune rune_
Definition: bloaty/third_party/re2/re2/regexp.h:580
re2::Regexp::simple_
uint8_t simple_
Definition: bloaty/third_party/re2/re2/regexp.h:525
re2::Regexp::PerlClasses
@ PerlClasses
Definition: bloaty/third_party/re2/re2/regexp.h:291
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
re2::FactorAlternationImpl
Definition: bloaty/third_party/re2/re2/parse.cc:908
re2::Regexp::simple
bool simple()
Definition: bloaty/third_party/re2/re2/regexp.h:323
re2::Regexp::match_id_
int match_id_
Definition: bloaty/third_party/re2/re2/regexp.h:581
re2::CharClass
Definition: bloaty/third_party/re2/re2/regexp.h:242
re2::CharClassBuilder::Contains
bool Contains(Rune r)
Definition: bloaty/third_party/re2/re2/regexp.cc:813
re2::Regexp::ToString
std::string ToString()
Definition: bloaty/third_party/re2/re2/tostring.cc:55
re2::Regexp::Walker
Definition: bloaty/third_party/re2/re2/regexp.h:414
re2::Regexp::rune
Rune rune()
Definition: bloaty/third_party/re2/re2/regexp.h:336
re2::RegexpStatus::Copy
void Copy(const RegexpStatus &status)
Definition: bloaty/third_party/re2/re2/regexp.cc:529
re2::kRegexpMissingParen
@ kRegexpMissingParen
Definition: bloaty/third_party/re2/re2/regexp.h:179
re2::Regexp::NumCaptures
int NumCaptures()
Definition: bloaty/third_party/re2/re2/regexp.cc:560
re2::Regexp::Swap
void Swap(Regexp *that)
Definition: bloaty/third_party/re2/re2/regexp.cc:338
re2::Regexp::NoParseFlags
@ NoParseFlags
Definition: bloaty/third_party/re2/re2/regexp.h:279
re2::RegexpStatus::operator=
RegexpStatus & operator=(const RegexpStatus &)=delete
int64_t
signed __int64 int64_t
Definition: stdint-msvc2008.h:89
re2::kRegexpConcat
@ kRegexpConcat
Definition: bloaty/third_party/re2/re2/regexp.h:116
re2::CharClass::CharClass
CharClass()
re2::Regexp::kMaxNsub
static const uint16_t kMaxNsub
Definition: bloaty/third_party/re2/re2/regexp.h:550
re2::Regexp::MimicsPCRE
bool MimicsPCRE()
Definition: bloaty/third_party/re2/re2/mimics_pcre.cc:102
re2::kRegexpAnyChar
@ kRegexpAnyChar
Definition: bloaty/third_party/re2/re2/regexp.h:136
re2::Regexp::ComputeSimple
bool ComputeSimple()
Definition: bloaty/third_party/re2/re2/simplify.cc:46
re2::CharClassBuilder::lower_
uint32_t lower_
Definition: bloaty/third_party/re2/re2/regexp.h:617
re2::kRegexpBadEscape
@ kRegexpBadEscape
Definition: bloaty/third_party/re2/re2/regexp.h:175
re2::RegexpStatus::set_tmp
void set_tmp(std::string *tmp)
Definition: bloaty/third_party/re2/re2/regexp.h:197
re2::Regexp::AllocSub
void AllocSub(int n)
Definition: bloaty/third_party/re2/re2/regexp.h:505
re2::Regexp::SimplifyRegexp
static bool SimplifyRegexp(const StringPiece &src, ParseFlags flags, std::string *dst, RegexpStatus *status)
Definition: bloaty/third_party/re2/re2/simplify.cc:23
re2::kRegexpCharClass
@ kRegexpCharClass
Definition: bloaty/third_party/re2/re2/regexp.h:157
re2::Regexp::cap_
int cap_
Definition: bloaty/third_party/re2/re2/regexp.h:566
re2::CharClass::folds_ascii_
bool folds_ascii_
Definition: bloaty/third_party/re2/re2/regexp.h:265
re2::Regexp::StarPlusOrQuest
static Regexp * StarPlusOrQuest(RegexpOp op, Regexp *sub, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:193
re2::Regexp::Parse
static Regexp * Parse(const StringPiece &s, ParseFlags flags, RegexpStatus *status)
Definition: bloaty/third_party/re2/re2/parse.cc:2200
re2::RuneRange::hi
Rune hi
Definition: bloaty/third_party/re2/re2/regexp.h:229
re2::RegexpStatus::error_arg_
StringPiece error_arg_
Definition: bloaty/third_party/re2/re2/regexp.h:215
re2::Regexp::sub
Regexp ** sub()
Definition: bloaty/third_party/re2/re2/regexp.h:327
re2::CharClassBuilder::size
int size()
Definition: bloaty/third_party/re2/re2/regexp.h:600
re2::kRegexpRepeatArgument
@ kRegexpRepeatArgument
Definition: bloaty/third_party/re2/re2/regexp.h:181
re2::Regexp::nsub_
uint16_t nsub_
Definition: bloaty/third_party/re2/re2/regexp.h:549
re2::kRegexpRepeatSize
@ kRegexpRepeatSize
Definition: bloaty/third_party/re2/re2/regexp.h:182
re2::Regexp::~Regexp
~Regexp()
Definition: bloaty/third_party/re2/re2/regexp.cc:45
re2::Regexp::ClassNL
@ ClassNL
Definition: bloaty/third_party/re2/re2/regexp.h:282
re2::CharClassBuilder::operator=
CharClassBuilder & operator=(const CharClassBuilder &)=delete
re2::CharClass::operator=
CharClass & operator=(const CharClass &)=delete
re2::RegexpStatus::set_code
void set_code(RegexpStatusCode code)
Definition: bloaty/third_party/re2/re2/regexp.h:195
re2::Regexp::LeadingString
static Rune * LeadingString(Regexp *re, int *nrune, ParseFlags *flags)
Definition: bloaty/third_party/re2/re2/parse.cc:774
re2::CharClass::iterator
RuneRange * iterator
Definition: bloaty/third_party/re2/re2/regexp.h:246
re2::Regexp::the_union_
void * the_union_[2]
Definition: bloaty/third_party/re2/re2/regexp.h:582
re2::Regexp::match_id
int match_id()
Definition: bloaty/third_party/re2/re2/regexp.h:342
re2::Regexp::FactorAlternation
static int FactorAlternation(Regexp **sub, int nsub, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/parse.cc:932
re2::Regexp::QuickDestroy
bool QuickDestroy()
Definition: bloaty/third_party/re2/re2/regexp.cc:68
re2::kRegexpAlternate
@ kRegexpAlternate
Definition: bloaty/third_party/re2/re2/regexp.h:118
re2::CharClass::end
iterator end()
Definition: bloaty/third_party/re2/re2/regexp.h:248
re2::RegexpStatus::RegexpStatus
RegexpStatus()
Definition: bloaty/third_party/re2/re2/regexp.h:192
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
re2::Regexp::NewCharClass
static Regexp * NewCharClass(CharClass *cc, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:332
re2::Regexp::down_
Regexp * down_
Definition: bloaty/third_party/re2/re2/regexp.h:557
re2::Regexp::Destroy
void Destroy()
Definition: bloaty/third_party/re2/re2/regexp.cc:134
re2::RuneRangeLess::operator()
bool operator()(const RuneRange &a, const RuneRange &b) const
Definition: bloaty/third_party/re2/re2/regexp.h:235
re2::Regexp::name
const std::string * name()
Definition: bloaty/third_party/re2/re2/regexp.h:339
re2::RegexpStatus::tmp_
std::string * tmp_
Definition: bloaty/third_party/re2/re2/regexp.h:216
re2::CharClass::~CharClass
~CharClass()
re2::CharClassBuilder::AddRangeFlags
void AddRangeFlags(Rune lo, Rune hi, Regexp::ParseFlags parse_flags)
Definition: bloaty/third_party/re2/re2/parse.cc:1599
re2::Regexp::ParseFlags
ParseFlags
Definition: bloaty/third_party/re2/re2/regexp.h:278
n
int n
Definition: abseil-cpp/absl/container/btree_test.cc:1080
re2::Regexp::Dump
std::string Dump()
Definition: bloaty/third_party/re2/re2/testing/dump.cc:156
re2::RuneRange::RuneRange
RuneRange()
Definition: bloaty/third_party/re2/re2/regexp.h:226
stdint.h
re2::kRegexpBadUTF8
@ kRegexpBadUTF8
Definition: bloaty/third_party/re2/re2/regexp.h:185
re2::Regexp::min
int min()
Definition: bloaty/third_party/re2/re2/regexp.h:334
re2::kRegexpStar
@ kRegexpStar
Definition: bloaty/third_party/re2/re2/regexp.h:121
re2::CharClass::FoldsASCII
bool FoldsASCII()
Definition: bloaty/third_party/re2/re2/regexp.h:253
re2::Regexp::RemoveLeadingString
static void RemoveLeadingString(Regexp *re, int n)
Definition: bloaty/third_party/re2/re2/parse.cc:797
re2::Regexp::parse_flags
ParseFlags parse_flags()
Definition: bloaty/third_party/re2/re2/regexp.h:324
re2::Regexp::CompileToReverseProg
Prog * CompileToReverseProg(int64_t max_mem)
Definition: bloaty/third_party/re2/re2/compile.cc:1224
re2::Regexp::max
int max()
Definition: bloaty/third_party/re2/re2/regexp.h:335
re2::Regexp::runes_
Rune * runes_
Definition: bloaty/third_party/re2/re2/regexp.h:571
re2::Regexp::op
RegexpOp op()
Definition: bloaty/third_party/re2/re2/regexp.h:321
re2::RegexpStatus::error_arg
const StringPiece & error_arg() const
Definition: bloaty/third_party/re2/re2/regexp.h:199
re2::kRegexpBadNamedCapture
@ kRegexpBadNamedCapture
Definition: bloaty/third_party/re2/re2/regexp.h:186
re2::Regexp::Equal
static bool Equal(Regexp *a, Regexp *b)
Definition: bloaty/third_party/re2/re2/regexp.cc:415
re2::RuneRange::lo
Rune lo
Definition: bloaty/third_party/re2/re2/regexp.h:228
re2::RuneRangeLess
Definition: bloaty/third_party/re2/re2/regexp.h:234
re2::Regexp::ConcatOrAlternate
static Regexp * ConcatOrAlternate(RegexpOp op, Regexp **subs, int nsubs, ParseFlags flags, bool can_factor)
Definition: bloaty/third_party/re2/re2/regexp.cc:234
re2::kRegexpAnyByte
@ kRegexpAnyByte
Definition: bloaty/third_party/re2/re2/regexp.h:139
re2::Regexp::NamedCaptures
std::map< std::string, int > * NamedCaptures()
Definition: bloaty/third_party/re2/re2/regexp.cc:606
re2::CharClassBuilder::CharClassBuilder
CharClassBuilder()
Definition: bloaty/third_party/re2/re2/regexp.cc:735
re2::Regexp::max_
int max_
Definition: bloaty/third_party/re2/re2/regexp.h:562
re2::kRegexpBadCharClass
@ kRegexpBadCharClass
Definition: bloaty/third_party/re2/re2/regexp.h:176
re2::kRegexpTrailingBackslash
@ kRegexpTrailingBackslash
Definition: bloaty/third_party/re2/re2/regexp.h:180
re2::kRegexpBadPerlOp
@ kRegexpBadPerlOp
Definition: bloaty/third_party/re2/re2/regexp.h:184
re2::CharClass::begin
iterator begin()
Definition: bloaty/third_party/re2/re2/regexp.h:247
suffix
unsigned char suffix[65536]
Definition: bloaty/third_party/zlib/examples/gun.c:164
re2::Regexp::NonGreedy
@ NonGreedy
Definition: bloaty/third_party/re2/re2/regexp.h:290
absl::flags_internal
Definition: abseil-cpp/absl/flags/commandlineflag.h:40
re2::RuneRangeSet
std::set< RuneRange, RuneRangeLess > RuneRangeSet
Definition: bloaty/third_party/re2/re2/regexp.h:590
re2::Regexp::kMaxRef
static const uint16_t kMaxRef
Definition: bloaty/third_party/re2/re2/regexp.h:541
re2::kRegexpBadCharRange
@ kRegexpBadCharRange
Definition: bloaty/third_party/re2/re2/regexp.h:177
re2::Prog
Definition: bloaty/third_party/re2/re2/prog.h:56
re2::Regexp::Simplify
Regexp * Simplify()
Definition: bloaty/third_party/re2/re2/simplify.cc:179
re2::RuneRange
Definition: bloaty/third_party/re2/re2/regexp.h:225
DCHECK_EQ
#define DCHECK_EQ(val1, val2)
Definition: bloaty/third_party/re2/util/logging.h:20
re2::Regexp::Incref
Regexp * Incref()
Definition: bloaty/third_party/re2/re2/regexp.cc:89
re2::Rune
signed int Rune
Definition: bloaty/third_party/re2/util/utf.h:25
re2::CharClass::size
int size()
Definition: bloaty/third_party/re2/re2/regexp.h:250
re2::CharClassBuilder::end
iterator end()
Definition: bloaty/third_party/re2/re2/regexp.h:598
re2::Regexp::RemoveLeadingRegexp
static Regexp * RemoveLeadingRegexp(Regexp *re)
Definition: bloaty/third_party/re2/re2/parse.cc:745
fix_build_deps.r
r
Definition: fix_build_deps.py:491
re2::RegexpStatus::code_
RegexpStatusCode code_
Definition: bloaty/third_party/re2/re2/regexp.h:214
re2::CoalesceWalker
Definition: bloaty/third_party/re2/re2/simplify.cc:108
re2::CharClassBuilder::full
bool full()
Definition: bloaty/third_party/re2/re2/regexp.h:602
re2::Regexp::AlternateNoFactor
static Regexp * AlternateNoFactor(Regexp **subs, int nsubs, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:294
re2::RuneRange::RuneRange
RuneRange(int l, int h)
Definition: bloaty/third_party/re2/re2/regexp.h:227
re2::Regexp::HaveMatch
static Regexp * HaveMatch(int match_id, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:187
re2::NumCapturesWalker
Definition: bloaty/third_party/re2/re2/regexp.cc:537
prefix
static const char prefix[]
Definition: head_of_line_blocking.cc:28
re2::kRegexpRepeat
@ kRegexpRepeat
Definition: bloaty/third_party/re2/re2/regexp.h:129
re2::kMaxRegexpOp
@ kMaxRegexpOp
Definition: bloaty/third_party/re2/re2/regexp.h:163
re2::CharClass::nranges_
int nranges_
Definition: bloaty/third_party/re2/re2/regexp.h:268
re2::RegexpStatus::code
RegexpStatusCode code() const
Definition: bloaty/third_party/re2/re2/regexp.h:198
re2::RegexpStatus::set_error_arg
void set_error_arg(const StringPiece &error_arg)
Definition: bloaty/third_party/re2/re2/regexp.h:196
re2::Regexp::CaptureNames
std::map< int, std::string > * CaptureNames()
Definition: bloaty/third_party/re2/re2/regexp.cc:648
re2::kRegexpBeginText
@ kRegexpBeginText
Definition: bloaty/third_party/re2/re2/regexp.h:152
re2::Regexp::PerlB
@ PerlB
Definition: bloaty/third_party/re2/re2/regexp.h:292
re2::kRegexpInternalError
@ kRegexpInternalError
Definition: bloaty/third_party/re2/re2/regexp.h:172
re2::RegexpStatus::Text
std::string Text() const
Definition: bloaty/third_party/re2/re2/regexp.cc:519
re2::Regexp::NewLiteral
static Regexp * NewLiteral(Rune rune, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:315
re2::kRegexpEndLine
@ kRegexpEndLine
Definition: bloaty/third_party/re2/re2/regexp.h:144
re2::Regexp::min_
int min_
Definition: bloaty/third_party/re2/re2/regexp.h:563
re2::Regexp::WasDollar
@ WasDollar
Definition: bloaty/third_party/re2/re2/regexp.h:316
re2::Regexp::nrunes_
int nrunes_
Definition: bloaty/third_party/re2/re2/regexp.h:570
re2::CharClassBuilder::Copy
CharClassBuilder * Copy()
Definition: bloaty/third_party/re2/re2/regexp.cc:822
re2::kRegexpCapture
@ kRegexpCapture
Definition: bloaty/third_party/re2/re2/regexp.h:133
re2::Regexp::submany_
Regexp ** submany_
Definition: bloaty/third_party/re2/re2/regexp.h:552
re2::Regexp::MatchNL
@ MatchNL
Definition: bloaty/third_party/re2/re2/regexp.h:285
re2::Regexp::NeverNL
@ NeverNL
Definition: bloaty/third_party/re2/re2/regexp.h:307
re2::RegexpStatus::CodeText
static std::string CodeText(RegexpStatusCode code)
Definition: bloaty/third_party/re2/re2/regexp.cc:513
re2::kRegexpPlus
@ kRegexpPlus
Definition: bloaty/third_party/re2/re2/regexp.h:123
re2::kRegexpNoMatch
@ kRegexpNoMatch
Definition: bloaty/third_party/re2/re2/regexp.h:104
re2::operator&
Regexp::ParseFlags operator&(Regexp::ParseFlags a, Regexp::ParseFlags b)
Definition: bloaty/third_party/re2/re2/regexp.h:638
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
autogen_x86imm.tmp
tmp
Definition: autogen_x86imm.py:12
DCHECK
#define DCHECK(condition)
Definition: bloaty/third_party/re2/util/logging.h:19
re2::RegexpStatus::ok
bool ok() const
Definition: bloaty/third_party/re2/re2/regexp.h:200
re2::Regexp::PerlX
@ PerlX
Definition: bloaty/third_party/re2/re2/regexp.h:293
re2::CharClassBuilder::GetCharClass
CharClass * GetCharClass()
Definition: bloaty/third_party/re2/re2/regexp.cc:959
re2::Regexp::Quest
static Regexp * Quest(Regexp *sub, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:230
re2::Regexp::ccb_
CharClassBuilder * ccb_
Definition: bloaty/third_party/re2/re2/regexp.h:578
re2::Regexp::AllParseFlags
@ AllParseFlags
Definition: bloaty/third_party/re2/re2/regexp.h:317
subs
template_param_type subs
Definition: cxa_demangle.cpp:4906
re2::StringPiece
Definition: bloaty/third_party/re2/re2/stringpiece.h:39
re2::CharClass::Delete
void Delete()
Definition: bloaty/third_party/re2/re2/regexp.cc:917
re2::kRegexpQuest
@ kRegexpQuest
Definition: bloaty/third_party/re2/re2/regexp.h:125
re2::Runemax
@ Runemax
Definition: bloaty/third_party/re2/util/utf.h:33
re2::CharClassBuilder::begin
iterator begin()
Definition: bloaty/third_party/re2/re2/regexp.h:597
re2::kRegexpMissingBracket
@ kRegexpMissingBracket
Definition: bloaty/third_party/re2/re2/regexp.h:178
re2::RegexpStatus::~RegexpStatus
~RegexpStatus()
Definition: bloaty/third_party/re2/re2/regexp.h:193
re2::operator~
Regexp::ParseFlags operator~(Regexp::ParseFlags a)
Definition: bloaty/third_party/re2/re2/regexp.h:644
re2::Regexp::Alternate
static Regexp * Alternate(Regexp **subs, int nsubs, ParseFlags flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:290
re2::Regexp::FoldCase
@ FoldCase
Definition: bloaty/third_party/re2/re2/regexp.h:280
re2::CharClass::Negate
CharClass * Negate()
Definition: bloaty/third_party/re2/re2/regexp.cc:922
re2::Regexp::cap
int cap()
Definition: bloaty/third_party/re2/re2/regexp.h:338
re2::CharClass::nrunes_
int nrunes_
Definition: bloaty/third_party/re2/re2/regexp.h:266
re2::Regexp::Regexp
Regexp(RegexpOp op, ParseFlags parse_flags)
Definition: bloaty/third_party/re2/re2/regexp.cc:29
re2::Regexp::LikePerl
@ LikePerl
Definition: bloaty/third_party/re2/re2/regexp.h:312
re2::Regexp::Repeat
static Regexp * Repeat(Regexp *sub, ParseFlags flags, int min, int max)
Definition: bloaty/third_party/re2/re2/regexp.cc:306
re2::Regexp::subone_
Regexp * subone_
Definition: bloaty/third_party/re2/re2/regexp.h:553


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:02