13 const std::string::const_iterator begin,
14 const std::string::const_iterator &end)
22 : valid_(other.valid_)
25 SubPatterns::const_iterator i = other.
subpatterns_.begin();
26 SubPatterns::const_iterator iend = other.
subpatterns_.end();
27 for (; i != iend; ++i) {
39 SubPatterns::const_iterator i = other.
subpatterns_.begin();
40 SubPatterns::const_iterator iend = other.
subpatterns_.end();
41 for (; i != iend; ++i) {
53 for (; i != iend; ++i) {
61 const std::string::const_iterator &end) {
62 std::string::const_iterator i = begin;
78 const std::string::const_iterator &end,
79 std::string::const_iterator *i
82 bool next_is_escaped =
false;
90 next_is_escaped =
true;
91 }
else if (next_is_escaped) {
94 next_is_escaped =
false;
110 const std::string::const_iterator &end,
111 std::string::const_iterator *i
114 const char chr = **i;
123 assert(
false &&
"unrecognized special character");
128 const bool is_relaxed)
const {
131 const SubPatterns::const_iterator iend =
subpatterns_.end();
132 for (; i != iend; ++i) {
133 result += (*i)->GenerateRegularExpression(is_relaxed);
141 const SubPatterns::const_iterator iend =
subpatterns_.end();
142 for (; i != iend; ++i) {
143 result += (*i)->GenerateGlobString();
157 const SubPatterns::const_iterator iend =
subpatterns_.end();
158 SubPatterns::const_iterator j = other.
subpatterns_.begin();
159 const SubPatterns::const_iterator jend = other.
subpatterns_.end();
161 for (; i != iend && j != jend; ++i, ++j) {
162 if (!(*i)->Compare(*j)) {
180 const bool is_relaxed)
const
183 std::string::const_iterator i = chars_.begin();
184 const std::string::const_iterator iend = chars_.end();
186 for (; i != iend; ++i) {
187 if (IsSpecialRegexCharacter(*i)) {
199 std::string::const_iterator i = chars_.begin();
200 const std::string::const_iterator iend = chars_.end();
201 std::string glob_string;
202 for (; i != iend; ++i) {
212 const char chr)
const
214 return (chr ==
'.' ||
239 return chars_ == pt_other->
chars_;
245 const bool is_relaxed)
const
269 const bool is_relaxed)
const
PathspecElementPattern(const std::string::const_iterator begin, const std::string::const_iterator &end)
bool Compare(const SubPattern *other) const
void Parse(const std::string::const_iterator &begin, const std::string::const_iterator &end)
bool IsSpecialRegexCharacter(const char chr) const
virtual bool IsPlaceholder() const
std::string GenerateRegularExpression(const bool is_relaxed) const
assert((mem||(size==0))&&"Out Of Memory")
~PathspecElementPattern()
static bool IsSpecialChar(const char chr)
std::string GenerateGlobString() const
bool operator==(const PathspecElementPattern &other) const
void AddChar(const char chr)
SubPattern * ParsePlaintext(const std::string::const_iterator &end, std::string::const_iterator *i)
std::string GenerateGlobString() const
static const char kEscaper
std::string GenerateGlobString() const
bool Compare(const SubPattern *other) const
std::string GenerateGlobString() const
PathspecElementPattern & operator=(const PathspecElementPattern &other)
std::string GenerateRegularExpression(const bool is_relaxed=false) const
static const char kSeparator
std::string GenerateRegularExpression(const bool is_relaxed) const
static const char kWildcard
virtual bool IsPlaintext() const
std::string GenerateRegularExpression(const bool is_relaxed) const
bool Compare(const SubPattern *other) const
SubPattern * ParseSpecialChar(const std::string::const_iterator &end, std::string::const_iterator *i)
virtual bool IsWildcard() const
static const char kPlaceholder
virtual bool IsEmpty() const