summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/StringExtras.h
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-01-11 18:03:24 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-01-11 18:03:24 +0000
commitd4f195999a7774611e5f9e457a86f14d5e257324 (patch)
treeb42b9fcb6b31623ba37362aee09417547ca4e244 /include/llvm/ADT/StringExtras.h
parente5dacc55ad0122eb4b8913955cf6339fa3ff2d6e (diff)
downloadllvm-d4f195999a7774611e5f9e457a86f14d5e257324.tar.gz
llvm-d4f195999a7774611e5f9e457a86f14d5e257324.tar.bz2
llvm-d4f195999a7774611e5f9e457a86f14d5e257324.tar.xz
Reimplement getToken and SplitString as "StringRef helper functions"
- getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93161 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/StringExtras.h')
-rw-r--r--include/llvm/ADT/StringExtras.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/include/llvm/ADT/StringExtras.h b/include/llvm/ADT/StringExtras.h
index 85936c019d..f58fe8eade 100644
--- a/include/llvm/ADT/StringExtras.h
+++ b/include/llvm/ADT/StringExtras.h
@@ -20,9 +20,9 @@
#include <cctype>
#include <cstdio>
#include <string>
-#include <vector>
namespace llvm {
+template<typename T> class SmallVectorImpl;
/// hexdigit - Return the (uppercase) hexadecimal character for the
/// given number \arg X (which should be less than 16).
@@ -206,16 +206,16 @@ static inline const char* CStrInCStrNoCase(const char *s1, const char *s2) {
/// leading characters that appear in the Delimiters string, and ending the
/// token at any of the characters that appear in the Delimiters string. If
/// there are no tokens in the source string, an empty string is returned.
-/// The Source source string is updated in place to remove the returned string
-/// and any delimiter prefix from it.
-std::string getToken(std::string &Source,
- const char *Delimiters = " \t\n\v\f\r");
+/// The function returns a pair containing the extracted token and the
+/// remaining tail string.
+std::pair<StringRef, StringRef> getToken(StringRef Source,
+ StringRef Delimiters = " \t\n\v\f\r");
/// SplitString - Split up the specified string according to the specified
/// delimiters, appending the result fragments to the output list.
-void SplitString(const std::string &Source,
- std::vector<std::string> &OutFragments,
- const char *Delimiters = " \t\n\v\f\r");
+void SplitString(StringRef Source,
+ SmallVectorImpl<StringRef> &OutFragments,
+ StringRef Delimiters = " \t\n\v\f\r");
/// HashString - Hash funtion for strings.
///