clang 20.0.0git
|
Matcher descriptor interface. More...
Public Member Functions | |
virtual | ~MatcherDescriptor ()=default |
virtual VariantMatcher | create (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const =0 |
virtual ASTNodeKind | nodeMatcherType () const |
virtual bool | isBuilderMatcher () const |
virtual std::unique_ptr< MatcherDescriptor > | buildMatcherCtor (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const |
virtual bool | isVariadic () const =0 |
Returns whether the matcher is variadic. | |
virtual unsigned | getNumArgs () const =0 |
Returns the number of arguments accepted by the matcher if not variadic. | |
virtual void | getArgKinds (ASTNodeKind ThisKind, unsigned ArgNo, std::vector< ArgKind > &ArgKinds) const =0 |
Given that the matcher is being converted to type ThisKind , append the set of argument types accepted for argument ArgNo to ArgKinds . | |
virtual bool | isConvertibleTo (ASTNodeKind Kind, unsigned *Specificity=nullptr, ASTNodeKind *LeastDerivedKind=nullptr) const =0 |
Returns whether this matcher is convertible to the given type. | |
virtual bool | isPolymorphic () const |
Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T. | |
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 304 of file Marshallers.h.
|
virtualdefault |
|
inlinevirtual |
Reimplemented in clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Definition at line 317 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::Registry::buildMatcherCtor().
|
pure virtual |
Implemented in clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::constructMatcher().
|
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::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
|
pure virtual |
Returns the number of arguments accepted by the matcher if not variadic.
Implemented in clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
|
inlinevirtual |
Reimplemented in clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Definition at line 314 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::Registry::isBuilderMatcher().
|
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::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::DynCastAllOfMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
|
inlinevirtual |
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, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Definition at line 349 of file Marshallers.h.
|
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::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.
Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().
|
inlinevirtual |
Reimplemented in clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, and clang::ast_matchers::dynamic::internal::DynCastAllOfMatcherDescriptor.
Definition at line 312 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::Registry::nodeMatcherType().