#include ">

clang: lib/Tooling/Syntax/BuildTree.cpp File Reference (original) (raw)

#include "[clang/Tooling/Syntax/BuildTree.h](BuildTree%5F8h%5Fsource.html)"
#include "[clang/AST/ASTFwd.h](ASTFwd%5F8h%5Fsource.html)"
#include "[clang/AST/Decl.h](Decl%5F8h%5Fsource.html)"
#include "[clang/AST/DeclBase.h](DeclBase%5F8h%5Fsource.html)"
#include "[clang/AST/DeclCXX.h](DeclCXX%5F8h%5Fsource.html)"
#include "[clang/AST/DeclarationName.h](DeclarationName%5F8h%5Fsource.html)"
#include "[clang/AST/Expr.h](Expr%5F8h%5Fsource.html)"
#include "[clang/AST/ExprCXX.h](ExprCXX%5F8h%5Fsource.html)"
#include "[clang/AST/IgnoreExpr.h](IgnoreExpr%5F8h%5Fsource.html)"
#include "[clang/AST/OperationKinds.h](OperationKinds%5F8h%5Fsource.html)"
#include "[clang/AST/RecursiveASTVisitor.h](RecursiveASTVisitor%5F8h%5Fsource.html)"
#include "[clang/AST/Stmt.h](Stmt%5F8h%5Fsource.html)"
#include "[clang/AST/TypeLoc.h](TypeLoc%5F8h%5Fsource.html)"
#include "[clang/AST/TypeLocVisitor.h](TypeLocVisitor%5F8h%5Fsource.html)"
#include "[clang/Basic/LLVM.h](LLVM%5F8h%5Fsource.html)"
#include "[clang/Basic/SourceLocation.h](SourceLocation%5F8h%5Fsource.html)"
#include "[clang/Basic/SourceManager.h](SourceManager%5F8h%5Fsource.html)"
#include "[clang/Basic/Specifiers.h](Specifiers%5F8h%5Fsource.html)"
#include "[clang/Basic/TokenKinds.h](TokenKinds%5F8h%5Fsource.html)"
#include "[clang/Lex/Lexer.h](Lexer%5F8h%5Fsource.html)"
#include "[clang/Lex/LiteralSupport.h](LiteralSupport%5F8h%5Fsource.html)"
#include "[clang/Tooling/Syntax/Nodes.h](Nodes%5F8h%5Fsource.html)"
#include "[clang/Tooling/Syntax/TokenBufferTokenManager.h](TokenBufferTokenManager%5F8h%5Fsource.html)"
#include "[clang/Tooling/Syntax/Tokens.h](Tokens%5F8h%5Fsource.html)"
#include "[clang/Tooling/Syntax/Tree.h](Tree%5F8h%5Fsource.html)"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include <cstddef>
#include <map>

Go to the source code of this file.

Functions
static Expr * IgnoreImplicitConstructorSingleStep (Expr *E)
static Expr * IgnoreCXXFunctionalCastExprWrappingConstructor (Expr *E)
static Expr * IgnoreImplicit (Expr *E)
static LLVM_ATTRIBUTE_UNUSED bool isImplicitExpr (Expr *E)
static CallExpr::arg_range dropDefaultArgs (CallExpr::arg_range Args)
static syntax::NodeKind getOperatorNodeKind (const CXXOperatorCallExpr &E)
static SourceLocation getQualifiedNameStart (NamedDecl *D)
Get the start of the qualified name.
static SourceRange getInitializerRange (Decl *D)
Gets the range of the initializer inside an init-declarator C++ [dcl.decl].
static SourceRange getDeclaratorRange (const SourceManager &SM, TypeLoc T, SourceLocation Name, SourceRange Initializer)
Gets the range of declarator as defined by the C++ grammar.

dropDefaultArgs()

getDeclaratorRange()

Gets the range of declarator as defined by the C++ grammar.

E.g. int a; -> range of a, int *a; -> range of *a, int a[10]; -> range of a[10], int a[1][2][3]; -> range of a[1][2][3], int *a = nullptr -> range of *a = nullptr. int S::f(){} -> range of S::f(). FIXME: Name must be a source range.

Definition at line 292 of file BuildTree.cpp.

References clang::Initializer, clang::SourceLocation::isInvalid(), SM, and clang::T.

getInitializerRange()

Gets the range of the initializer inside an init-declarator C++ [dcl.decl].

int a; -> range of ` , int *a = nullptr-> range of= nullptr. int a{}-> range of{}. int a()-> range of()`.

Definition at line 273 of file BuildTree.cpp.

References D, and V.

getOperatorNodeKind()

getQualifiedNameStart()

Get the start of the qualified name.

In the examples below it gives the location of the ^: int ^a; int *^a; int ^a::S::f(){}

Definition at line 250 of file BuildTree.cpp.

References D, and clang::Decl::getLocation().

IgnoreCXXFunctionalCastExprWrappingConstructor()

static Expr * IgnoreCXXFunctionalCastExprWrappingConstructor ( Expr * E) static

IgnoreImplicit()

static Expr * IgnoreImplicit ( Expr * E) static

IgnoreImplicitConstructorSingleStep()

static Expr * IgnoreImplicitConstructorSingleStep ( Expr * E) static

isImplicitExpr()

static LLVM_ATTRIBUTE_UNUSED bool isImplicitExpr ( Expr * E) static