Index: trunk/src/tools/gn/pattern.h |
=================================================================== |
--- trunk/src/tools/gn/pattern.h (revision 214322) |
+++ trunk/src/tools/gn/pattern.h (working copy) |
@@ -1,86 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef TOOLS_GN_PATTERN_H_ |
-#define TOOLS_GN_PATTERN_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "tools/gn/value.h" |
- |
-class Pattern { |
- public: |
- struct Subrange { |
- enum Type { |
- LITERAL, // Matches exactly the contents of the string. |
- ANYTHING, // * (zero or more chars). |
- PATH_BOUNDARY // '/' or beginning of string. |
- }; |
- |
- Subrange(Type t, const std::string& l = std::string()) |
- : type(t), |
- literal(l) { |
- } |
- |
- // Returns the minimum number of chars that this subrange requires. |
- size_t MinSize() const { |
- switch (type) { |
- case LITERAL: |
- return literal.size(); |
- case ANYTHING: |
- return 0; |
- case PATH_BOUNDARY: |
- return 0; // Can match beginning or end of string, which is 0 len. |
- default: |
- return 0; |
- } |
- } |
- |
- Type type; |
- |
- // When type == LITERAL this is the text to match. |
- std::string literal; |
- }; |
- |
- Pattern(const std::string& s); |
- ~Pattern(); |
- |
- // Returns true if the current pattern matches the given string. |
- bool MatchesString(const std::string& s) const; |
- |
- private: |
- // allow_implicit_path_boundary determines if a path boundary should accept |
- // matches at the beginning or end of the string. |
- bool RecursiveMatch(const std::string& s, |
- size_t begin_char, |
- size_t subrange_index, |
- bool allow_implicit_path_boundary) const; |
- |
- std::vector<Subrange> subranges_; |
- |
- // Set to true when the subranges are "*foo" ("ANYTHING" followed by a |
- // literal). This covers most patterns so we optimize for this. |
- bool is_suffix_; |
-}; |
- |
-class PatternList { |
- public: |
- PatternList(); |
- ~PatternList(); |
- |
- bool is_empty() const { return patterns_.empty(); } |
- |
- // Initializes the pattern list from a give list of pattern strings. Sets |
- // |*err| on failure. |
- void SetFromValue(const Value& v, Err* err); |
- |
- bool MatchesString(const std::string& s) const; |
- bool MatchesValue(const Value& v) const; |
- |
- private: |
- std::vector<Pattern> patterns_; |
-}; |
- |
-#endif // TOOLS_GN_PATTERN_H_ |