Index: third_party/re2/re2/set.cc |
diff --git a/third_party/re2/re2/set.cc b/third_party/re2/re2/set.cc |
deleted file mode 100644 |
index a1a84ba5d315aabc8d353f114f6dc2efab17b766..0000000000000000000000000000000000000000 |
--- a/third_party/re2/re2/set.cc |
+++ /dev/null |
@@ -1,113 +0,0 @@ |
-// Copyright 2010 The RE2 Authors. All Rights Reserved. |
-// Use of this source code is governed by a BSD-style |
-// license that can be found in the LICENSE file. |
- |
-#include "re2/set.h" |
- |
-#include "util/util.h" |
-#include "re2/stringpiece.h" |
-#include "re2/prog.h" |
-#include "re2/re2.h" |
-#include "re2/regexp.h" |
- |
-using namespace re2; |
- |
-RE2::Set::Set(const RE2::Options& options, RE2::Anchor anchor) { |
- options_.Copy(options); |
- anchor_ = anchor; |
- prog_ = NULL; |
- compiled_ = false; |
-} |
- |
-RE2::Set::~Set() { |
- for (size_t i = 0; i < re_.size(); i++) |
- re_[i]->Decref(); |
- delete prog_; |
-} |
- |
-int RE2::Set::Add(const StringPiece& pattern, string* error) { |
- if (compiled_) { |
- LOG(DFATAL) << "RE2::Set::Add after Compile"; |
- return -1; |
- } |
- |
- Regexp::ParseFlags pf = static_cast<Regexp::ParseFlags>( |
- options_.ParseFlags()); |
- |
- RegexpStatus status; |
- re2::Regexp* re = Regexp::Parse(pattern, pf, &status); |
- if (re == NULL) { |
- if (error != NULL) |
- *error = status.Text(); |
- if (options_.log_errors()) |
- LOG(ERROR) << "Error parsing '" << pattern << "': " << status.Text(); |
- return -1; |
- } |
- |
- // Concatenate with match index and push on vector. |
- int n = static_cast<int>(re_.size()); |
- re2::Regexp* m = re2::Regexp::HaveMatch(n, pf); |
- if (re->op() == kRegexpConcat) { |
- int nsub = re->nsub(); |
- re2::Regexp** sub = new re2::Regexp*[nsub + 1]; |
- for (int i = 0; i < nsub; i++) |
- sub[i] = re->sub()[i]->Incref(); |
- sub[nsub] = m; |
- re->Decref(); |
- re = re2::Regexp::Concat(sub, nsub + 1, pf); |
- delete[] sub; |
- } else { |
- re2::Regexp* sub[2]; |
- sub[0] = re; |
- sub[1] = m; |
- re = re2::Regexp::Concat(sub, 2, pf); |
- } |
- re_.push_back(re); |
- return n; |
-} |
- |
-bool RE2::Set::Compile() { |
- if (compiled_) { |
- LOG(DFATAL) << "RE2::Set::Compile multiple times"; |
- return false; |
- } |
- compiled_ = true; |
- |
- Regexp::ParseFlags pf = static_cast<Regexp::ParseFlags>( |
- options_.ParseFlags()); |
- re2::Regexp* re = re2::Regexp::Alternate(const_cast<re2::Regexp**>(re_.data()), |
- static_cast<int>(re_.size()), pf); |
- re_.clear(); |
- re2::Regexp* sre = re->Simplify(); |
- re->Decref(); |
- re = sre; |
- if (re == NULL) { |
- if (options_.log_errors()) |
- LOG(ERROR) << "Error simplifying during Compile."; |
- return false; |
- } |
- |
- prog_ = Prog::CompileSet(options_, anchor_, re); |
- return prog_ != NULL; |
-} |
- |
-bool RE2::Set::Match(const StringPiece& text, vector<int>* v) const { |
- if (!compiled_) { |
- LOG(DFATAL) << "RE2::Set::Match without Compile"; |
- return false; |
- } |
- v->clear(); |
- bool failed; |
- bool ret = prog_->SearchDFA(text, text, Prog::kAnchored, |
- Prog::kManyMatch, NULL, &failed, v); |
- if (failed) |
- LOG(DFATAL) << "RE2::Set::Match: DFA ran out of cache space"; |
- |
- if (ret == false) |
- return false; |
- if (v->size() == 0) { |
- LOG(DFATAL) << "RE2::Set::Match: match but unknown regexp set"; |
- return false; |
- } |
- return true; |
-} |