clang
3.7.0
|
Functions templates and classes to wrap matcher construct functions. More...
#include "clang/ASTMatchers/ASTMatchers.h"
#include "clang/ASTMatchers/Dynamic/Diagnostics.h"
#include "clang/ASTMatchers/Dynamic/VariantValue.h"
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include <string>
#include "clang/Basic/AttrList.inc"
Go to the source code of this file.
Namespaces | |
clang | |
clang::ast_matchers | |
clang::ast_matchers::dynamic | |
clang::ast_matchers::dynamic::internal | |
Macros | |
#define | ATTR(X) .Case("attr::" #X, attr:: X) |
#define | CHECK_ARG_COUNT(count) |
Helper macros to check the arguments on all marshaller functions. More... | |
#define | CHECK_ARG_TYPE(index, type) |
Functions | |
bool | clang::ast_matchers::dynamic::internal::isRetKindConvertibleTo (ArrayRef< ast_type_traits::ASTNodeKind > RetKinds, ast_type_traits::ASTNodeKind Kind, unsigned *Specificity, ast_type_traits::ASTNodeKind *LeastDerivedKind) |
template<class PolyMatcher > | |
static void | clang::ast_matchers::dynamic::internal::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 | clang::ast_matchers::dynamic::internal::mergePolyMatchers (const PolyMatcher &Poly, std::vector< DynTypedMatcher > &Out, TypeList) |
static VariantMatcher | clang::ast_matchers::dynamic::internal::outvalueToVariantMatcher (const DynTypedMatcher &Matcher) |
Convert the return values of the functions into a VariantMatcher. More... | |
template<typename T > | |
static VariantMatcher | clang::ast_matchers::dynamic::internal::outvalueToVariantMatcher (const T &PolyMatcher, typename T::ReturnTypes *=NULL) |
template<typename T > | |
void | clang::ast_matchers::dynamic::internal::buildReturnTypeVectorFromTypeList (std::vector< ast_type_traits::ASTNodeKind > &RetTypes) |
template<> | |
void | clang::ast_matchers::dynamic::internal::buildReturnTypeVectorFromTypeList< ast_matchers::internal::EmptyTypeList > (std::vector< ast_type_traits::ASTNodeKind > &RetTypes) |
template<typename ResultT , typename ArgT , ResultT(*)(ArrayRef< const ArgT * >) Func> | |
VariantMatcher | clang::ast_matchers::dynamic::internal::variadicMatcherDescriptor (StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
Variadic marshaller function. More... | |
template<typename ReturnType > | |
static VariantMatcher | clang::ast_matchers::dynamic::internal::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 | clang::ast_matchers::dynamic::internal::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 | clang::ast_matchers::dynamic::internal::matcherMarshall2 (void(*Func)(), StringRef MatcherName, const SourceRange &NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) |
2-arg marshaller function. More... | |
template<typename ReturnType > | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (ReturnType(*Func)(), StringRef MatcherName) |
0-arg overload More... | |
template<typename ReturnType , typename ArgType1 > | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (ReturnType(*Func)(ArgType1), StringRef MatcherName) |
1-arg overload More... | |
template<typename ReturnType , typename ArgType1 , typename ArgType2 > | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (ReturnType(*Func)(ArgType1, ArgType2), StringRef MatcherName) |
2-arg overload More... | |
template<typename ResultT , typename ArgT , ResultT(*)(ArrayRef< const ArgT * >) Func> | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (llvm::VariadicFunction< ResultT, ArgT, Func > VarFunc, StringRef MatcherName) |
Variadic overload. More... | |
template<typename BaseT , typename DerivedT > | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::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 * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (ast_matchers::internal::ArgumentAdaptingMatcherFunc< ArgumentAdapterT, FromTypes, ToTypes >, StringRef MatcherName) |
Argument adaptative overload. More... | |
template<unsigned MinCount, unsigned MaxCount> | |
MatcherDescriptor * | clang::ast_matchers::dynamic::internal::makeMatcherAutoMarshall (ast_matchers::internal::VariadicOperatorMatcherFunc< MinCount, MaxCount > Func, StringRef MatcherName) |
Variadic operator overload. More... | |
Functions templates and classes to wrap matcher construct functions.
A collection of template function and classes that provide a generic marshalling layer on top of matcher construct functions. These are used by the registry to export all marshaller constructors with the same generic interface.
Definition in file Marshallers.h.
#define CHECK_ARG_COUNT | ( | count | ) |
Helper macros to check the arguments on all marshaller functions.
Definition at line 398 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::internal::matcherMarshall0(), clang::ast_matchers::dynamic::internal::matcherMarshall1(), and clang::ast_matchers::dynamic::internal::matcherMarshall2().
#define CHECK_ARG_TYPE | ( | index, | |
type | |||
) |
Definition at line 405 of file Marshallers.h.
Referenced by clang::ast_matchers::dynamic::internal::matcherMarshall1(), and clang::ast_matchers::dynamic::internal::matcherMarshall2().