Add a helper function
authorChris Lattner <sabre@nondot.org>
Tue, 28 Nov 2006 22:32:35 +0000 (22:32 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 28 Nov 2006 22:32:35 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31981 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/StringExtras.h
lib/Support/StringExtras.cpp

index 16132cd8807481df15f64bbf432af78bb590bac3..f0788a1b1147b68f9878d85dd41164ad34c182df 100644 (file)
@@ -18,6 +18,7 @@
 #include <cctype>
 #include <cstdio>
 #include <string>
+#include <vector>
 
 namespace llvm {
 
@@ -129,6 +130,12 @@ static inline bool StringsEqualNoCase(const std::string &LHS,
 std::string getToken(std::string &Source,
                      const char *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");
+
 /// UnescapeString - Modify the argument string, turning two character sequences
 /// like '\\' 'n' into '\n'.  This handles: \e \a \b \f \n \r \t \v \' \\ and
 /// \num (where num is a 1-3 byte octal value).
index 8ce371535b6da1fdb1bd3704fdf236ee358f225c..2ce234970a9dd75b3d51d08bce99f6296d6de5e2 100644 (file)
@@ -42,6 +42,21 @@ std::string llvm::getToken(std::string &Source, const char *Delimiters) {
   return Result;
 }
 
+/// SplitString - Split up the specified string according to the specified
+/// delimiters, appending the result fragments to the output list.
+void llvm::SplitString(const std::string &Source, 
+                       std::vector<std::string> &OutFragments,
+                       const char *Delimiters) {
+  std::string S = Source;
+  
+  std::string S2 = getToken(S, Delimiters);
+  while (!S2.empty()) {
+    OutFragments.push_back(S2);
+    S2 = getToken(S, Delimiters);
+  }
+}
+
+
 
 /// UnescapeString - Modify the argument string, turning two character sequences
 /// like '\\' 'n' into '\n'.  This handles: \e \a \b \f \n \r \t \v \' \\ and