clang  6.0.0svn
Public Member Functions | List of all members
clang::ast_matchers::dynamic::internal::MatcherDescriptor Class Referenceabstract

Matcher descriptor interface. More...

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h"

Inheritance diagram for clang::ast_matchers::dynamic::internal::MatcherDescriptor:
Inheritance graph

Public Member Functions

virtual ~MatcherDescriptor ()=default
virtual VariantMatcher create (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const =0
virtual bool isVariadic () const =0
 Returns whether the matcher is variadic. More...
virtual unsigned getNumArgs () const =0
 Returns the number of arguments accepted by the matcher if not variadic. More...
virtual void getArgKinds (ast_type_traits::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. More...
virtual bool isConvertibleTo (ast_type_traits::ASTNodeKind Kind, unsigned *Specificity=nullptr, ast_type_traits::ASTNodeKind *LeastDerivedKind=nullptr) const =0
 Returns whether this matcher is convertible to the given type. More...
virtual bool isPolymorphic () const
 Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T. More...

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 173 of file Marshallers.h.

Constructor & Destructor Documentation

◆ ~MatcherDescriptor()

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

Member Function Documentation

◆ 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 ( ast_type_traits::ASTNodeKind  ThisKind,
unsigned  ArgNo,
std::vector< ArgKind > &  ArgKinds 
) const
pure virtual

◆ getNumArgs()

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

◆ isConvertibleTo()

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.

◆ isPolymorphic()

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

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 208 of file Marshallers.h.

◆ isVariadic()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isVariadic ( ) const
pure virtual

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