//===- Registry.h - Matcher registry ----------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // /// \file /// Registry of all known matchers. /// /// The registry provides a generic interface to construct any matcher by name. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_ASTMATCHERS_DYNAMIC_REGISTRY_H #define LLVM_CLANG_ASTMATCHERS_DYNAMIC_REGISTRY_H #include "clang/ASTMatchers/Dynamic/Diagnostics.h" #include "clang/ASTMatchers/Dynamic/VariantValue.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" #include <optional> #include <string> #include <utility> #include <vector> namespace clang { namespace ast_matchers { namespace dynamic { namespace internal { class MatcherDescriptor; /// A smart (owning) pointer for MatcherDescriptor. We can't use unique_ptr /// because MatcherDescriptor is forward declared class MatcherDescriptorPtr { … }; } // namespace internal MatcherCtor; struct MatcherCompletion { … }; class Registry { … }; } // namespace dynamic } // namespace ast_matchers } // namespace clang #endif // LLVM_CLANG_ASTMATCHERS_DYNAMIC_REGISTRY_H