OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_STRING_TOKENIZER_H_ | 5 #ifndef BASE_STRING_TOKENIZER_H_ |
6 #define BASE_STRING_TOKENIZER_H_ | 6 #define BASE_STRING_TOKENIZER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 // StringTokenizerT is a simple string tokenizer class. It works like an | 10 // StringTokenizerT is a simple string tokenizer class. It works like an |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 } | 97 } |
98 | 98 |
99 // Set the options for this tokenizer. By default, this is 0. | 99 // Set the options for this tokenizer. By default, this is 0. |
100 void set_options(int options) { options_ = options; } | 100 void set_options(int options) { options_ = options; } |
101 | 101 |
102 // Set the characters to regard as quotes. By default, this is empty. When | 102 // Set the characters to regard as quotes. By default, this is empty. When |
103 // a quote char is encountered, the tokenizer will switch into a mode where | 103 // a quote char is encountered, the tokenizer will switch into a mode where |
104 // it ignores delimiters that it finds. It switches out of this mode once it | 104 // it ignores delimiters that it finds. It switches out of this mode once it |
105 // finds another instance of the quote char. If a backslash is encountered | 105 // finds another instance of the quote char. If a backslash is encountered |
106 // within a quoted string, then the next character is skipped. | 106 // within a quoted string, then the next character is skipped. |
107 void set_quote_chars(const std::string& quotes) { quotes_ = quotes; } | 107 void set_quote_chars(const str& quotes) { quotes_ = quotes; } |
108 | 108 |
109 // Call this method to advance the tokenizer to the next delimiter. This | 109 // Call this method to advance the tokenizer to the next delimiter. This |
110 // returns false if the tokenizer is complete. This method must be called | 110 // returns false if the tokenizer is complete. This method must be called |
111 // before calling any of the token* methods. | 111 // before calling any of the token* methods. |
112 bool GetNext() { | 112 bool GetNext() { |
113 AdvanceState state; | 113 AdvanceState state; |
114 token_is_delim_ = false; | 114 token_is_delim_ = false; |
115 for (;;) { | 115 for (;;) { |
116 token_begin_ = token_end_; | 116 token_begin_ = token_end_; |
117 if (token_end_ == end_) | 117 if (token_end_ == end_) |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 }; | 194 }; |
195 | 195 |
196 typedef StringTokenizerT<std::string, std::string::const_iterator> | 196 typedef StringTokenizerT<std::string, std::string::const_iterator> |
197 StringTokenizer; | 197 StringTokenizer; |
198 typedef StringTokenizerT<std::wstring, std::wstring::const_iterator> | 198 typedef StringTokenizerT<std::wstring, std::wstring::const_iterator> |
199 WStringTokenizer; | 199 WStringTokenizer; |
200 typedef StringTokenizerT<std::string, const char*> CStringTokenizer; | 200 typedef StringTokenizerT<std::string, const char*> CStringTokenizer; |
201 | 201 |
202 #endif // BASE_STRING_TOKENIZER_H_ | 202 #endif // BASE_STRING_TOKENIZER_H_ |
203 | 203 |
OLD | NEW |