Namespaces | Functions
ASTHelpers.cpp File Reference
#include <algorithm>
#include "ASTHelpers.h"
#include "CodeGenerator.h"
#include "Insights.h"
#include "InsightsHelpers.h"
#include "InsightsStaticStrings.h"
#include "InsightsStrCat.h"
Include dependency graph for ASTHelpers.cpp:

Go to the source code of this file.

Namespaces

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

Functions

DeclStmt * clang::insights::asthelpers::_mkDeclStmt (std::span< Decl * > decls)
 
BinaryOperator * clang::insights::asthelpers::Assign (const VarDecl *var, Expr *assignExpr)
 
static BinaryOperator * clang::insights::asthelpers::mkBinaryOperator (Expr *lhs, Expr *rhs, BinaryOperator::Opcode opc, QualType resType)
 
BinaryOperator * clang::insights::asthelpers::Assign (UnaryOperator *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (MemberExpr *me, ValueDecl *field, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (DeclRefExpr *declRef, ValueDecl *field, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (DeclRefExpr *declRef, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Assign (Expr *var, Expr *assignExpr)
 
static UnaryOperator * clang::insights::asthelpers::mkUnaryOperator (const Expr *stmt, UnaryOperatorKind kind, QualType type)
 
UnaryOperator * clang::insights::asthelpers::Not (const Expr *stmt)
 
static UnaryOperator * clang::insights::asthelpers::mkReference (Expr *e, QualType t)
 
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 (ArrayRef< Stmt * > body)
 
CXXCatchStmt * clang::insights::asthelpers::Catch (Stmt *body)
 
CXXThrowExpr * clang::insights::asthelpers::Throw (const Expr *expr)
 
UnaryExprOrTypeTraitExpr * clang::insights::asthelpers::Sizeof (QualType toType)
 
CXXStaticCastExpr * clang::insights::asthelpers::Cast (const Expr *toExpr, QualType toType)
 
QualType clang::insights::asthelpers::Ptr (QualType srcType)
 
CanQualType clang::insights::asthelpers::VoidTy ()
 
ParenExpr * clang::insights::asthelpers::Paren (Expr *expr)
 
QualType clang::insights::asthelpers::ContantArrayTy (QualType t, int size)
 
static QualType clang::insights::asthelpers::mkAnonVoidFunctionPointer ()
 
static FunctionDecl * clang::insights::asthelpers::CreateFunctionDecl (std::string_view funcName, params_vector params)
 
CXXStaticCastExpr * clang::insights::asthelpers::CastToVoidFunPtr (std::string_view name)
 
CXXReinterpretCastExpr * clang::insights::asthelpers::ReinterpretCast (QualType toType, const Expr *toExpr, bool makePointer)
 
CXXStaticCastExpr * clang::insights::asthelpers::StaticCast (QualType toType, const Expr *toExpr, bool makePointer)
 
auto * clang::insights::asthelpers::mkLabelDecl (std::string_view name)
 
LabelStmt * clang::insights::asthelpers::Label (std::string_view name)
 
CompoundStmt * clang::insights::asthelpers::mkCompoundStmt (ArrayRef< Stmt * > bodyStmts, SourceLocation beginLoc, SourceLocation endLoc)
 
IfStmt * clang::insights::asthelpers::If (const Expr *condition, ArrayRef< Stmt * > bodyStmts)
 
IntegerLiteral * clang::insights::asthelpers::Int32 (uint64_t value)
 
MemberExpr * clang::insights::asthelpers::AccessMember (const Expr *expr, const ValueDecl *vd, bool isArrow)
 
BinaryOperator * clang::insights::asthelpers::Equal (Expr *var, Expr *assignExpr)
 
BinaryOperator * clang::insights::asthelpers::Plus (Expr *var, Expr *assignExpr)
 
GotoStmt * clang::insights::asthelpers::Goto (std::string_view labelName)
 
ParmVarDecl * clang::insights::asthelpers::Parameter (const FunctionDecl *fd, std::string_view name, QualType type)
 
static auto * clang::insights::asthelpers::FunctionBase (std::string_view name, QualType returnType, const params_vector &parameters, DeclContext *declCtx)
 
FunctionDecl * clang::insights::asthelpers::Function (std::string_view name, QualType returnType, const params_vector &parameters)
 
auto * clang::insights::asthelpers::mkStdFunctionDecl (std::string_view name, QualType returnType, const params_vector &parameters)
 
DeclRefExpr * clang::insights::asthelpers::mkDeclRefExpr (const ValueDecl *vd)
 
ImplicitCastExpr * clang::insights::asthelpers::CastLToRValue (const VarDecl *vd)
 
CXXMemberCallExpr * clang::insights::asthelpers::CallMemberFun (Expr *memExpr, QualType retType)
 
ReturnStmt * clang::insights::asthelpers::Return (Expr *stmt)
 
ReturnStmt * clang::insights::asthelpers::Return (const ValueDecl *stmt)
 
SwitchStmt * clang::insights::asthelpers::Switch (Expr *stmt)
 
BreakStmt * clang::insights::asthelpers::Break ()
 
CaseStmt * clang::insights::asthelpers::Case (int value, Stmt *stmt)
 
VarDecl * clang::insights::asthelpers::Variable (std::string_view name, QualType type, DeclContext *dc)
 
NullStmt * clang::insights::asthelpers::mkNullStmt ()
 
Stmtclang::insights::asthelpers::Comment (std::string_view comment)
 
CXXRecordDecl * clang::insights::asthelpers::Struct (std::string_view name)
 
FieldDecl * clang::insights::asthelpers::mkFieldDecl (DeclContext *dc, std::string_view name, QualType type)
 
InitListExpr * clang::insights::asthelpers::InitList (ArrayRef< Expr * > initExprs, QualType t)
 
ArraySubscriptExpr * clang::insights::asthelpers::ArraySubscript (const Expr *lhs, uint64_t index, QualType type)
 
params_vector clang::insights::asthelpers::to_params_view (params_store &params)
 
DeclRefExpr * clang::insights::asthelpers::mkVarDeclRefExpr (std::string_view name, QualType type)
 
static CallExpr * clang::insights::asthelpers::CallConstructor (QualType ctorType, DeclRefExpr *lhsDeclRef, Expr *lhsMemberExpr, ArrayRef< Expr * > callParams, DoCast doCast, AsReference 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)
 
QualType clang::insights::asthelpers::Typedef (std::string_view name, QualType underlayingType)
 
QualType clang::insights::asthelpers::GetRecordDeclType (const CXXMethodDecl *md)
 
QualType clang::insights::asthelpers::GetRecordDeclType (const RecordDecl *rd)
 
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)
 
void clang::insights::asthelpers::ReplaceNode (Stmt *parent, Stmt *oldNode, Stmt *newNode)
 
SmallVector< Expr *, 5 > clang::insights::asthelpers::ArgsToExprVector (const Expr *expr)