clang 22.0.0git
clang::ast_matchers::dynamic::MatcherDescriptor Class Referenceabstract

Matcher descriptor interface. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/ASTMatchers/Dynamic/Marshallers.h"

Inheritance diagram for clang::ast_matchers::dynamic::MatcherDescriptor:
[legend]

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< MatcherDescriptorbuildMatcherCtor (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.

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~MatcherDescriptor()

virtual clang::ast_matchers::dynamic::internal::MatcherDescriptor::~MatcherDescriptor ( )
virtualdefault

Member Function Documentation

◆ buildMatcherCtor()

virtual std::unique_ptr< MatcherDescriptor > clang::ast_matchers::dynamic::internal::MatcherDescriptor::buildMatcherCtor ( SourceRange NameRange,
ArrayRef< ParserValue > Args,
Diagnostics * Error ) const
inlinevirtual

Definition at line 317 of file Marshallers.h.

◆ create()

virtual VariantMatcher clang::ast_matchers::dynamic::internal::MatcherDescriptor::create ( SourceRange NameRange,
ArrayRef< ParserValue > Args,
Diagnostics * Error ) const
pure virtual

◆ getArgKinds()

virtual void clang::ast_matchers::dynamic::internal::MatcherDescriptor::getArgKinds ( 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.

Referenced by clang::ast_matchers::dynamic::Registry::getMatcherCompletions().

◆ getNumArgs()

virtual unsigned clang::ast_matchers::dynamic::internal::MatcherDescriptor::getNumArgs ( ) const
pure virtual

Returns the number of arguments accepted by the matcher if not variadic.

Referenced by clang::ast_matchers::dynamic::Registry::getMatcherCompletions().

◆ isBuilderMatcher()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isBuilderMatcher ( ) const
inlinevirtual

Definition at line 314 of file Marshallers.h.

◆ isConvertibleTo()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isConvertibleTo ( ASTNodeKind Kind,
unsigned * Specificity = nullptr,
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.

Referenced by clang::ast_matchers::dynamic::Registry::getMatcherCompletions().

◆ isPolymorphic()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isPolymorphic ( ) const
inlinevirtual

Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T.

Definition at line 349 of file Marshallers.h.

Referenced by clang::ast_matchers::dynamic::Registry::getMatcherCompletions().

◆ isVariadic()

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.

Referenced by clang::ast_matchers::dynamic::Registry::getMatcherCompletions().

◆ nodeMatcherType()

virtual ASTNodeKind clang::ast_matchers::dynamic::internal::MatcherDescriptor::nodeMatcherType ( ) const
inlinevirtual

Definition at line 312 of file Marshallers.h.


The documentation for this class was generated from the following file: