Add a new split method to StringRef that puts the substrings in a vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87058 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/StringExtras.cpp b/lib/Support/StringExtras.cpp
index c72f121..05ba34b 100644
--- a/lib/Support/StringExtras.cpp
+++ b/lib/Support/StringExtras.cpp
@@ -56,3 +56,22 @@
     S2 = getToken(S, Delimiters);
   }
 }
+
+void llvm::StringRef::split(std::vector<StringRef> &A,
+                            StringRef Separators, unsigned MaxSplit,
+                            bool KeepEmpty) const {
+  StringRef rest = *this;
+
+  for (unsigned splits = 0;
+       rest.size() != 0 && (MaxSplit < 0 || splits < MaxSplit);
+       ++splits) {
+    std::pair<llvm::StringRef, llvm::StringRef> p = rest.split(Separators);
+
+    if (p.first.size() != 0 || KeepEmpty)
+      A.push_back(p.first);
+    rest = p.second;
+  }
+
+  if (rest.size() != 0 || KeepEmpty)
+    A.push_back(rest);
+}