diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 |
commit | 0b57cec536236d46e3dba9bd041533462f33dbb7 (patch) | |
tree | 56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/lib/Support/StringExtras.cpp | |
parent | 718ef55ec7785aae63f98f8ca05dc07ed399c16d (diff) |
Notes
Diffstat (limited to 'contrib/llvm/lib/Support/StringExtras.cpp')
-rw-r--r-- | contrib/llvm/lib/Support/StringExtras.cpp | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/contrib/llvm/lib/Support/StringExtras.cpp b/contrib/llvm/lib/Support/StringExtras.cpp deleted file mode 100644 index bf28b2be5657..000000000000 --- a/contrib/llvm/lib/Support/StringExtras.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//===-- StringExtras.cpp - Implement the StringExtras header --------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file implements the StringExtras.h header -// -//===----------------------------------------------------------------------===// - -#include "llvm/ADT/StringExtras.h" -#include "llvm/ADT/SmallVector.h" -#include "llvm/Support/raw_ostream.h" -using namespace llvm; - -/// StrInStrNoCase - Portable version of strcasestr. Locates the first -/// occurrence of string 's1' in string 's2', ignoring case. Returns -/// the offset of s2 in s1 or npos if s2 cannot be found. -StringRef::size_type llvm::StrInStrNoCase(StringRef s1, StringRef s2) { - size_t N = s2.size(), M = s1.size(); - if (N > M) - return StringRef::npos; - for (size_t i = 0, e = M - N + 1; i != e; ++i) - if (s1.substr(i, N).equals_lower(s2)) - return i; - return StringRef::npos; -} - -/// getToken - This function extracts one token from source, ignoring any -/// 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 function returns a pair containing the extracted token and the -/// remaining tail string. -std::pair<StringRef, StringRef> llvm::getToken(StringRef Source, - StringRef Delimiters) { - // Figure out where the token starts. - StringRef::size_type Start = Source.find_first_not_of(Delimiters); - - // Find the next occurrence of the delimiter. - StringRef::size_type End = Source.find_first_of(Delimiters, Start); - - return std::make_pair(Source.slice(Start, End), Source.substr(End)); -} - -/// SplitString - Split up the specified string according to the specified -/// delimiters, appending the result fragments to the output list. -void llvm::SplitString(StringRef Source, - SmallVectorImpl<StringRef> &OutFragments, - StringRef Delimiters) { - std::pair<StringRef, StringRef> S = getToken(Source, Delimiters); - while (!S.first.empty()) { - OutFragments.push_back(S.first); - S = getToken(S.second, Delimiters); - } -} - -void llvm::printEscapedString(StringRef Name, raw_ostream &Out) { - for (unsigned i = 0, e = Name.size(); i != e; ++i) { - unsigned char C = Name[i]; - if (isPrint(C) && C != '\\' && C != '"') - Out << C; - else - Out << '\\' << hexdigit(C >> 4) << hexdigit(C & 0x0F); - } -} - -void llvm::printHTMLEscaped(StringRef String, raw_ostream &Out) { - for (char C : String) { - if (C == '&') - Out << "&"; - else if (C == '<') - Out << "<"; - else if (C == '>') - Out << ">"; - else if (C == '\"') - Out << """; - else if (C == '\'') - Out << "'"; - else - Out << C; - } -} - -void llvm::printLowerCase(StringRef String, raw_ostream &Out) { - for (const char C : String) - Out << toLower(C); -} |