clang API Documentation

Public Member Functions
clang::ast_matchers::dynamic::internal::MatcherDescriptor Class Reference

Matcher descriptor interface. More...

#include <Marshallers.h>

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

List of all members.

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

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

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

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.


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