1//===-- ClangDeclVendor.h ---------------------------------------*- C++ -*-===//
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-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H
10#define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGDECLVENDOR_H
11
12#include "lldb/Symbol/DeclVendor.h"
13
14namespace clang {
15class NamedDecl;
16}
17
18namespace lldb_private {
19
20// A clang specialized extension to DeclVendor.
21class ClangDeclVendor : public DeclVendor {
22public:
23 ClangDeclVendor(DeclVendorKind kind) : DeclVendor(kind) {}
24
25 ~ClangDeclVendor() override = default;
26
27 using DeclVendor::FindDecls;
28
29 uint32_t FindDecls(ConstString name, bool append, uint32_t max_matches,
30 std::vector<clang::NamedDecl *> &decls);
31
32 static bool classof(const DeclVendor *vendor) {
33 return vendor->GetKind() >= eClangDeclVendor &&
34 vendor->GetKind() < eLastClangDeclVendor;
35 }
36
37private:
38 ClangDeclVendor(const ClangDeclVendor &) = delete;
39 const ClangDeclVendor &operator=(const ClangDeclVendor &) = delete;
40};
41} // namespace lldb_private
42
43#endif
44

source code of lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.h