clang API Documentation
Matcher descriptor interface. More...
#include <Marshallers.h>
Public Member Functions | |
virtual | ~MatcherDescriptor () |
virtual VariantMatcher | create (const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const =0 |
virtual bool | isVariadic () const =0 |
virtual unsigned | getNumArgs () const =0 |
Returns the number of arguments accepted by the matcher if not variadic. | |
virtual void | getArgKinds (ast_type_traits::ASTNodeKind ThisKind, unsigned ArgNo, std::vector< ArgKind > &ArgKinds) const =0 |
virtual bool | isConvertibleTo (ast_type_traits::ASTNodeKind Kind, unsigned *Specificity=nullptr, ast_type_traits::ASTNodeKind *LeastDerivedKind=nullptr) const =0 |
virtual bool | isPolymorphic () const |
Matcher descriptor interface.
Provides a create()
method that constructs the matcher from the provided arguments, and various other methods for type introspection.
Definition at line 104 of file Marshallers.h.
virtual clang::ast_matchers::dynamic::internal::MatcherDescriptor::~MatcherDescriptor | ( | ) | [inline, virtual] |
Definition at line 106 of file Marshallers.h.
virtual VariantMatcher clang::ast_matchers::dynamic::internal::MatcherDescriptor::create | ( | const SourceRange & | NameRange, |
ArrayRef< ParserValue > | Args, | ||
Diagnostics * | Error | ||
) | const [pure virtual] |
Implemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::constructMatcher().
virtual void clang::ast_matchers::dynamic::internal::MatcherDescriptor::getArgKinds | ( | ast_type_traits::ASTNodeKind | ThisKind, |
unsigned | ArgNo, | ||
std::vector< ArgKind > & | ArgKinds | ||
) | const [pure virtual] |
Given that the matcher is being converted to type ThisKind
, append the set of argument types accepted for argument ArgNo
to ArgKinds
.
Implemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
virtual unsigned clang::ast_matchers::dynamic::internal::MatcherDescriptor::getNumArgs | ( | ) | const [pure virtual] |
Returns the number of arguments accepted by the matcher if not variadic.
Implemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isConvertibleTo | ( | ast_type_traits::ASTNodeKind | Kind, |
unsigned * | Specificity = nullptr , |
||
ast_type_traits::ASTNodeKind * | LeastDerivedKind = nullptr |
||
) | const [pure virtual] |
Returns whether this matcher is convertible to the given type. If it is so convertible, store in *Specificity a value corresponding to the "specificity" of the converted matcher to the given context, and in LeastDerivedKind the least derived matcher kind which would result in the same matcher overload. Zero specificity indicates that this conversion would produce a trivial matcher that will either always or never match. Such matchers are excluded from code completion results.
Implemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::DynCastAllOfMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isPolymorphic | ( | ) | const [inline, virtual] |
Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T.
Reimplemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor.
Definition at line 138 of file Marshallers.h.
virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isVariadic | ( | ) | const [pure virtual] |
Returns whether the matcher is variadic. Variadic matchers can take any number of arguments, but they must be of the same type.
Implemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().