Go to the documentation of this file.
164 #include "util/util.h"
165 #include "re2/stringpiece.h"
447 const Arg*
const*
args,
int n)
const;
455 int stack_limit,
bool report_errors);
562 if (
dest == NULL)
return true;
563 T*
object =
reinterpret_cast<T*
>(
dest);
564 return object->ParseFrom(
str,
n);
579 #define MAKE_PARSER(type, name) \
580 Arg(type* p) : arg_(p), parser_(name) {} \
581 Arg(type* p, Parser parser) : arg_(p), parser_(parser) {}
610 bool Parse(
const char*
str,
size_t n)
const;
625 #define DECLARE_INTEGER_PARSER(name) \
627 static bool parse_##name(const char* str, size_t n, void* dest); \
628 static bool parse_##name##_radix(const char* str, size_t n, void* dest, \
632 static bool parse_##name##_hex(const char* str, size_t n, void* dest); \
633 static bool parse_##name##_octal(const char* str, size_t n, void* dest); \
634 static bool parse_##name##_cradix(const char* str, size_t n, void* dest)
645 #undef DECLARE_INTEGER_PARSER
657 #define MAKE_INTEGER_PARSER(type, name) \
658 inline PCRE::Arg Hex(type* ptr) { \
659 return PCRE::Arg(ptr, PCRE::Arg::parse_##name##_hex); \
661 inline PCRE::Arg Octal(type* ptr) { \
662 return PCRE::Arg(ptr, PCRE::Arg::parse_##name##_octal); \
664 inline PCRE::Arg CRadix(type* ptr) { \
665 return PCRE::Arg(ptr, PCRE::Arg::parse_##name##_cradix); \
677 #undef MAKE_INTEGER_PARSER
681 #endif // UTIL_PCRE_H_
static bool parse_null(const char *str, size_t n, void *dest)
MAKE_PARSER(char, parse_char)
MAKE_INTEGER_PARSER(short, short)
static bool parse_stringpiece(const char *str, size_t n, void *dest)
void set_report_errors(bool report_errors)
static int GlobalReplace(std::string *str, const PCRE &pattern, const StringPiece &rewrite)
bool operator()(const StringPiece &text, const PCRE &re, const Arg &ptr1=no_more_args, const Arg &ptr2=no_more_args, const Arg &ptr3=no_more_args, const Arg &ptr4=no_more_args, const Arg &ptr5=no_more_args, const Arg &ptr6=no_more_args, const Arg &ptr7=no_more_args, const Arg &ptr8=no_more_args, const Arg &ptr9=no_more_args, const Arg &ptr10=no_more_args, const Arg &ptr11=no_more_args, const Arg &ptr12=no_more_args, const Arg &ptr13=no_more_args, const Arg &ptr14=no_more_args, const Arg &ptr15=no_more_args, const Arg &ptr16=no_more_args) const
static const PartialMatchFunctor PartialMatch
bool Rewrite(std::string *out, const StringPiece &rewrite, const StringPiece &text, int *vec, int veclen) const
DECLARE_INTEGER_PARSER(short)
const std::string & error() const
static bool parse_string(const char *str, size_t n, void *dest)
bool report_errors() const
Arg(64) -> Arg(128) ->Arg(256) ->Arg(512) ->Arg(1024) ->Arg(1536) ->Arg(2048) ->Arg(3072) ->Arg(4096) ->Arg(5120) ->Arg(6144) ->Arg(7168)
static bool parse_float(const char *str, size_t n, void *dest)
#define T(upbtypeconst, upbtype, ctype, default_value)
static bool parse_double(const char *str, size_t n, void *dest)
static std::string QuoteMeta(const StringPiece &unquoted)
int NumberOfCapturingGroups() const
static const FullMatchFunctor FullMatch
PCRE::Option option() const
void set_match_limit(int match_limit)
bool(* Parser)(const char *str, size_t n, void *dest)
bool operator()(const StringPiece &text, const PCRE &re, const Arg &ptr1=no_more_args, const Arg &ptr2=no_more_args, const Arg &ptr3=no_more_args, const Arg &ptr4=no_more_args, const Arg &ptr5=no_more_args, const Arg &ptr6=no_more_args, const Arg &ptr7=no_more_args, const Arg &ptr8=no_more_args, const Arg &ptr9=no_more_args, const Arg &ptr10=no_more_args, const Arg &ptr11=no_more_args, const Arg &ptr12=no_more_args, const Arg &ptr13=no_more_args, const Arg &ptr14=no_more_args, const Arg &ptr15=no_more_args, const Arg &ptr16=no_more_args) const
bool operator()(StringPiece *input, const PCRE &pattern, const Arg &ptr1=no_more_args, const Arg &ptr2=no_more_args, const Arg &ptr3=no_more_args, const Arg &ptr4=no_more_args, const Arg &ptr5=no_more_args, const Arg &ptr6=no_more_args, const Arg &ptr7=no_more_args, const Arg &ptr8=no_more_args, const Arg &ptr9=no_more_args, const Arg &ptr10=no_more_args, const Arg &ptr11=no_more_args, const Arg &ptr12=no_more_args, const Arg &ptr13=no_more_args, const Arg &ptr14=no_more_args, const Arg &ptr15=no_more_args, const Arg &ptr16=no_more_args) const
PCRE & operator=(const PCRE &)=delete
bool DoMatch(const StringPiece &text, Anchor anchor, size_t *consumed, const Arg *const *args, int n) const
pcre * Compile(Anchor anchor)
static bool parse_char(const char *str, size_t n, void *dest)
PCRE(const char *pattern)
void set_option(PCRE::Option option)
static bool Extract(const StringPiece &text, const PCRE &pattern, const StringPiece &rewrite, std::string *out)
void set_stack_limit(int stack_limit)
bool Parse(const char *str, size_t n) const
static bool parse_schar(const char *str, size_t n, void *dest)
const std::string & pattern() const
static bool Parse(const char *str, size_t n, void *dest)
static const FindAndConsumeFunctor FindAndConsume
bool operator()(StringPiece *input, const PCRE &pattern, const Arg &ptr1=no_more_args, const Arg &ptr2=no_more_args, const Arg &ptr3=no_more_args, const Arg &ptr4=no_more_args, const Arg &ptr5=no_more_args, const Arg &ptr6=no_more_args, const Arg &ptr7=no_more_args, const Arg &ptr8=no_more_args, const Arg &ptr9=no_more_args, const Arg &ptr10=no_more_args, const Arg &ptr11=no_more_args, const Arg &ptr12=no_more_args, const Arg &ptr13=no_more_args, const Arg &ptr14=no_more_args, const Arg &ptr15=no_more_args, const Arg &ptr16=no_more_args) const
static const ConsumeFunctor Consume
bool DoMatchImpl(const StringPiece &text, Anchor anchor, size_t *consumed, const Arg *const args[], int n, int *vec, int vecsize) const
const std::string * error_
int TryMatch(const StringPiece &text, size_t startpos, Anchor anchor, bool empty_ok, int *vec, int vecsize) const
void Init(const char *pattern, Option option, int match_limit, int stack_limit, bool report_errors)
static bool Replace(std::string *str, const PCRE &pattern, const StringPiece &rewrite)
std::unique_ptr< Parser > parser_
bool CheckRewriteString(const StringPiece &rewrite, std::string *error) const
static bool parse_uchar(const char *str, size_t n, void *dest)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:41