19dba64beSDimitry Andric //===-- ClangDeclVendor.h ---------------------------------------*- C++ -*-===// 29dba64beSDimitry Andric // 39dba64beSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 49dba64beSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 59dba64beSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 69dba64beSDimitry Andric // 79dba64beSDimitry Andric //===----------------------------------------------------------------------===// 89dba64beSDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H 105ffd83dbSDimitry Andric #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H 119dba64beSDimitry Andric 129dba64beSDimitry Andric #include "lldb/Symbol/DeclVendor.h" 139dba64beSDimitry Andric 145ffd83dbSDimitry Andric namespace clang { 155ffd83dbSDimitry Andric class NamedDecl; 165ffd83dbSDimitry Andric } 175ffd83dbSDimitry Andric 189dba64beSDimitry Andric namespace lldb_private { 199dba64beSDimitry Andric 209dba64beSDimitry Andric // A clang specialized extension to DeclVendor. 219dba64beSDimitry Andric class ClangDeclVendor : public DeclVendor { 229dba64beSDimitry Andric public: ClangDeclVendor(DeclVendorKind kind)239dba64beSDimitry Andric ClangDeclVendor(DeclVendorKind kind) : DeclVendor(kind) {} 249dba64beSDimitry Andric 25*81ad6265SDimitry Andric ~ClangDeclVendor() override = default; 269dba64beSDimitry Andric 27480093f4SDimitry Andric using DeclVendor::FindDecls; 289dba64beSDimitry Andric 299dba64beSDimitry Andric uint32_t FindDecls(ConstString name, bool append, uint32_t max_matches, 30480093f4SDimitry Andric std::vector<clang::NamedDecl *> &decls); 319dba64beSDimitry Andric classof(const DeclVendor * vendor)329dba64beSDimitry Andric static bool classof(const DeclVendor *vendor) { 339dba64beSDimitry Andric return vendor->GetKind() >= eClangDeclVendor && 349dba64beSDimitry Andric vendor->GetKind() < eLastClangDeclVendor; 359dba64beSDimitry Andric } 369dba64beSDimitry Andric 379dba64beSDimitry Andric private: 385ffd83dbSDimitry Andric ClangDeclVendor(const ClangDeclVendor &) = delete; 395ffd83dbSDimitry Andric const ClangDeclVendor &operator=(const ClangDeclVendor &) = delete; 409dba64beSDimitry Andric }; 419dba64beSDimitry Andric } // namespace lldb_private 429dba64beSDimitry Andric 439dba64beSDimitry Andric #endif 44