#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/ExprOpenMP.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/OpenMPClause.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/ExpressionTraits.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/JsonSupport.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Lambda.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/TypeTraits.h"
#include "clang/Lex/Lexer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <optional>
#include <string>
usingnamespaceclang;
namespace {
class StmtPrinter : public StmtVisitor<StmtPrinter> { … };
}
void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { … }
void StmtPrinter::PrintFPPragmas(CompoundStmt *S) { … }
void StmtPrinter::PrintRawDecl(Decl *D) { … }
void StmtPrinter::PrintRawDeclStmt(const DeclStmt *S) { … }
void StmtPrinter::VisitNullStmt(NullStmt *Node) { … }
void StmtPrinter::VisitDeclStmt(DeclStmt *Node) { … }
void StmtPrinter::VisitCompoundStmt(CompoundStmt *Node) { … }
void StmtPrinter::VisitCaseStmt(CaseStmt *Node) { … }
void StmtPrinter::VisitDefaultStmt(DefaultStmt *Node) { … }
void StmtPrinter::VisitLabelStmt(LabelStmt *Node) { … }
void StmtPrinter::VisitAttributedStmt(AttributedStmt *Node) { … }
void StmtPrinter::PrintRawIfStmt(IfStmt *If) { … }
void StmtPrinter::VisitIfStmt(IfStmt *If) { … }
void StmtPrinter::VisitSwitchStmt(SwitchStmt *Node) { … }
void StmtPrinter::VisitWhileStmt(WhileStmt *Node) { … }
void StmtPrinter::VisitDoStmt(DoStmt *Node) { … }
void StmtPrinter::VisitForStmt(ForStmt *Node) { … }
void StmtPrinter::VisitObjCForCollectionStmt(ObjCForCollectionStmt *Node) { … }
void StmtPrinter::VisitCXXForRangeStmt(CXXForRangeStmt *Node) { … }
void StmtPrinter::VisitMSDependentExistsStmt(MSDependentExistsStmt *Node) { … }
void StmtPrinter::VisitGotoStmt(GotoStmt *Node) { … }
void StmtPrinter::VisitIndirectGotoStmt(IndirectGotoStmt *Node) { … }
void StmtPrinter::VisitContinueStmt(ContinueStmt *Node) { … }
void StmtPrinter::VisitBreakStmt(BreakStmt *Node) { … }
void StmtPrinter::VisitReturnStmt(ReturnStmt *Node) { … }
void StmtPrinter::VisitGCCAsmStmt(GCCAsmStmt *Node) { … }
void StmtPrinter::VisitMSAsmStmt(MSAsmStmt *Node) { … }
void StmtPrinter::VisitCapturedStmt(CapturedStmt *Node) { … }
void StmtPrinter::VisitObjCAtTryStmt(ObjCAtTryStmt *Node) { … }
void StmtPrinter::VisitObjCAtFinallyStmt(ObjCAtFinallyStmt *Node) { … }
void StmtPrinter::VisitObjCAtCatchStmt (ObjCAtCatchStmt *Node) { … }
void StmtPrinter::VisitObjCAtThrowStmt(ObjCAtThrowStmt *Node) { … }
void StmtPrinter::VisitObjCAvailabilityCheckExpr(
ObjCAvailabilityCheckExpr *Node) { … }
void StmtPrinter::VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt *Node) { … }
void StmtPrinter::VisitObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *Node) { … }
void StmtPrinter::PrintRawCXXCatchStmt(CXXCatchStmt *Node) { … }
void StmtPrinter::VisitCXXCatchStmt(CXXCatchStmt *Node) { … }
void StmtPrinter::VisitCXXTryStmt(CXXTryStmt *Node) { … }
void StmtPrinter::VisitSEHTryStmt(SEHTryStmt *Node) { … }
void StmtPrinter::PrintRawSEHFinallyStmt(SEHFinallyStmt *Node) { … }
void StmtPrinter::PrintRawSEHExceptHandler(SEHExceptStmt *Node) { … }
void StmtPrinter::VisitSEHExceptStmt(SEHExceptStmt *Node) { … }
void StmtPrinter::VisitSEHFinallyStmt(SEHFinallyStmt *Node) { … }
void StmtPrinter::VisitSEHLeaveStmt(SEHLeaveStmt *Node) { … }
void StmtPrinter::VisitOMPCanonicalLoop(OMPCanonicalLoop *Node) { … }
void StmtPrinter::PrintOMPExecutableDirective(OMPExecutableDirective *S,
bool ForceNoStmt) { … }
void StmtPrinter::VisitOMPMetaDirective(OMPMetaDirective *Node) { … }
void StmtPrinter::VisitOMPParallelDirective(OMPParallelDirective *Node) { … }
void StmtPrinter::VisitOMPSimdDirective(OMPSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTileDirective(OMPTileDirective *Node) { … }
void StmtPrinter::VisitOMPUnrollDirective(OMPUnrollDirective *Node) { … }
void StmtPrinter::VisitOMPReverseDirective(OMPReverseDirective *Node) { … }
void StmtPrinter::VisitOMPInterchangeDirective(OMPInterchangeDirective *Node) { … }
void StmtPrinter::VisitOMPForDirective(OMPForDirective *Node) { … }
void StmtPrinter::VisitOMPForSimdDirective(OMPForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPSectionsDirective(OMPSectionsDirective *Node) { … }
void StmtPrinter::VisitOMPSectionDirective(OMPSectionDirective *Node) { … }
void StmtPrinter::VisitOMPScopeDirective(OMPScopeDirective *Node) { … }
void StmtPrinter::VisitOMPSingleDirective(OMPSingleDirective *Node) { … }
void StmtPrinter::VisitOMPMasterDirective(OMPMasterDirective *Node) { … }
void StmtPrinter::VisitOMPCriticalDirective(OMPCriticalDirective *Node) { … }
void StmtPrinter::VisitOMPParallelForDirective(OMPParallelForDirective *Node) { … }
void StmtPrinter::VisitOMPParallelForSimdDirective(
OMPParallelForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMasterDirective(
OMPParallelMasterDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMaskedDirective(
OMPParallelMaskedDirective *Node) { … }
void StmtPrinter::VisitOMPParallelSectionsDirective(
OMPParallelSectionsDirective *Node) { … }
void StmtPrinter::VisitOMPTaskDirective(OMPTaskDirective *Node) { … }
void StmtPrinter::VisitOMPTaskyieldDirective(OMPTaskyieldDirective *Node) { … }
void StmtPrinter::VisitOMPBarrierDirective(OMPBarrierDirective *Node) { … }
void StmtPrinter::VisitOMPTaskwaitDirective(OMPTaskwaitDirective *Node) { … }
void StmtPrinter::VisitOMPAssumeDirective(OMPAssumeDirective *Node) { … }
void StmtPrinter::VisitOMPErrorDirective(OMPErrorDirective *Node) { … }
void StmtPrinter::VisitOMPTaskgroupDirective(OMPTaskgroupDirective *Node) { … }
void StmtPrinter::VisitOMPFlushDirective(OMPFlushDirective *Node) { … }
void StmtPrinter::VisitOMPDepobjDirective(OMPDepobjDirective *Node) { … }
void StmtPrinter::VisitOMPScanDirective(OMPScanDirective *Node) { … }
void StmtPrinter::VisitOMPOrderedDirective(OMPOrderedDirective *Node) { … }
void StmtPrinter::VisitOMPAtomicDirective(OMPAtomicDirective *Node) { … }
void StmtPrinter::VisitOMPTargetDirective(OMPTargetDirective *Node) { … }
void StmtPrinter::VisitOMPTargetDataDirective(OMPTargetDataDirective *Node) { … }
void StmtPrinter::VisitOMPTargetEnterDataDirective(
OMPTargetEnterDataDirective *Node) { … }
void StmtPrinter::VisitOMPTargetExitDataDirective(
OMPTargetExitDataDirective *Node) { … }
void StmtPrinter::VisitOMPTargetParallelDirective(
OMPTargetParallelDirective *Node) { … }
void StmtPrinter::VisitOMPTargetParallelForDirective(
OMPTargetParallelForDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsDirective(OMPTeamsDirective *Node) { … }
void StmtPrinter::VisitOMPCancellationPointDirective(
OMPCancellationPointDirective *Node) { … }
void StmtPrinter::VisitOMPCancelDirective(OMPCancelDirective *Node) { … }
void StmtPrinter::VisitOMPTaskLoopDirective(OMPTaskLoopDirective *Node) { … }
void StmtPrinter::VisitOMPTaskLoopSimdDirective(
OMPTaskLoopSimdDirective *Node) { … }
void StmtPrinter::VisitOMPMasterTaskLoopDirective(
OMPMasterTaskLoopDirective *Node) { … }
void StmtPrinter::VisitOMPMaskedTaskLoopDirective(
OMPMaskedTaskLoopDirective *Node) { … }
void StmtPrinter::VisitOMPMasterTaskLoopSimdDirective(
OMPMasterTaskLoopSimdDirective *Node) { … }
void StmtPrinter::VisitOMPMaskedTaskLoopSimdDirective(
OMPMaskedTaskLoopSimdDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMasterTaskLoopDirective(
OMPParallelMasterTaskLoopDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMaskedTaskLoopDirective(
OMPParallelMaskedTaskLoopDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMasterTaskLoopSimdDirective(
OMPParallelMasterTaskLoopSimdDirective *Node) { … }
void StmtPrinter::VisitOMPParallelMaskedTaskLoopSimdDirective(
OMPParallelMaskedTaskLoopSimdDirective *Node) { … }
void StmtPrinter::VisitOMPDistributeDirective(OMPDistributeDirective *Node) { … }
void StmtPrinter::VisitOMPTargetUpdateDirective(
OMPTargetUpdateDirective *Node) { … }
void StmtPrinter::VisitOMPDistributeParallelForDirective(
OMPDistributeParallelForDirective *Node) { … }
void StmtPrinter::VisitOMPDistributeParallelForSimdDirective(
OMPDistributeParallelForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPDistributeSimdDirective(
OMPDistributeSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTargetParallelForSimdDirective(
OMPTargetParallelForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTargetSimdDirective(OMPTargetSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsDistributeDirective(
OMPTeamsDistributeDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsDistributeSimdDirective(
OMPTeamsDistributeSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsDistributeParallelForSimdDirective(
OMPTeamsDistributeParallelForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsDistributeParallelForDirective(
OMPTeamsDistributeParallelForDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsDirective(OMPTargetTeamsDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsDistributeDirective(
OMPTargetTeamsDistributeDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsDistributeParallelForDirective(
OMPTargetTeamsDistributeParallelForDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsDistributeParallelForSimdDirective(
OMPTargetTeamsDistributeParallelForSimdDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsDistributeSimdDirective(
OMPTargetTeamsDistributeSimdDirective *Node) { … }
void StmtPrinter::VisitOMPInteropDirective(OMPInteropDirective *Node) { … }
void StmtPrinter::VisitOMPDispatchDirective(OMPDispatchDirective *Node) { … }
void StmtPrinter::VisitOMPMaskedDirective(OMPMaskedDirective *Node) { … }
void StmtPrinter::VisitOMPGenericLoopDirective(OMPGenericLoopDirective *Node) { … }
void StmtPrinter::VisitOMPTeamsGenericLoopDirective(
OMPTeamsGenericLoopDirective *Node) { … }
void StmtPrinter::VisitOMPTargetTeamsGenericLoopDirective(
OMPTargetTeamsGenericLoopDirective *Node) { … }
void StmtPrinter::VisitOMPParallelGenericLoopDirective(
OMPParallelGenericLoopDirective *Node) { … }
void StmtPrinter::VisitOMPTargetParallelGenericLoopDirective(
OMPTargetParallelGenericLoopDirective *Node) { … }
void StmtPrinter::VisitOpenACCComputeConstruct(OpenACCComputeConstruct *S) { … }
void StmtPrinter::VisitOpenACCLoopConstruct(OpenACCLoopConstruct *S) { … }
void StmtPrinter::VisitSourceLocExpr(SourceLocExpr *Node) { … }
void StmtPrinter::VisitEmbedExpr(EmbedExpr *Node) { … }
void StmtPrinter::VisitConstantExpr(ConstantExpr *Node) { … }
void StmtPrinter::VisitDeclRefExpr(DeclRefExpr *Node) { … }
void StmtPrinter::VisitDependentScopeDeclRefExpr(
DependentScopeDeclRefExpr *Node) { … }
void StmtPrinter::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) { … }
static bool isImplicitSelf(const Expr *E) { … }
void StmtPrinter::VisitObjCIvarRefExpr(ObjCIvarRefExpr *Node) { … }
void StmtPrinter::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) { … }
void StmtPrinter::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *Node) { … }
void StmtPrinter::VisitSYCLUniqueStableNameExpr(
SYCLUniqueStableNameExpr *Node) { … }
void StmtPrinter::VisitPredefinedExpr(PredefinedExpr *Node) { … }
void StmtPrinter::VisitCharacterLiteral(CharacterLiteral *Node) { … }
static bool printExprAsWritten(raw_ostream &OS, Expr *E,
const ASTContext *Context) { … }
void StmtPrinter::VisitIntegerLiteral(IntegerLiteral *Node) { … }
void StmtPrinter::VisitFixedPointLiteral(FixedPointLiteral *Node) { … }
static void PrintFloatingLiteral(raw_ostream &OS, FloatingLiteral *Node,
bool PrintSuffix) { … }
void StmtPrinter::VisitFloatingLiteral(FloatingLiteral *Node) { … }
void StmtPrinter::VisitImaginaryLiteral(ImaginaryLiteral *Node) { … }
void StmtPrinter::VisitStringLiteral(StringLiteral *Str) { … }
void StmtPrinter::VisitParenExpr(ParenExpr *Node) { … }
void StmtPrinter::VisitUnaryOperator(UnaryOperator *Node) { … }
void StmtPrinter::VisitOffsetOfExpr(OffsetOfExpr *Node) { … }
void StmtPrinter::VisitUnaryExprOrTypeTraitExpr(
UnaryExprOrTypeTraitExpr *Node) { … }
void StmtPrinter::VisitGenericSelectionExpr(GenericSelectionExpr *Node) { … }
void StmtPrinter::VisitArraySubscriptExpr(ArraySubscriptExpr *Node) { … }
void StmtPrinter::VisitMatrixSubscriptExpr(MatrixSubscriptExpr *Node) { … }
void StmtPrinter::VisitArraySectionExpr(ArraySectionExpr *Node) { … }
void StmtPrinter::VisitOMPArrayShapingExpr(OMPArrayShapingExpr *Node) { … }
void StmtPrinter::VisitOMPIteratorExpr(OMPIteratorExpr *Node) { … }
void StmtPrinter::PrintCallArgs(CallExpr *Call) { … }
void StmtPrinter::VisitCallExpr(CallExpr *Call) { … }
static bool isImplicitThis(const Expr *E) { … }
void StmtPrinter::VisitMemberExpr(MemberExpr *Node) { … }
void StmtPrinter::VisitObjCIsaExpr(ObjCIsaExpr *Node) { … }
void StmtPrinter::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) { … }
void StmtPrinter::VisitCStyleCastExpr(CStyleCastExpr *Node) { … }
void StmtPrinter::VisitCompoundLiteralExpr(CompoundLiteralExpr *Node) { … }
void StmtPrinter::VisitImplicitCastExpr(ImplicitCastExpr *Node) { … }
void StmtPrinter::VisitBinaryOperator(BinaryOperator *Node) { … }
void StmtPrinter::VisitCompoundAssignOperator(CompoundAssignOperator *Node) { … }
void StmtPrinter::VisitConditionalOperator(ConditionalOperator *Node) { … }
void
StmtPrinter::VisitBinaryConditionalOperator(BinaryConditionalOperator *Node) { … }
void StmtPrinter::VisitAddrLabelExpr(AddrLabelExpr *Node) { … }
void StmtPrinter::VisitStmtExpr(StmtExpr *E) { … }
void StmtPrinter::VisitChooseExpr(ChooseExpr *Node) { … }
void StmtPrinter::VisitGNUNullExpr(GNUNullExpr *) { … }
void StmtPrinter::VisitShuffleVectorExpr(ShuffleVectorExpr *Node) { … }
void StmtPrinter::VisitConvertVectorExpr(ConvertVectorExpr *Node) { … }
void StmtPrinter::VisitInitListExpr(InitListExpr* Node) { … }
void StmtPrinter::VisitArrayInitLoopExpr(ArrayInitLoopExpr *Node) { … }
void StmtPrinter::VisitArrayInitIndexExpr(ArrayInitIndexExpr *Node) { … }
void StmtPrinter::VisitParenListExpr(ParenListExpr* Node) { … }
void StmtPrinter::VisitDesignatedInitExpr(DesignatedInitExpr *Node) { … }
void StmtPrinter::VisitDesignatedInitUpdateExpr(
DesignatedInitUpdateExpr *Node) { … }
void StmtPrinter::VisitNoInitExpr(NoInitExpr *Node) { … }
void StmtPrinter::VisitImplicitValueInitExpr(ImplicitValueInitExpr *Node) { … }
void StmtPrinter::VisitVAArgExpr(VAArgExpr *Node) { … }
void StmtPrinter::VisitPseudoObjectExpr(PseudoObjectExpr *Node) { … }
void StmtPrinter::VisitAtomicExpr(AtomicExpr *Node) { … }
void StmtPrinter::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *Node) { … }
void StmtPrinter::VisitCXXMemberCallExpr(CXXMemberCallExpr *Node) { … }
void StmtPrinter::VisitCUDAKernelCallExpr(CUDAKernelCallExpr *Node) { … }
void StmtPrinter::VisitCXXRewrittenBinaryOperator(
CXXRewrittenBinaryOperator *Node) { … }
void StmtPrinter::VisitCXXNamedCastExpr(CXXNamedCastExpr *Node) { … }
void StmtPrinter::VisitCXXStaticCastExpr(CXXStaticCastExpr *Node) { … }
void StmtPrinter::VisitCXXDynamicCastExpr(CXXDynamicCastExpr *Node) { … }
void StmtPrinter::VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *Node) { … }
void StmtPrinter::VisitCXXConstCastExpr(CXXConstCastExpr *Node) { … }
void StmtPrinter::VisitBuiltinBitCastExpr(BuiltinBitCastExpr *Node) { … }
void StmtPrinter::VisitCXXAddrspaceCastExpr(CXXAddrspaceCastExpr *Node) { … }
void StmtPrinter::VisitCXXTypeidExpr(CXXTypeidExpr *Node) { … }
void StmtPrinter::VisitCXXUuidofExpr(CXXUuidofExpr *Node) { … }
void StmtPrinter::VisitMSPropertyRefExpr(MSPropertyRefExpr *Node) { … }
void StmtPrinter::VisitMSPropertySubscriptExpr(MSPropertySubscriptExpr *Node) { … }
void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) { … }
void StmtPrinter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node) { … }
void StmtPrinter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *Node) { … }
void StmtPrinter::VisitCXXThisExpr(CXXThisExpr *Node) { … }
void StmtPrinter::VisitCXXThrowExpr(CXXThrowExpr *Node) { … }
void StmtPrinter::VisitCXXDefaultArgExpr(CXXDefaultArgExpr *Node) { … }
void StmtPrinter::VisitCXXDefaultInitExpr(CXXDefaultInitExpr *Node) { … }
void StmtPrinter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) { … }
void StmtPrinter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) { … }
void StmtPrinter::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *Node) { … }
void StmtPrinter::VisitLambdaExpr(LambdaExpr *Node) { … }
void StmtPrinter::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *Node) { … }
void StmtPrinter::VisitCXXNewExpr(CXXNewExpr *E) { … }
void StmtPrinter::VisitCXXDeleteExpr(CXXDeleteExpr *E) { … }
void StmtPrinter::VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E) { … }
void StmtPrinter::VisitCXXConstructExpr(CXXConstructExpr *E) { … }
void StmtPrinter::VisitCXXInheritedCtorInitExpr(CXXInheritedCtorInitExpr *E) { … }
void StmtPrinter::VisitCXXStdInitializerListExpr(CXXStdInitializerListExpr *E) { … }
void StmtPrinter::VisitExprWithCleanups(ExprWithCleanups *E) { … }
void StmtPrinter::VisitCXXUnresolvedConstructExpr(
CXXUnresolvedConstructExpr *Node) { … }
void StmtPrinter::VisitCXXDependentScopeMemberExpr(
CXXDependentScopeMemberExpr *Node) { … }
void StmtPrinter::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *Node) { … }
void StmtPrinter::VisitTypeTraitExpr(TypeTraitExpr *E) { … }
void StmtPrinter::VisitArrayTypeTraitExpr(ArrayTypeTraitExpr *E) { … }
void StmtPrinter::VisitExpressionTraitExpr(ExpressionTraitExpr *E) { … }
void StmtPrinter::VisitCXXNoexceptExpr(CXXNoexceptExpr *E) { … }
void StmtPrinter::VisitPackExpansionExpr(PackExpansionExpr *E) { … }
void StmtPrinter::VisitSizeOfPackExpr(SizeOfPackExpr *E) { … }
void StmtPrinter::VisitPackIndexingExpr(PackIndexingExpr *E) { … }
void StmtPrinter::VisitSubstNonTypeTemplateParmPackExpr(
SubstNonTypeTemplateParmPackExpr *Node) { … }
void StmtPrinter::VisitSubstNonTypeTemplateParmExpr(
SubstNonTypeTemplateParmExpr *Node) { … }
void StmtPrinter::VisitFunctionParmPackExpr(FunctionParmPackExpr *E) { … }
void StmtPrinter::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *Node){ … }
void StmtPrinter::VisitCXXFoldExpr(CXXFoldExpr *E) { … }
void StmtPrinter::VisitCXXParenListInitExpr(CXXParenListInitExpr *Node) { … }
void StmtPrinter::VisitConceptSpecializationExpr(ConceptSpecializationExpr *E) { … }
void StmtPrinter::VisitRequiresExpr(RequiresExpr *E) { … }
void StmtPrinter::VisitCoroutineBodyStmt(CoroutineBodyStmt *S) { … }
void StmtPrinter::VisitCoreturnStmt(CoreturnStmt *S) { … }
void StmtPrinter::VisitCoawaitExpr(CoawaitExpr *S) { … }
void StmtPrinter::VisitDependentCoawaitExpr(DependentCoawaitExpr *S) { … }
void StmtPrinter::VisitCoyieldExpr(CoyieldExpr *S) { … }
void StmtPrinter::VisitObjCStringLiteral(ObjCStringLiteral *Node) { … }
void StmtPrinter::VisitObjCBoxedExpr(ObjCBoxedExpr *E) { … }
void StmtPrinter::VisitObjCArrayLiteral(ObjCArrayLiteral *E) { … }
void StmtPrinter::VisitObjCDictionaryLiteral(ObjCDictionaryLiteral *E) { … }
void StmtPrinter::VisitObjCEncodeExpr(ObjCEncodeExpr *Node) { … }
void StmtPrinter::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) { … }
void StmtPrinter::VisitObjCProtocolExpr(ObjCProtocolExpr *Node) { … }
void StmtPrinter::VisitObjCMessageExpr(ObjCMessageExpr *Mess) { … }
void StmtPrinter::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Node) { … }
void
StmtPrinter::VisitObjCIndirectCopyRestoreExpr(ObjCIndirectCopyRestoreExpr *E) { … }
void
StmtPrinter::VisitObjCBridgedCastExpr(ObjCBridgedCastExpr *E) { … }
void StmtPrinter::VisitBlockExpr(BlockExpr *Node) { … }
void StmtPrinter::VisitOpaqueValueExpr(OpaqueValueExpr *Node) { … }
void StmtPrinter::VisitTypoExpr(TypoExpr *Node) { … }
void StmtPrinter::VisitRecoveryExpr(RecoveryExpr *Node) { … }
void StmtPrinter::VisitAsTypeExpr(AsTypeExpr *Node) { … }
void StmtPrinter::VisitHLSLOutArgExpr(HLSLOutArgExpr *Node) { … }
void Stmt::dumpPretty(const ASTContext &Context) const { … }
void Stmt::printPretty(raw_ostream &Out, PrinterHelper *Helper,
const PrintingPolicy &Policy, unsigned Indentation,
StringRef NL, const ASTContext *Context) const { … }
void Stmt::printPrettyControlled(raw_ostream &Out, PrinterHelper *Helper,
const PrintingPolicy &Policy,
unsigned Indentation, StringRef NL,
const ASTContext *Context) const { … }
void Stmt::printJson(raw_ostream &Out, PrinterHelper *Helper,
const PrintingPolicy &Policy, bool AddQuotes) const { … }
PrinterHelper::~PrinterHelper() = default;