clang API Documentation

Classes | Namespaces | Defines | Functions
TreeTransform.h File Reference
#include "TypeLocBuilder.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/Sema/Designator.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/Ownership.h"
#include "clang/Sema/ParsedTemplate.h"
#include "clang/Sema/ScopeInfo.h"
#include "clang/Sema/SemaDiagnostic.h"
#include "clang/Sema/SemaInternal.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include "clang/Basic/AttrList.inc"
#include "clang/AST/TypeLocNodes.def"
#include "clang/AST/StmtNodes.inc"
#include "clang/Basic/OpenMPKinds.def"
#include "clang/Basic/OperatorKinds.def"
Include dependency graph for TreeTransform.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  clang::TreeTransform< Derived >
 A semantic tree transformation that allows one to transform one abstract syntax tree into another. More...
class  clang::TreeTransform< Derived >::ForgetPartiallySubstitutedPackRAII
 Private RAII object that helps us forget and then re-remember the template argument corresponding to a partially-substituted parameter pack.
class  clang::TreeTransform< Derived >::TemporaryBase
 RAII object that temporarily sets the base location and entity used for reporting diagnostics in types. More...
class  clang::TemplateArgumentLocInventIterator< Derived, InputIterator >
 Iterator adaptor that invents template argument location information for each of the template arguments in its underlying iterator. More...
class  clang::TemplateArgumentLocInventIterator< Derived, InputIterator >::pointer
class  clang::TemplateArgumentLocContainerIterator< ArgLocContainer >
 Simple iterator that traverses the template arguments in a container that provides a getArgLoc() member function. More...
class  clang::TemplateArgumentLocContainerIterator< ArgLocContainer >::pointer

Namespaces

namespace  clang

Defines

#define ATTR(X)
 Transform the specified attribute.
#define PRAGMA_SPELLING_ATTR(X)   const X##Attr *Transform##X##Attr(const X##Attr *R) { return R; }
#define ABSTRACT_TYPELOC(CLASS, PARENT)
#define TYPELOC(CLASS, PARENT)   QualType Transform##CLASS##Type(TypeLocBuilder &TLB, CLASS##TypeLoc T);
#define STMT(Node, Parent)
#define EXPR(Node, Parent)
#define ABSTRACT_STMT(Stmt)
#define OPENMP_CLAUSE(Name, Class)
#define STMT(Node, Parent)   case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));
#define ABSTRACT_STMT(Node)
#define EXPR(Node, Parent)
#define STMT(Node, Parent)
#define ABSTRACT_STMT(Stmt)
#define EXPR(Node, Parent)   case Stmt::Node##Class:
#define OPENMP_CLAUSE(Name, Class)
#define STMT(Node, Parent)   case Stmt::Node##Class: break;
#define ABSTRACT_STMT(Stmt)
#define EXPR(Node, Parent)   case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));
#define ABSTRACT_TYPELOC(CLASS, PARENT)
#define TYPELOC(CLASS, PARENT)
#define ATTR(X)
 Transform the specified attribute.
#define PRAGMA_SPELLING_ATTR(X)
#define OVERLOADED_OPERATOR(Name, Spelling, Token, Unary, Binary, MemberOnly)   case OO_##Name:
#define OVERLOADED_OPERATOR_MULTI(Name, Spelling, Unary, Binary, MemberOnly)

Functions

template<class TyLoc >
static QualType clang::TransformTypeSpecType (TypeLocBuilder &TLB, TyLoc T)

Define Documentation

#define ABSTRACT_STMT (   Stmt)

Definition at line 653 of file TreeTransform.h.

#define ABSTRACT_STMT (   Node)

Definition at line 653 of file TreeTransform.h.

#define ABSTRACT_STMT (   Stmt)

Definition at line 653 of file TreeTransform.h.

#define ABSTRACT_STMT (   Stmt)

Definition at line 653 of file TreeTransform.h.

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 561 of file TreeTransform.h.

#define ABSTRACT_TYPELOC (   CLASS,
  PARENT 
)

Definition at line 561 of file TreeTransform.h.

#define ATTR (   X)

Transform the specified attribute.

Subclasses should override the transformation of attributes with a pragma spelling to transform expressions stored within the attribute.

Returns:
the transformed attribute.

Definition at line 346 of file TreeTransform.h.

#define ATTR (   X)

Transform the specified attribute.

Subclasses should override the transformation of attributes with a pragma spelling to transform expressions stored within the attribute.

Returns:
the transformed attribute.

Definition at line 346 of file TreeTransform.h.

#define EXPR (   Node,
  Parent 
)
Value:
LLVM_ATTRIBUTE_NOINLINE \
  ExprResult Transform##Node(Node *E);

Definition at line 650 of file TreeTransform.h.

#define EXPR (   Node,
  Parent 
)

Definition at line 650 of file TreeTransform.h.

#define EXPR (   Node,
  Parent 
)    case Stmt::Node##Class:

Definition at line 650 of file TreeTransform.h.

#define EXPR (   Node,
  Parent 
)    case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));

Definition at line 650 of file TreeTransform.h.

#define OPENMP_CLAUSE (   Name,
  Class 
)
Value:
LLVM_ATTRIBUTE_NOINLINE \
  OMPClause *Transform ## Class(Class *S);

Definition at line 656 of file TreeTransform.h.

#define OPENMP_CLAUSE (   Name,
  Class 
)
Value:
case OMPC_ ## Name :                                                         \
    return getDerived().Transform ## Class(cast<Class>(S));

Definition at line 656 of file TreeTransform.h.

#define OVERLOADED_OPERATOR (   Name,
  Spelling,
  Token,
  Unary,
  Binary,
  MemberOnly 
)    case OO_##Name:
#define OVERLOADED_OPERATOR_MULTI (   Name,
  Spelling,
  Unary,
  Binary,
  MemberOnly 
)
#define PRAGMA_SPELLING_ATTR (   X)    const X##Attr *Transform##X##Attr(const X##Attr *R) { return R; }

Definition at line 347 of file TreeTransform.h.

#define PRAGMA_SPELLING_ATTR (   X)
Value:
case attr::X:                                                                \
    return getDerived().Transform##X##Attr(cast<X##Attr>(R));

Definition at line 347 of file TreeTransform.h.

#define STMT (   Node,
  Parent 
)
Value:
LLVM_ATTRIBUTE_NOINLINE \
  StmtResult Transform##Node(Node *S);

Definition at line 647 of file TreeTransform.h.

#define STMT (   Node,
  Parent 
)    case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));

Definition at line 647 of file TreeTransform.h.

#define STMT (   Node,
  Parent 
)

Definition at line 647 of file TreeTransform.h.

#define STMT (   Node,
  Parent 
)    case Stmt::Node##Class: break;

Definition at line 647 of file TreeTransform.h.

#define TYPELOC (   CLASS,
  PARENT 
)    QualType Transform##CLASS##Type(TypeLocBuilder &TLB, CLASS##TypeLoc T);

Definition at line 562 of file TreeTransform.h.

#define TYPELOC (   CLASS,
  PARENT 
)
Value:
case TypeLoc::CLASS:                                                         \
    return getDerived().Transform##CLASS##Type(TLB,                            \
                                               T.castAs<CLASS##TypeLoc>());

Definition at line 562 of file TreeTransform.h.