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

Matcher descriptor interface. More...

#include <Marshallers.h>

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

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. More...
 
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
 

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

Constructor & Destructor Documentation

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

Definition at line 106 of file Marshallers.h.

Member Function Documentation

virtual VariantMatcher clang::ast_matchers::dynamic::internal::MatcherDescriptor::create ( const SourceRange NameRange,
ArrayRef< ParserValue Args,
Diagnostics Error 
) const
pure virtual
virtual void clang::ast_matchers::dynamic::internal::MatcherDescriptor::getArgKinds ( ast_type_traits::ASTNodeKind  ThisKind,
unsigned  ArgNo,
std::vector< ArgKind > &  ArgKinds 
) const
pure virtual
virtual unsigned clang::ast_matchers::dynamic::internal::MatcherDescriptor::getNumArgs ( ) const
pure virtual
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
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.

Definition at line 138 of file Marshallers.h.

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

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