1*80814287SRaphael Isemann //===-- NameMatches.cpp ---------------------------------------------------===//
25023257fSZachary Turner //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65023257fSZachary Turner //
75023257fSZachary Turner //===----------------------------------------------------------------------===//
85023257fSZachary Turner #include "lldb/Utility/NameMatches.h"
9bf9a7730SZachary Turner #include "lldb/Utility/RegularExpression.h"
105023257fSZachary Turner 
115023257fSZachary Turner #include "llvm/ADT/StringRef.h"
125023257fSZachary Turner 
135023257fSZachary Turner using namespace lldb_private;
145023257fSZachary Turner 
NameMatches(llvm::StringRef name,NameMatch match_type,llvm::StringRef match)15c4a33951SPavel Labath bool lldb_private::NameMatches(llvm::StringRef name, NameMatch match_type,
164aa8753cSZachary Turner                                llvm::StringRef match) {
17b9c1b51eSKate Stone   switch (match_type) {
18c4a33951SPavel Labath   case NameMatch::Ignore:
195023257fSZachary Turner     return true;
20c4a33951SPavel Labath   case NameMatch::Equals:
214aa8753cSZachary Turner     return name == match;
22c4a33951SPavel Labath   case NameMatch::Contains:
234aa8753cSZachary Turner     return name.contains(match);
24c4a33951SPavel Labath   case NameMatch::StartsWith:
254aa8753cSZachary Turner     return name.startswith(match);
26c4a33951SPavel Labath   case NameMatch::EndsWith:
274aa8753cSZachary Turner     return name.endswith(match);
28c4a33951SPavel Labath   case NameMatch::RegularExpression: {
294aa8753cSZachary Turner     RegularExpression regex(match);
304aa8753cSZachary Turner     return regex.Execute(name);
31c4a33951SPavel Labath   }
325023257fSZachary Turner   }
335023257fSZachary Turner   return false;
345023257fSZachary Turner }
35