//===-- NameMatches.cpp -----------------------------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// #include "lldb/Utility/NameMatches.h" #include "lldb/Utility/RegularExpression.h" #include "llvm/ADT/StringRef.h" using namespace lldb_private; bool lldb_private::NameMatches(llvm::StringRef name, NameMatch match_type, llvm::StringRef match) { switch (match_type) { case NameMatch::Ignore: return true; case NameMatch::Equals: return name == match; case NameMatch::Contains: return name.contains(match); case NameMatch::StartsWith: return name.startswith(match); case NameMatch::EndsWith: return name.endswith(match); case NameMatch::RegularExpression: { RegularExpression regex(match); return regex.Execute(name); } } return false; }