clang
3.7.0
|
Classes | |
struct | ArgTypeTraits |
Helper template class to just from argument type to the right is/get functions in VariantValue. Used to verify and extract the matcher arguments below. More... | |
struct | ArgTypeTraits< const T & > |
struct | ArgTypeTraits< std::string > |
struct | ArgTypeTraits< StringRef > |
struct | ArgTypeTraits< ast_matchers::internal::Matcher< T > > |
struct | ArgTypeTraits< unsigned > |
struct | ArgTypeTraits< attr::Kind > |
class | MatcherDescriptor |
Matcher descriptor interface. More... | |
class | FixedArgCountMatcherDescriptor |
Simple callback implementation. Marshaller and function are provided. More... | |
struct | BuildReturnTypeVector |
struct | BuildReturnTypeVector< ast_matchers::internal::Matcher< T > > |
struct | BuildReturnTypeVector< ast_matchers::internal::BindableMatcher< T > > |
class | VariadicFuncMatcherDescriptor |
Matcher descriptor for variadic functions. More... | |
class | DynCastAllOfMatcherDescriptor |
Return CK_Trivial when appropriate for VariadicDynCastAllOfMatchers. More... | |
class | AdaptativeOverloadCollector |
Helper class used to collect all the possible overloads of an argument adaptative matcher function. More... | |
class | OverloadedMatcherDescriptor |
MatcherDescriptor that wraps multiple "overloads" of the same matcher. More... | |
class | VariadicOperatorMatcherDescriptor |
Variadic operator marshaller function. More... | |
Functions | |
bool | isRetKindConvertibleTo (ArrayRef< ast_type_traits::ASTNodeKind > RetKinds, ast_type_traits::ASTNodeKind Kind, unsigned *Specificity, ast_type_traits::ASTNodeKind *LeastDerivedKind) |
template<class PolyMatcher > | |
static void | mergePolyMatchers (const PolyMatcher &Poly, std::vector< DynTypedMatcher > &Out, ast_matchers::internal::EmptyTypeList) |
Helper methods to extract and merge all possible typed matchers out of the polymorphic object. More... | |
template<class PolyMatcher , class TypeList > | |
static void | mergePolyMatchers (const PolyMatcher &Poly, std::vector< DynTypedMatcher > &Out, TypeList) |
static VariantMatcher | outvalueToVariantMatcher (const DynTypedMatcher &Matcher) |
Convert the return values of the functions into a VariantMatcher. More... | |
template<typename T > | |
static VariantMatcher | outvalueToVariantMatcher (const T &PolyMatcher, typename T::ReturnTypes *=NULL) |
template<typename T > | |
void | buildReturnTypeVectorFromTypeList (std::vector< ast_type_traits::ASTNodeKind > &RetTypes) |
template<> | |
void | buildReturnTypeVectorFromTypeList< ast_matchers::internal::EmptyTypeList > (std::vector< ast_type_traits::ASTNodeKind > &RetTypes) |
template<typename ResultT , typename ArgT , ResultT(*)(ArrayRef< const ArgT * >) Func> | |
VariantMatcher | variadicMatcherDescriptor (StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
Variadic marshaller function. More... | |
template<typename ReturnType > | |
static VariantMatcher | matcherMarshall0 (void(*Func)(), StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
0-arg marshaller function. More... | |
template<typename ReturnType , typename ArgType1 > | |
static VariantMatcher | matcherMarshall1 (void(*Func)(), StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
1-arg marshaller function. More... | |
template<typename ReturnType , typename ArgType1 , typename ArgType2 > | |
static VariantMatcher | matcherMarshall2 (void(*Func)(), StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
2-arg marshaller function. More... | |
template<typename ReturnType > | |
MatcherDescriptor * | makeMatcherAutoMarshall (ReturnType(*Func)(), StringRef MatcherName) |
0-arg overload More... | |
template<typename ReturnType , typename ArgType1 > | |
MatcherDescriptor * | makeMatcherAutoMarshall (ReturnType(*Func)(ArgType1), StringRef MatcherName) |
1-arg overload More... | |
template<typename ReturnType , typename ArgType1 , typename ArgType2 > | |
MatcherDescriptor * | makeMatcherAutoMarshall (ReturnType(*Func)(ArgType1, ArgType2), StringRef MatcherName) |
2-arg overload More... | |
template<typename ResultT , typename ArgT , ResultT(*)(ArrayRef< const ArgT * >) Func> | |
MatcherDescriptor * | makeMatcherAutoMarshall (llvm::VariadicFunction< ResultT, ArgT, Func > VarFunc, StringRef MatcherName) |
Variadic overload. More... | |
template<typename BaseT , typename DerivedT > | |
MatcherDescriptor * | makeMatcherAutoMarshall (ast_matchers::internal::VariadicDynCastAllOfMatcher< BaseT, DerivedT > VarFunc, StringRef MatcherName) |
Overload for VariadicDynCastAllOfMatchers. More... | |
template<template< typename ToArg, typename FromArg > class ArgumentAdapterT, typename FromTypes , typename ToTypes > | |
MatcherDescriptor * | makeMatcherAutoMarshall (ast_matchers::internal::ArgumentAdaptingMatcherFunc< ArgumentAdapterT, FromTypes, ToTypes >, StringRef MatcherName) |
Argument adaptative overload. More... | |
template<unsigned MinCount, unsigned MaxCount> | |
MatcherDescriptor * | makeMatcherAutoMarshall (ast_matchers::internal::VariadicOperatorMatcherFunc< MinCount, MaxCount > Func, StringRef MatcherName) |
Variadic operator overload. More... | |
|
inline |
Definition at line 245 of file Marshallers.h.
|
inline |
Definition at line 254 of file Marshallers.h.
|
inline |
Definition at line 141 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::isConvertibleTo(), and clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor::isConvertibleTo().
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ReturnType(*)() | Func, |
StringRef | MatcherName | ||
) |
0-arg overload
Helper functions to select the appropriate marshaller functions. They detect the number of arguments, arguments types and return type.
Definition at line 623 of file Marshallers.h.
References clang::ast_matchers::dynamic::internal::BuildReturnTypeVector< T >::build(), and clang::None.
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ReturnType(*)(ArgType1) | Func, |
StringRef | MatcherName | ||
) |
1-arg overload
Definition at line 634 of file Marshallers.h.
References clang::ast_matchers::dynamic::internal::BuildReturnTypeVector< T >::build(), and getKind().
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ReturnType(*)(ArgType1, ArgType2) | Func, |
StringRef | MatcherName | ||
) |
2-arg overload
Definition at line 646 of file Marshallers.h.
References clang::ast_matchers::dynamic::internal::BuildReturnTypeVector< T >::build(), and getKind().
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | llvm::VariadicFunction< ResultT, ArgT, Func > | VarFunc, |
StringRef | MatcherName | ||
) |
Variadic overload.
Definition at line 661 of file Marshallers.h.
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ast_matchers::internal::VariadicDynCastAllOfMatcher< BaseT, DerivedT > | VarFunc, |
StringRef | MatcherName | ||
) |
Overload for VariadicDynCastAllOfMatchers.
Not strictly necessary, but DynCastAllOfMatcherDescriptor gives us better completion results for that type of matcher.
Definition at line 672 of file Marshallers.h.
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ast_matchers::internal::ArgumentAdaptingMatcherFunc< ArgumentAdapterT, FromTypes, ToTypes > | , |
StringRef | MatcherName | ||
) |
Argument adaptative overload.
Definition at line 682 of file Marshallers.h.
MatcherDescriptor* clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall | ( | ast_matchers::internal::VariadicOperatorMatcherFunc< MinCount, MaxCount > | Func, |
StringRef | MatcherName | ||
) |
Variadic operator overload.
Definition at line 704 of file Marshallers.h.
|
static |
0-arg marshaller function.
Definition at line 416 of file Marshallers.h.
References CHECK_ARG_COUNT, and outvalueToVariantMatcher().
|
static |
1-arg marshaller function.
Definition at line 427 of file Marshallers.h.
References CHECK_ARG_COUNT, CHECK_ARG_TYPE, and outvalueToVariantMatcher().
|
static |
2-arg marshaller function.
Definition at line 440 of file Marshallers.h.
References CHECK_ARG_COUNT, CHECK_ARG_TYPE, and outvalueToVariantMatcher().
|
static |
Helper methods to extract and merge all possible typed matchers out of the polymorphic object.
Definition at line 213 of file Marshallers.h.
Referenced by mergePolyMatchers(), and outvalueToVariantMatcher().
|
static |
Definition at line 218 of file Marshallers.h.
References mergePolyMatchers().
|
static |
Convert the return values of the functions into a VariantMatcher.
There are 2 cases right now: The return value is a Matcher<T> or is a polymorphic matcher. For the former, we just construct the VariantMatcher. For the latter, we instantiate all the possible Matcher<T> of the poly matcher.
Definition at line 230 of file Marshallers.h.
References clang::ast_matchers::dynamic::VariantMatcher::SingleMatcher().
Referenced by matcherMarshall0(), matcherMarshall1(), matcherMarshall2(), and variadicMatcherDescriptor().
|
static |
Definition at line 235 of file Marshallers.h.
References Matchers, mergePolyMatchers(), and clang::ast_matchers::dynamic::VariantMatcher::PolymorphicMatcher().
VariantMatcher clang::ast_matchers::dynamic::internal::variadicMatcherDescriptor | ( | StringRef | MatcherName, |
const SourceRange & | NameRange, | ||
ArrayRef< ParserValue > | Args, | ||
Diagnostics * | Error | ||
) |
Variadic marshaller function.
Definition at line 282 of file Marshallers.h.
References clang::ast_matchers::dynamic::Diagnostics::addError(), clang::ast_matchers::dynamic::Diagnostics::ET_RegistryWrongArgType, getKind(), clang::ast_matchers::dynamic::VariantValue::getTypeAsString(), outvalueToVariantMatcher(), clang::ast_matchers::dynamic::ParserValue::Range, and clang::ast_matchers::dynamic::ParserValue::Value.