1061da546Spatrick //===-- ClangDeclVendor.h ---------------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H 10dda28197Spatrick #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H 11061da546Spatrick 12061da546Spatrick #include "lldb/Symbol/DeclVendor.h" 13061da546Spatrick 14dda28197Spatrick namespace clang { 15dda28197Spatrick class NamedDecl; 16dda28197Spatrick } 17dda28197Spatrick 18061da546Spatrick namespace lldb_private { 19061da546Spatrick 20061da546Spatrick // A clang specialized extension to DeclVendor. 21061da546Spatrick class ClangDeclVendor : public DeclVendor { 22061da546Spatrick public: ClangDeclVendor(DeclVendorKind kind)23061da546Spatrick ClangDeclVendor(DeclVendorKind kind) : DeclVendor(kind) {} 24061da546Spatrick 25*f6aab3d8Srobert ~ClangDeclVendor() override = default; 26061da546Spatrick 27061da546Spatrick using DeclVendor::FindDecls; 28061da546Spatrick 29061da546Spatrick uint32_t FindDecls(ConstString name, bool append, uint32_t max_matches, 30061da546Spatrick std::vector<clang::NamedDecl *> &decls); 31061da546Spatrick classof(const DeclVendor * vendor)32061da546Spatrick static bool classof(const DeclVendor *vendor) { 33061da546Spatrick return vendor->GetKind() >= eClangDeclVendor && 34061da546Spatrick vendor->GetKind() < eLastClangDeclVendor; 35061da546Spatrick } 36061da546Spatrick 37061da546Spatrick private: 38dda28197Spatrick ClangDeclVendor(const ClangDeclVendor &) = delete; 39dda28197Spatrick const ClangDeclVendor &operator=(const ClangDeclVendor &) = delete; 40061da546Spatrick }; 41061da546Spatrick } // namespace lldb_private 42061da546Spatrick 43061da546Spatrick #endif 44