Index: third_party/libphonenumber/cpp/src/regexp_adapter.h |
=================================================================== |
--- third_party/libphonenumber/cpp/src/regexp_adapter.h (revision 0) |
+++ third_party/libphonenumber/cpp/src/regexp_adapter.h (revision 0) |
@@ -0,0 +1,96 @@ |
+// Copyright (C) 2011 Google Inc. |
+// |
+// Licensed under the Apache License, Version 2.0 (the "License"); |
+// you may not use this file except in compliance with the License. |
+// You may obtain a copy of the License at |
+// |
+// http://www.apache.org/licenses/LICENSE-2.0 |
+// |
+// Unless required by applicable law or agreed to in writing, software |
+// distributed under the License is distributed on an "AS IS" BASIS, |
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+// See the License for the specific language governing permissions and |
+// limitations under the License. |
+ |
+// Author: George Yakovlev |
+ |
+#ifndef I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ |
+#define I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ |
+ |
+#include <string> |
+ |
+// Regexp adapter to allow pluggable regexp engine, as it is external to |
+// libphonenumber. |
+ |
+namespace reg_exp { |
+ |
+// The reg exp input class. |
+// It supports only functions used in phonelibrary. |
+class RegularExpressionInput { |
+ public: |
+ virtual ~RegularExpressionInput() {}; |
+ |
+ // Matches string to regular expression, returns true if expression was |
+ // matched, false otherwise, advances position in the match. |
+ // |reg_exp| - expression to be matched. |
+ // |beginning_only| - if true match would be successfull only if appears at |
+ // the beginning of the tested region of the string. |
+ // |matched_string1| - successfully matched first string. Can be NULL. |
+ // |matched_string2| - successfully matched second string. Can be NULL. |
+ virtual bool ConsumeRegExp(std::string const& reg_exp, |
+ bool beginning_only, |
+ std::string* matched_string1, |
+ std::string* matched_string2) = 0; |
+ // Convert unmatched input to a string. |
+ virtual std::string ToString() const = 0; |
+}; |
+ |
+// The regular expression class. |
+// It supports only functions used in phonelibrary. |
+class RegularExpression { |
+ public: |
+ RegularExpression() {} |
+ virtual ~RegularExpression() {} |
+ |
+ // Matches string to regular expression, returns true if expression was |
+ // matched, false otherwise, advances position in the match. |
+ // |input_string| - string to be searched. |
+ // |beginning_only| - if true match would be successfull only if appears at |
+ // the beginning of the tested region of the string. |
+ // |matched_string1| - successfully matched first string. Can be NULL. |
+ // |matched_string2| - successfully matched second string. Can be NULL. |
+ // |matched_string3| - successfully matched third string. Can be NULL. |
+ virtual bool Consume(RegularExpressionInput* input_string, |
+ bool beginning_only, |
+ std::string* matched_string1 = NULL, |
+ std::string* matched_string2 = NULL, |
+ std::string* matched_string3 = NULL) const = 0; |
+ |
+ |
+ // Matches string to regular expression, returns true if expression was |
+ // matched, false otherwise. |
+ // |input_string| - string to be searched. |
+ // |full_match| - if true match would be successfull only if it matches the |
+ // complete string. |
+ // |matched_string| - successfully matched string. Can be NULL. |
+ virtual bool Match(const char* input_string, |
+ bool full_match, |
+ std::string* matched_string) const = 0; |
+ |
+ // Replaces match(es) in the |string_to_process|. if |global| is true, |
+ // replaces all the matches, only the first match otherwise. |
+ // |replacement_string| - text the matches are replaced with. |
+ // Returns true if expression successfully processed through the string, |
+ // even if no actual replacements were made. Returns false in case of an |
+ // error. |
+ virtual bool Replace(std::string* string_to_process, |
+ bool global, |
+ const char* replacement_string) const = 0; |
+}; |
+ |
+RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input); |
+RegularExpression* CreateRegularExpression(const char* utf8_regexp); |
+ |
+} // namespace reg_exp |
+ |
+#endif // I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ |
Property changes on: third_party\libphonenumber\cpp\src\regexp_adapter.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |