Classes | Namespaces | Typedefs | Functions
ASTHelpers.h File Reference
#include <array>
#include <span>
#include <string_view>
#include <vector>
#include "clang/AST/ASTContext.h"
#include "clang/AST/ExprCXX.h"
#include "llvm/ADT/SmallVector.h"
#include "InsightsStrongTypes.h"
Include dependency graph for ASTHelpers.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  clang::insights::asthelpers::StmtsContainer
 ! A helper type to have a container for ArrayRef More...
 

Namespaces

 clang
 
 clang::insights
 
 clang::insights::asthelpers
 

Typedefs

using clang::insights::asthelpers::params_vector = std::vector< std::pair< std::string_view, QualType > >
 
using clang::insights::asthelpers::params_store = std::vector< std::pair< std::string, QualType > >
 

Functions

void clang::insights::asthelpers::ReplaceNode (Stmt *parent, Stmt *oldNode, Stmt *newNode)
 
params_vector clang::insights::asthelpers::to_params_view (params_store &params)
 
QualType clang::insights::asthelpers::GetRecordDeclType (const CXXMethodDecl *md)
 
QualType clang::insights::asthelpers::GetRecordDeclType (const RecordDecl *rd)
 
DeclRefExpr * clang::insights::asthelpers::mkVarDeclRefExpr (std::string_view name, QualType type)
 
 clang::insights::asthelpers::STRONG_BOOL (DoCast)
 
 clang::insights::asthelpers::STRONG_BOOL (AsReference)
 
CallExpr * clang::insights::asthelpers::CallConstructor (QualType ctorType, QualType lhsType, const FieldDecl *fieldDecl, ArrayRef< Expr * > callParams, DoCast doCast, AsReference asReference)
 
CallExpr * clang::insights::asthelpers::CallConstructor (QualType ctorType, const VarDecl *varDecl, ArrayRef< Expr * > callParams, DoCast doCast, AsReference asReference)
 
CXXBoolLiteralExpr * clang::insights::asthelpers::Bool (bool b)
 
CallExpr * clang::insights::asthelpers::CallDestructor (const VarDecl *varDecl)
 
CXXNewExpr * clang::insights::asthelpers::New (ArrayRef< Expr * > placementArgs, const Expr *expr, QualType t)
 
BinaryOperator * clang::insights::asthelpers::Mul (Expr *lhs, Expr *rhs)
 
BinaryOperator * clang::insights::asthelpers::And (VarDecl *lhs, Expr *rhs)
 
QualType clang::insights::asthelpers::Typedef (std::string_view name, QualType underlayingType)
 
SmallVector< Expr *, 5 > clang::insights::asthelpers::ArgsToExprVector (const Expr *expr)
 
template<typename... Dcls>
DeclStmt * clang::insights::asthelpers::mkDeclStmt (Dcls... dcls)
 
Stmtclang::insights::asthelpers::Comment (std::string_view comment)
 
VarDecl * clang::insights::asthelpers::Variable (std::string_view name, QualType type, DeclContext *dc)
 
CXXRecordDecl * clang::insights::asthelpers::Struct (std::string_view name)
 
ReturnStmt * clang::insights::asthelpers::Return (Expr *stmt)
 
ReturnStmt * clang::insights::asthelpers::Return (const ValueDecl *stmt)
 
CompoundStmt * clang::insights::asthelpers::mkCompoundStmt (ArrayRef< Stmt * > bodyStmts, SourceLocation beginLoc, SourceLocation endLoc)
 
DeclRefExpr * clang::insights::asthelpers::mkDeclRefExpr (const ValueDecl *vd)
 
NullStmt * clang::insights::asthelpers::mkNullStmt ()
 
FieldDecl * clang::insights::asthelpers::mkFieldDecl (DeclContext *dc, std::string_view name, QualType type)
 
ParenExpr * clang::insights::asthelpers::Paren (Expr *expr)
 
QualType clang::insights::asthelpers::ContantArrayTy (QualType t, int size)
 
InitListExpr * clang::insights::asthelpers::InitList (ArrayRef< Expr * > initExprs, QualType t)
 
ArraySubscriptExpr * clang::insights::asthelpers::ArraySubscript (const Expr *lhs, uint64_t index, QualType type)
 
MemberExpr * clang::insights::asthelpers::AccessMember (const Expr *expr, const ValueDecl *vd, bool isArrow)
 
CXXMemberCallExpr * clang::insights::asthelpers::CallMemberFun (Expr *memExpr, QualType retType)
 
ImplicitCastExpr * clang::insights::asthelpers::CastLToRValue (const VarDecl *vd)
 
FunctionDecl * clang::insights::asthelpers::Function (std::string_view name, QualType returnType, const params_vector &parameters)
 
ParmVarDecl * clang::insights::asthelpers::Parameter (const FunctionDecl *fd, std::string_view name, QualType type)
 
BinaryOperator * clang::insights::asthelpers::Assign (DeclRefExpr *declRef, ValueDecl *field, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (MemberExpr *me, ValueDecl *field, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (DeclRefExpr *declRef, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (const VarDecl *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (UnaryOperator *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (Expr *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Equal (Expr *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Plus (Expr *var, Expr *assignExpr)
 
CXXReinterpretCastExpr * clang::insights::asthelpers::ReinterpretCast (QualType toType, const Expr *toExpr, bool makePointer)
 
CXXStaticCastExpr * clang::insights::asthelpers::StaticCast (QualType toType, const Expr *toExpr, bool makePointer)
 
CXXStaticCastExpr * clang::insights::asthelpers::CastToVoidFunPtr (std::string_view name)
 
CXXStaticCastExpr * clang::insights::asthelpers::Cast (const Expr *toExpr, QualType toType)
 
IntegerLiteral * clang::insights::asthelpers::Int32 (uint64_t value)
 
IfStmt * clang::insights::asthelpers::If (const Expr *condition, ArrayRef< Stmt * > bodyStmts)
 
SwitchStmt * clang::insights::asthelpers::Switch (Expr *stmt)
 
CaseStmt * clang::insights::asthelpers::Case (int value, Stmt *stmt)
 
BreakStmt * clang::insights::asthelpers::Break ()
 
LabelStmt * clang::insights::asthelpers::Label (std::string_view name)
 
GotoStmt * clang::insights::asthelpers::Goto (std::string_view labelName)
 
UnaryOperator * clang::insights::asthelpers::Not (const Expr *stmt)
 
UnaryOperator * clang::insights::asthelpers::Ref (const Expr *e)
 
UnaryOperator * clang::insights::asthelpers::Ref (const ValueDecl *d)
 
UnaryOperator * clang::insights::asthelpers::Dref (const Expr *stmt)
 
UnaryOperator * clang::insights::asthelpers::AddrOf (const Expr *stmt)
 
CallExpr * clang::insights::asthelpers::Call (const FunctionDecl *fd, ArrayRef< Expr * > params)
 
CallExpr * clang::insights::asthelpers::Call (MemberExpr *fd, ArrayRef< Expr * > params)
 
CallExpr * clang::insights::asthelpers::Call (std::string_view name, ArrayRef< Expr * > args)
 
CXXTryStmt * clang::insights::asthelpers::Try (const Stmt *tryBody, CXXCatchStmt *catchAllBody)
 
CXXCatchStmt * clang::insights::asthelpers::Catch (Stmt *body)
 
CXXCatchStmt * clang::insights::asthelpers::Catch (ArrayRef< Stmt * > body)
 
CXXThrowExpr * clang::insights::asthelpers::Throw (const Expr *expr)
 
UnaryExprOrTypeTraitExpr * clang::insights::asthelpers::Sizeof (QualType toType)
 
QualType clang::insights::asthelpers::Ptr (QualType srcType)
 
CanQualType clang::insights::asthelpers::VoidTy ()