35 lines · cpp
1//===-- NameMatches.cpp ---------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8#include "lldb/Utility/NameMatches.h"9#include "lldb/Utility/RegularExpression.h"10 11#include "llvm/ADT/StringRef.h"12 13using namespace lldb_private;14 15bool lldb_private::NameMatches(llvm::StringRef name, NameMatch match_type,16 llvm::StringRef match) {17 switch (match_type) {18 case NameMatch::Ignore:19 return true;20 case NameMatch::Equals:21 return name == match;22 case NameMatch::Contains:23 return name.contains(match);24 case NameMatch::StartsWith:25 return name.starts_with(match);26 case NameMatch::EndsWith:27 return name.ends_with(match);28 case NameMatch::RegularExpression: {29 RegularExpression regex(match);30 return regex.Execute(name);31 }32 }33 return false;34}35