Class ClangToSageTranslator

Contents

Class ClangToSageTranslator#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Type#

  • public clang::ASTConsumer

Class Documentation#

class ClangToSageTranslator : public clang::ASTConsumer#

Translator from Clang AST to SAGE III (ROSE Compiler AST)

Public Types

enum Language#

the 5 C-family languages supported by Clang

Values:

enumerator C#
enumerator CPLUSPLUS#
enumerator OBJC#
enumerator CUDA#
enumerator OPENCL#
enumerator unknown#

Public Functions

void applySourceRange(SgNode *node, clang::SourceRange source_range)#

Update a Sage node source position using Clang information.

Parameters:
  • node – Sage node to update

  • source_range – Clang’s source position information

void setCompilerGeneratedFileInfo(SgNode *node, bool to_be_unparse = false)#

Set a Sage node source position to compiler generated.

Parameters:
  • node – Sage node to update

  • to_be_unparse – should this compiler generated node be unparse?

ClangToSageTranslator(clang::CompilerInstance *compiler_instance, Language language_, SgSourceFile *sage_source_file)#
virtual ~ClangToSageTranslator()#
SgGlobal *getGlobalScope()#
inline void setOpenMPPragmaCallback(const RoseOpenMPPragmaCallback *callback)#
virtual void HandleTranslationUnit(clang::ASTContext &ast_context)#
virtual SgNode *Traverse(clang::Decl *decl)#
virtual SgNode *Traverse(clang::Stmt *stmt)#
virtual SgNode *Traverse(const clang::Type *type)#
virtual SgNode *TraverseForDeclContext(clang::DeclContext *decl_context)#
virtual bool VisitDecl(clang::Decl *decl, SgNode **node)#
virtual bool VisitAccessSpecDecl(clang::AccessSpecDecl *access_spec_decl, SgNode **node)#
virtual bool VisitBlockDecl(clang::BlockDecl *block_decl, SgNode **node)#
virtual bool VisitCapturedDecl(clang::CapturedDecl *capture_decl, SgNode **node)#
virtual bool VisitEmptyDecl(clang::EmptyDecl *empty_decl, SgNode **node)#
virtual bool VisitExportDecl(clang::ExportDecl *export_decl, SgNode **node)#
virtual bool VisitExternCContextDecl(clang::ExternCContextDecl *ccontext_decl, SgNode **node)#
virtual bool VisitFileScopeAsmDecl(clang::FileScopeAsmDecl *file_scope_asm_decl, SgNode **node)#
virtual bool VisitFriendDecl(clang::FriendDecl *friend_decl, SgNode **node)#
virtual bool VisitFriendTemplateDecl(clang::FriendTemplateDecl *friend_template_decl, SgNode **node)#
virtual bool VisitImportDecl(clang::ImportDecl *import_decl, SgNode **node)#
virtual bool VisitNamedDecl(clang::NamedDecl *named_decl, SgNode **node)#
virtual bool VisitLabelDecl(clang::LabelDecl *label_decl, SgNode **node)#
virtual bool VisitNamespaceAliasDecl(clang::NamespaceAliasDecl *namespace_alias_decl, SgNode **node)#
virtual bool VisitNamespaceDecl(clang::NamespaceDecl *namespace_decl, SgNode **node)#
virtual bool VisitLinkageSpecDecl(clang::LinkageSpecDecl *linkage_spec_decl, SgNode **node)#
virtual bool VisitTemplateDecl(clang::TemplateDecl *template_decl, SgNode **node)#
virtual bool VisitBuiltinTemplateDecl(clang::BuiltinTemplateDecl *builtin_template_decl, SgNode **node)#
virtual bool VisitConceptDecl(clang::ConceptDecl *concept_decl, SgNode **node)#
virtual bool VisitRedeclarableTemplateDecl(clang::RedeclarableTemplateDecl *redeclarable_template_decl, SgNode **node)#
virtual bool VisitClassTemplateDecl(clang::ClassTemplateDecl *class_template_decl, SgNode **node)#
virtual bool VisitFunctionTemplateDecl(clang::FunctionTemplateDecl *function_template_decl, SgNode **node)#
virtual bool VisitTypeAliasTemplateDecl(clang::TypeAliasTemplateDecl *type_alias_template_decl, SgNode **node)#
virtual bool VisitVarTemplateDecl(clang::VarTemplateDecl *var_template_decl, SgNode **node)#
virtual bool VisitTemplateTemplateParmDecl(clang::TemplateTemplateParmDecl *template_template_parm_decl, SgNode **node)#
virtual bool VisitTypeDecl(clang::TypeDecl *type_decl, SgNode **node)#
virtual bool VisitTagDecl(clang::TagDecl *tag_decl, SgNode **node)#
virtual bool VisitRecordDecl(clang::RecordDecl *record_decl, SgNode **node)#
virtual bool VisitCXXRecordDecl(clang::CXXRecordDecl *cxx_record_decl, SgNode **node)#
virtual bool VisitClassTemplateSpecializationDecl(clang::ClassTemplateSpecializationDecl *class_tpl_spec_decl, SgNode **node)#
virtual bool VisitClassTemplatePartialSpecializationDecl(clang::ClassTemplatePartialSpecializationDecl *class_tpl_part_spec_decl, SgNode **node)#
virtual bool VisitEnumDecl(clang::EnumDecl *enum_decl, SgNode **node)#
virtual bool VisitTemplateTypeParmDecl(clang::TemplateTypeParmDecl *template_type_parm_decl, SgNode **node)#
virtual bool VisitTypedefNameDecl(clang::TypedefNameDecl *typedef_name_decl, SgNode **node)#
virtual bool VisitTypedefDecl(clang::TypedefDecl *typedef_decl, SgNode **node)#
virtual bool VisitTypeAliasDecl(clang::TypeAliasDecl *type_alias_decl, SgNode **node)#
virtual bool VisitUnresolvedUsingTypenameDecl(clang::UnresolvedUsingTypenameDecl *unresolved_using_type_name_decl, SgNode **node)#
virtual bool VisitUsingDecl(clang::UsingDecl *using_decl, SgNode **node)#
virtual bool VisitUsingDirectiveDecl(clang::UsingDirectiveDecl *using_directive_decl, SgNode **node)#
virtual bool VisitUsingPackDecl(clang::UsingPackDecl *using_pack_decl, SgNode **node)#
virtual bool VisitUsingShadowDecl(clang::UsingShadowDecl *using_shadow_decl, SgNode **node)#
virtual bool VisitConstructorUsingShadowDecl(clang::ConstructorUsingShadowDecl *constructor_using_shadow_decl, SgNode **node)#
virtual bool VisitValueDecl(clang::ValueDecl *value_decl, SgNode **node)#
virtual bool VisitBindingDecl(clang::BindingDecl *binding_decl, SgNode **node)#
virtual bool VisitDeclaratorDecl(clang::DeclaratorDecl *declarator_decl, SgNode **node)#
virtual bool VisitFieldDecl(clang::FieldDecl *field_decl, SgNode **node)#
virtual bool VisitFunctionDecl(clang::FunctionDecl *function_decl, SgNode **node)#
virtual bool VisitCXXDeductionGuideDecl(clang::CXXDeductionGuideDecl *cxx_deduction_guide_guide, SgNode **node)#
virtual bool VisitCXXMethodDecl(clang::CXXMethodDecl *cxx_method_decl, SgNode **node)#
virtual bool VisitCXXConstructorDecl(clang::CXXConstructorDecl *cxx_constructor_decl, SgNode **node)#
virtual bool VisitCXXConversionDecl(clang::CXXConversionDecl *cxx_conversion_decl, SgNode **node)#
virtual bool VisitCXXDestructorDecl(clang::CXXDestructorDecl *cxx_destructor_decl, SgNode **node)#
virtual bool VisitMSPropertyDecl(clang::MSPropertyDecl *ms_property_decl, SgNode **node)#
virtual bool VisitNonTypeTemplateParmDecl(clang::NonTypeTemplateParmDecl *non_type_template_param_decl, SgNode **node)#
virtual bool VisitVarDecl(clang::VarDecl *var_decl, SgNode **node)#
virtual bool VisitDecompositionDecl(clang::DecompositionDecl *decomposition_decl, SgNode **node)#
virtual bool VisitImplicitParamDecl(clang::ImplicitParamDecl *implicit_param_decl, SgNode **node)#
virtual bool VisitOMPCaptureExprDecl(clang::OMPCapturedExprDecl *omp_capture_expr_decl, SgNode **node)#
virtual bool VisitParmVarDecl(clang::ParmVarDecl *param_var_decl, SgNode **node)#
virtual bool VisitVarTemplateSpecializationDecl(clang::VarTemplateSpecializationDecl *var_template_specialization_decl, SgNode **node)#
virtual bool VisitVarTemplatePartialSpecializationDecl(clang::VarTemplatePartialSpecializationDecl *var_template_partial_specialization, SgNode **node)#
virtual bool VisitEnumConstantDecl(clang::EnumConstantDecl *enum_constant_decl, SgNode **node)#
virtual bool VisitIndirectFieldDecl(clang::IndirectFieldDecl *indirect_field_decl, SgNode **node)#
virtual bool VisitOMPDeclareMapperDecl(clang::OMPDeclareMapperDecl *omp_declare_mapper_decl, SgNode **node)#
virtual bool VisitOMPDeclareReductionDecl(clang::OMPDeclareReductionDecl *omp_declare_reduction_decl, SgNode **node)#
virtual bool VisitUnresolvedUsingValueDecl(clang::UnresolvedUsingValueDecl *unresolved_using_value_decl, SgNode **node)#
virtual bool VisitOMPAllocateDecl(clang::OMPAllocateDecl *omp_allocate_decl, SgNode **node)#
virtual bool VisitOMPRequiresDecl(clang::OMPRequiresDecl *omp_requires_decl, SgNode **node)#
virtual bool VisitOMPThreadPrivateDecl(clang::OMPThreadPrivateDecl *omp_thread_private_decl, SgNode **node)#
virtual bool VisitPragmaCommentDecl(clang::PragmaCommentDecl *pragma_comment_decl, SgNode **node)#
virtual bool VisitPragmaDetectMismatchDecl(clang::PragmaDetectMismatchDecl *pragma_detect_mismatch, SgNode **node)#
virtual bool VisitStaticAssertDecl(clang::StaticAssertDecl *static_assert_decl, SgNode **node)#
virtual bool VisitTranslationUnitDecl(clang::TranslationUnitDecl *translation_unit_decl, SgNode **node)#
virtual bool VisitStmt(clang::Stmt *stmt, SgNode **node)#
virtual bool VisitAsmStmt(clang::AsmStmt *asm_stmt, SgNode **node)#
virtual bool VisitGCCAsmStmt(clang::GCCAsmStmt *gcc_asm_stmt, SgNode **node)#
virtual bool VisitMSAsmStmt(clang::MSAsmStmt *ms_asm_stmt, SgNode **node)#
virtual bool VisitBreakStmt(clang::BreakStmt *break_stmt, SgNode **node)#
virtual bool VisitCapturedStmt(clang::CapturedStmt *captured_stmt, SgNode **node)#
virtual bool VisitCompoundStmt(clang::CompoundStmt *compound_stmt, SgNode **node)#
virtual bool VisitContinueStmt(clang::ContinueStmt *continue_stmt, SgNode **node)#
virtual bool VisitCoreturnStmt(clang::CoreturnStmt *coreturn_stmt, SgNode **node)#
virtual bool VisitCoroutineBodyStmt(clang::CoroutineBodyStmt *coroutine_body_stmt, SgNode **node)#
virtual bool VisitCXXCatchStmt(clang::CXXCatchStmt *cxx_catch_stmt, SgNode **node)#
virtual bool VisitCXXForRangeStmt(clang::CXXForRangeStmt *cxx_for_range_stmt, SgNode **node)#
virtual bool VisitCXXTryStmt(clang::CXXTryStmt *cxx_try_stmt, SgNode **node)#
virtual bool VisitDeclStmt(clang::DeclStmt *decl_stmt, SgNode **node)#
virtual bool VisitDoStmt(clang::DoStmt *do_stmt, SgNode **node)#
virtual bool VisitForStmt(clang::ForStmt *for_stmt, SgNode **node)#
virtual bool VisitGotoStmt(clang::GotoStmt *goto_stmt, SgNode **node)#
virtual bool VisitIfStmt(clang::IfStmt *if_stmt, SgNode **node)#
virtual bool VisitIndirectGotoStmt(clang::IndirectGotoStmt *indirect_goto_stmt, SgNode **node)#
virtual bool VisitMSDependentExistsStmt(clang::MSDependentExistsStmt *ms_dependent_exists_stmt, SgNode **node)#
virtual bool VisitNullStmt(clang::NullStmt *null_stmt, SgNode **node)#
virtual bool VisitOMPExecutableDirective(clang::OMPExecutableDirective *omp_executable_directive, SgNode **node)#
virtual bool VisitOMPAtomicDirective(clang::OMPAtomicDirective *omp_atomic_directive, SgNode **node)#
virtual bool VisitOMPBarrierDirective(clang::OMPBarrierDirective *omp_barrier_directive, SgNode **node)#
virtual bool VisitOMPCancelDirective(clang::OMPCancelDirective *omp_cancel_directive, SgNode **node)#
virtual bool VisitOMPCancellationPointDirective(clang::OMPCancellationPointDirective *omp_cancellation_point_directive, SgNode **node)#
virtual bool VisitOMPCriticalDirective(clang::OMPCriticalDirective *omp_critical_directive, SgNode **node)#
virtual bool VisitOMPFlushDirective(clang::OMPFlushDirective *omp_flush_directive, SgNode **node)#
virtual bool VisitOMPLoopDirective(clang::OMPLoopDirective *omp_loop_directive, SgNode **node)#
virtual bool VisitOMPDistributeDirective(clang::OMPDistributeDirective *omp_distribute_directive, SgNode **node)#
virtual bool VisitOMPDistributeParallelForDirective(clang::OMPDistributeParallelForDirective *omp_distribute_parallel_for_directive, SgNode **node)#
virtual bool VisitOMPDistributeParallelForSimdDirective(clang::OMPDistributeParallelForSimdDirective *omp_distribute_parallel_for_simd_directive, SgNode **node)#
virtual bool VisitOMPDistributeSimdDirective(clang::OMPDistributeSimdDirective *omp_distribute__simd_directive, SgNode **node)#
virtual bool VisitOMPForDirective(clang::OMPForDirective *omp_for_directive, SgNode **node)#
virtual bool VisitOMPForSimdDirective(clang::OMPForSimdDirective *omp_for_simd_directive, SgNode **node)#
virtual bool VisitOMPParallelForDirective(clang::OMPParallelForDirective *omp_parallel_for_directive, SgNode **node)#
virtual bool VisitOMPParallelForSimdDirective(clang::OMPParallelForSimdDirective *omp_parallel_for_simd_directive, SgNode **node)#
virtual bool VisitOMPSimdDirective(clang::OMPSimdDirective *omp_simd_directive, SgNode **node)#
virtual bool VisitOMPTargetParallelForDirective(clang::OMPTargetParallelForDirective *omp_target_parallel_for_directive, SgNode **node)#
virtual bool VisitOMPTargetParallelForSimdDirective(clang::OMPTargetParallelForSimdDirective *omp_target_parallel_for_simd_directive, SgNode **node)#
virtual bool VisitOMPTargetSimdDirective(clang::OMPTargetSimdDirective *omp_target_simd_directive, SgNode **node)#
virtual bool VisitOMPTargetTeamsDistributeDirective(clang::OMPTargetTeamsDistributeDirective *omp_target_teams_distribute_directive, SgNode **node)#
virtual bool VisitOMPTargetTeamsDistributeSimdDirective(clang::OMPTargetTeamsDistributeSimdDirective *omp_target_teams_distribute_simd_directive, SgNode **node)#
virtual bool VisitOMPTaskLoopDirective(clang::OMPTaskLoopDirective *omp_task_loop_directive, SgNode **node)#
virtual bool VisitOMPTaskLoopSimdDirective(clang::OMPTaskLoopSimdDirective *omp_task_loop_simd_directive, SgNode **node)#
virtual bool VisitOMPMasterDirective(clang::OMPMasterDirective *omp_master_directive, SgNode **node)#
virtual bool VisitOMPOrderedDirective(clang::OMPOrderedDirective *omp_ordered_directive, SgNode **node)#
virtual bool VisitOMPParallelDirective(clang::OMPParallelDirective *omp_parallel_directive, SgNode **node)#
virtual bool VisitOMPParallelSectionsDirective(clang::OMPParallelSectionsDirective *omp_parallel_sections_directive, SgNode **node)#
virtual bool VisitReturnStmt(clang::ReturnStmt *return_stmt, SgNode **node)#
virtual bool VisitSEHExceptStmt(clang::SEHExceptStmt *seh_except_stmt, SgNode **node)#
virtual bool VisitSEHFinallyStmt(clang::SEHFinallyStmt *seh_finally_stmt, SgNode **node)#
virtual bool VisitSEHLeaveStmt(clang::SEHLeaveStmt *seh_leave_stmt, SgNode **node)#
virtual bool VisitSEHTryStmt(clang::SEHTryStmt *seh_try_stmt, SgNode **node)#
virtual bool VisitSwitchCase(clang::SwitchCase *switch_case, SgNode **node)#
virtual bool VisitCaseStmt(clang::CaseStmt *case_stmt, SgNode **node)#
virtual bool VisitDefaultStmt(clang::DefaultStmt *default_stmt, SgNode **node)#
virtual bool VisitSwitchStmt(clang::SwitchStmt *switch_stmt, SgNode **node)#
virtual bool VisitValueStmt(clang::ValueStmt *value_stmt, SgNode **node)#
virtual bool VisitAttributedStmt(clang::AttributedStmt *attributed_stmt, SgNode **node)#
virtual bool VisitExpr(clang::Expr *expr, SgNode **node)#
virtual bool VisitAbstractConditionalOperator(clang::AbstractConditionalOperator *abstract_conditional_operator, SgNode **node)#
virtual bool VisitBinaryConditionalOperator(clang::BinaryConditionalOperator *binary_conditional_operator, SgNode **node)#
virtual bool VisitConditionalOperator(clang::ConditionalOperator *conditional_operator, SgNode **node)#
virtual bool VisitAddrLabelExpr(clang::AddrLabelExpr *addr_label_expr, SgNode **node)#
virtual bool VisitArrayInitIndexExpr(clang::ArrayInitIndexExpr *array_init_index_expr, SgNode **node)#
virtual bool VisitArrayInitLoopExpr(clang::ArrayInitLoopExpr *array_init_loop_expr, SgNode **node)#
virtual bool VisitArraySubscriptExpr(clang::ArraySubscriptExpr *array_subscript_expr, SgNode **node)#
virtual bool VisitArrayTypeTraitExpr(clang::ArrayTypeTraitExpr *array_type_trait_expr, SgNode **node)#
virtual bool VisitAsTypeExpr(clang::AsTypeExpr *as_type_expr, SgNode **node)#
virtual bool VisitAtomicExpr(clang::AtomicExpr *atomic_expr, SgNode **node)#
virtual bool VisitBinaryOperator(clang::BinaryOperator *binary_operator, SgNode **node)#
virtual bool VisitCompoundAssignOperator(clang::CompoundAssignOperator *compound_assign_operator, SgNode **node)#
virtual bool VisitBlockExpr(clang::BlockExpr *block_expr, SgNode **node)#
virtual bool VisitCallExpr(clang::CallExpr *call_expr, SgNode **node)#
virtual bool VisitCUDAKernelCallExpr(clang::CUDAKernelCallExpr *cuda_kernel_call_expr, SgNode **node)#
virtual bool VisitCXXMemberCallExpr(clang::CXXMemberCallExpr *cxx_member_call_expr, SgNode **node)#
virtual bool VisitCXXOperatorCallExpr(clang::CXXOperatorCallExpr *cxx_operator_call_expr, SgNode **node)#
virtual bool VisitUserDefinedLiteral(clang::UserDefinedLiteral *user_defined_literal, SgNode **node)#
virtual bool VisitCastExpr(clang::CastExpr *cast_expr, SgNode **node)#
virtual bool VisitExplicitCastExpr(clang::ExplicitCastExpr *explicit_cast_expr, SgNode **node)#
virtual bool VisitBuiltinBitCastExpr(clang::BuiltinBitCastExpr *builtin_bit_cast_expr, SgNode **node)#
virtual bool VisitCStyleCastExpr(clang::CStyleCastExpr *c_style_cast, SgNode **node)#
virtual bool VisitCXXFunctionalCastExpr(clang::CXXFunctionalCastExpr *cxx_functional_cast_expr, SgNode **node)#
virtual bool VisitCXXNamedCastExpr(clang::CXXNamedCastExpr *cxx_named_cast_expr, SgNode **node)#
virtual bool VisitCXXConstCastExpr(clang::CXXConstCastExpr *cxx_const_cast_expr, SgNode **node)#
virtual bool VisitCXXDynamicCastExpr(clang::CXXDynamicCastExpr *cxx_dynamic_cast_expr, SgNode **node)#
virtual bool VisitCXXReinterpretCastExpr(clang::CXXReinterpretCastExpr *cxx_reinterpret_cast_expr, SgNode **node)#
virtual bool VisitCXXStaticCastExpr(clang::CXXStaticCastExpr *cxx_static_cast_expr, SgNode **node)#
virtual bool VisitImplicitCastExpr(clang::ImplicitCastExpr *implicit_cast_expr, SgNode **node)#
virtual bool VisitCharacterLiteral(clang::CharacterLiteral *character_literal, SgNode **node)#
virtual bool VisitChooseExpr(clang::ChooseExpr *choose_expr, SgNode **node)#
virtual bool VisitCompoundLiteralExpr(clang::CompoundLiteralExpr *compound_literal, SgNode **node)#
virtual bool VisitConvertVectorExpr(clang::ConvertVectorExpr *convert_vector_expr, SgNode **node)#
virtual bool VisitCoroutineSuspendExpr(clang::CoroutineSuspendExpr *coroutine_suspend_expr, SgNode **node)#
virtual bool VisitCoawaitExpr(clang::CoawaitExpr *coawait_expr, SgNode **node)#
virtual bool VisitCoyieldExpr(clang::CoyieldExpr *coyield_expr, SgNode **node)#
virtual bool VisitCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr *cxx_bind_temporary_expr, SgNode **node)#
virtual bool VisitCXXBoolLiteralExpr(clang::CXXBoolLiteralExpr *cxx_bool_literal_expr, SgNode **node)#
virtual bool VisitCXXConstructExpr(clang::CXXConstructExpr *cxx_construct_expr, SgNode **node)#
virtual bool VisitCXXTemporaryObjectExpr(clang::CXXTemporaryObjectExpr *cxx_temporary_object_expr, SgNode **node)#
virtual bool VisitCXXDefaultArgExpr(clang::CXXDefaultArgExpr *cxx_default_arg_expr, SgNode **node)#
virtual bool VisitCXXDefaultInitExpr(clang::CXXDefaultInitExpr *cxx_default_init_expr, SgNode **node)#
virtual bool VisitCXXDeleteExpr(clang::CXXDeleteExpr *cxx_delete_expr, SgNode **node)#
virtual bool VisitCXXDependentScopeMemberExpr(clang::CXXDependentScopeMemberExpr *cxx_dependent_scope_member_expr, SgNode **node)#
virtual bool VisitCXXFoldExpr(clang::CXXFoldExpr *cxx_fold_expr, SgNode **node)#
virtual bool VisitCXXInheritedCtorInitExpr(clang::CXXInheritedCtorInitExpr *cxx_inherited_ctor_init_expr, SgNode **node)#
virtual bool VisitCXXNewExpr(clang::CXXNewExpr *cxx_new_expr, SgNode **node)#
virtual bool VisitCXXNoexceptExpr(clang::CXXNoexceptExpr *cxx_noexcept_expr, SgNode **node)#
virtual bool VisitCXXNullPtrLiteralExpr(clang::CXXNullPtrLiteralExpr *cxx_null_ptr_literal_expr, SgNode **node)#
virtual bool VisitCXXPseudoDestructorExpr(clang::CXXPseudoDestructorExpr *cxx_pseudo_destructor_expr, SgNode **node)#
virtual bool VisitCXXScalarValueInitExpr(clang::CXXScalarValueInitExpr *cxx_scalar_value_init_expr, SgNode **node)#
virtual bool VisitCXXStdInitializerListExpr(clang::CXXStdInitializerListExpr *cxx_std_initializer_list_expr, SgNode **node)#
virtual bool VisitCXXThisExpr(clang::CXXThisExpr *cxx_this_expr, SgNode **node)#
virtual bool VisitCXXThrowExpr(clang::CXXThrowExpr *cxx_throw_expr, SgNode **node)#
virtual bool VisitCXXTypeidExpr(clang::CXXTypeidExpr *cxx_typeid_expr, SgNode **node)#
virtual bool VisitCXXUnresolvedConstructExpr(clang::CXXUnresolvedConstructExpr *cxx_unresolved_construct_expr, SgNode **node)#
virtual bool VisitCXXUuidofExpr(clang::CXXUuidofExpr *cxx_uuidof_expr, SgNode **node)#
virtual bool VisitDeclRefExpr(clang::DeclRefExpr *decl_ref_expr, SgNode **node)#
virtual bool VisitDependentCoawaitExpr(clang::DependentCoawaitExpr *dependent_coawait_expr, SgNode **node)#
virtual bool VisitDependentScopeDeclRefExpr(clang::DependentScopeDeclRefExpr *dependent_scope_decl_ref_expr, SgNode **node)#
virtual bool VisitDesignatedInitExpr(clang::DesignatedInitExpr *designated_init_expr, SgNode **node)#
virtual bool VisitDesignatedInitUpdateExpr(clang::DesignatedInitUpdateExpr *designated_init_update_expr, SgNode **node)#
virtual bool VisitExpressionTraitExpr(clang::ExpressionTraitExpr *expression_trait_expr, SgNode **node)#
virtual bool VisitExtVectorElementExpr(clang::ExtVectorElementExpr *ext_vector_element_expr, SgNode **node)#
virtual bool VisitFixedPointLiteral(clang::FixedPointLiteral *fixed_point_literal, SgNode **node)#
virtual bool VisitFloatingLiteral(clang::FloatingLiteral *floating_literal, SgNode **node)#
virtual bool VisitFullExpr(clang::FullExpr *full_expr, SgNode **node)#
virtual bool VisitConstantExpr(clang::ConstantExpr *constant_expr, SgNode **node)#
virtual bool VisitExprWithCleanups(clang::ExprWithCleanups *expr_with_cleanups, SgNode **node)#
virtual bool VisitFunctionParmPackExpr(clang::FunctionParmPackExpr *function_parm_pack_expr, SgNode **node)#
virtual bool VisitGenericSelectionExpr(clang::GenericSelectionExpr *generic_selection_expr, SgNode **node)#
virtual bool VisitGNUNullExpr(clang::GNUNullExpr *gnu_null_expr, SgNode **node)#
virtual bool VisitImaginaryLiteral(clang::ImaginaryLiteral *imaginary_literal, SgNode **node)#
virtual bool VisitImplicitValueInitExpr(clang::ImplicitValueInitExpr *implicit_value_init_expr, SgNode **node)#
virtual bool VisitInitListExpr(clang::InitListExpr *init_list_expr, SgNode **node)#
virtual bool VisitIntegerLiteral(clang::IntegerLiteral *integer_literal, SgNode **node)#
virtual bool VisitLambdaExpr(clang::LambdaExpr *lambda_expr, SgNode **node)#
virtual bool VisitMaterializeTemporaryExpr(clang::MaterializeTemporaryExpr *materialize_temporary_expr, SgNode **node)#
virtual bool VisitMemberExpr(clang::MemberExpr *member_expr, SgNode **node)#
virtual bool VisitMSPropertyRefExpr(clang::MSPropertyRefExpr *ms_property_expr, SgNode **node)#
virtual bool VisitMSPropertySubscriptExpr(clang::MSPropertySubscriptExpr *ms_property_subscript_expr, SgNode **node)#
virtual bool VisitNoInitExpr(clang::NoInitExpr *no_init_expr, SgNode **node)#
virtual bool VisitOffsetOfExpr(clang::OffsetOfExpr *offset_of_expr, SgNode **node)#
virtual bool VisitOMPArraySectionExpr(clang::ArraySectionExpr *omp_array_section_expr, SgNode **node)#
virtual bool VisitOpaqueValueExpr(clang::OpaqueValueExpr *opaque_value_expr, SgNode **node)#
virtual bool VisitOverloadExpr(clang::OverloadExpr *overload_expr, SgNode **node)#
virtual bool VisitUnresolvedLookupExpr(clang::UnresolvedLookupExpr *unresolved_lookup_expr, SgNode **node)#
virtual bool VisitUnresolvedMemberExpr(clang::UnresolvedMemberExpr *unresolved_member_expr, SgNode **node)#
virtual bool VisitPackExpansionExpr(clang::PackExpansionExpr *pack_expansion_expr, SgNode **node)#
virtual bool VisitParenExpr(clang::ParenExpr *paren_expr, SgNode **node)#
virtual bool VisitParenListExpr(clang::ParenListExpr *paran_list_expr, SgNode **node)#
virtual bool VisitPredefinedExpr(clang::PredefinedExpr *predefined_expr, SgNode **node)#
virtual bool VisitPseudoObjectExpr(clang::PseudoObjectExpr *pseudo_object_expr, SgNode **node)#
virtual bool VisitShuffleVectorExpr(clang::ShuffleVectorExpr *shuffle_vector_expr, SgNode **node)#
virtual bool VisitSizeOfPackExpr(clang::SizeOfPackExpr *size_of_pack_expr, SgNode **node)#
virtual bool VisitSourceLocExpr(clang::SourceLocExpr *source_loc_expr, SgNode **node)#
virtual bool VisitStmtExpr(clang::StmtExpr *stmt_expr, SgNode **node)#
virtual bool VisitStringLiteral(clang::StringLiteral *string_literal, SgNode **node)#
virtual bool VisitSubstNonTypeTemplateParmExpr(clang::SubstNonTypeTemplateParmExpr *subst_non_type_template_parm_expr, SgNode **node)#
virtual bool VisitSubstNonTypeTemplateParmPackExpr(clang::SubstNonTypeTemplateParmPackExpr *subst_non_type_template_parm_pack_expr, SgNode **node)#
virtual bool VisitTypeTraitExpr(clang::TypeTraitExpr *type_trait, SgNode **node)#
virtual bool VisitUnaryExprOrTypeTraitExpr(clang::UnaryExprOrTypeTraitExpr *unary_expr_or_type_trait_expr, SgNode **node)#
virtual bool VisitUnaryOperator(clang::UnaryOperator *unary_operator, SgNode **node)#
virtual bool VisitVAArgExpr(clang::VAArgExpr *va_arg_expr, SgNode **node)#
virtual bool VisitLabelStmt(clang::LabelStmt *label_stmt, SgNode **node)#
virtual bool VisitWhileStmt(clang::WhileStmt *while_stmt, SgNode **node)#
virtual bool VisitType(clang::Type *type, SgNode **node)#
virtual bool VisitAdjustedType(clang::AdjustedType *adjusted_type, SgNode **node)#
virtual bool VisitDecayedType(clang::DecayedType *decayed_type, SgNode **node)#
virtual bool VisitArrayType(clang::ArrayType *array_type, SgNode **node)#
virtual bool VisitConstantArrayType(clang::ConstantArrayType *constant_array_type, SgNode **node)#
virtual bool VisitDependentSizedArrayType(clang::DependentSizedArrayType *dependent_sized_array_type, SgNode **node)#
virtual bool VisitIncompleteArrayType(clang::IncompleteArrayType *incomplete_array_type, SgNode **node)#
virtual bool VisitVariableArrayType(clang::VariableArrayType *variable_array_type, SgNode **node)#
virtual bool VisitAtomicType(clang::AtomicType *atomic_type, SgNode **node)#
virtual bool VisitAttributedType(clang::AttributedType *attributed_type, SgNode **node)#
virtual bool VisitBlockPointerType(clang::BlockPointerType *block_pointer_type, SgNode **node)#
virtual bool VisitBuiltinType(clang::BuiltinType *builtin_type, SgNode **node)#
virtual bool VisitComplexType(clang::ComplexType *complex_type, SgNode **node)#
virtual bool VisitDecltypeType(clang::DecltypeType *decltype_type, SgNode **node)#
virtual bool VisitDependentDecltypeType(clang::DependentDecltypeType *dependent_decltype_type, SgNode **node)#
virtual bool VisitDeducedType(clang::DeducedType *deduced_type, SgNode **node)#
virtual bool VisitAutoType(clang::AutoType *auto_type, SgNode **node)#
virtual bool VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType *deduced_template_specialization_type, SgNode **node)#
virtual bool VisitDependentAddressSpaceType(clang::DependentAddressSpaceType *dependent_address_space_type, SgNode **node)#
virtual bool VisitDependentSizedExtVectorType(clang::DependentSizedExtVectorType *dependent_sized_ext_vector_type, SgNode **node)#
virtual bool VisitDependentVectorType(clang::DependentVectorType *dependent_vector_type, SgNode **node)#
virtual bool VisitFunctionType(clang::FunctionType *function_type, SgNode **node)#
virtual bool VisitFunctionNoProtoType(clang::FunctionNoProtoType *function_no_proto_type, SgNode **node)#
virtual bool VisitFunctionProtoType(clang::FunctionProtoType *function_proass_symo_type, SgNode **node)#
virtual bool VisitInjectedClassNameType(clang::InjectedClassNameType *injected_class_name_type, SgNode **node)#
virtual bool VisitMacroQualifiedType(clang::MacroQualifiedType *macro_qualified_type, SgNode **node)#
virtual bool VisitMemberPointerType(clang::MemberPointerType *member_pointer_type, SgNode **node)#
virtual bool VisitPackExpansionType(clang::PackExpansionType *pack_expansion_type, SgNode **node)#
virtual bool VisitParenType(clang::ParenType *paren_type, SgNode **node)#
virtual bool VisitPipeType(clang::PipeType *pipe_type, SgNode **node)#
virtual bool VisitPointerType(clang::PointerType *pointer_type, SgNode **node)#
virtual bool VisitReferenceType(clang::ReferenceType *reference_type, SgNode **node)#
virtual bool VisitLValueReferenceType(clang::LValueReferenceType *lvalue_reference_type, SgNode **node)#
virtual bool VisitRValueReferenceType(clang::RValueReferenceType *rvalue_reference_type, SgNode **node)#
virtual bool VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType *subst_template_type_parm_pack_type, SgNode **node)#
virtual bool VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType *subst_template_type_parm_type, SgNode **node)#
virtual bool VisitTagType(clang::TagType *tag_type, SgNode **node)#
virtual bool VisitEnumType(clang::EnumType *enum_type, SgNode **node)#
virtual bool VisitRecordType(clang::RecordType *record_type, SgNode **node)#
virtual bool VisitTemplateSpecializationType(clang::TemplateSpecializationType *template_specialization_type, SgNode **node)#
virtual bool VisitTemplateTypeParmType(clang::TemplateTypeParmType *template_type_parm_type, SgNode **node)#
virtual bool VisitTypedefType(clang::TypedefType *typedef_type, SgNode **node)#
virtual bool VisitTypeOfExprType(clang::TypeOfExprType *type_of_expr_type, SgNode **node)#
virtual bool VisitDependentTypeOfExprType(clang::DependentTypeOfExprType *dependent_type_of_expr_type, SgNode **node)#
virtual bool VisitTypeOfType(clang::TypeOfType *type_of_type, SgNode **node)#
virtual bool VisitTypeWithKeyword(clang::TypeWithKeyword *type_with_keyword, SgNode **node)#
virtual bool VisitDependentNameType(clang::DependentNameType *dependent_name_type, SgNode **node)#
virtual bool VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType *dependent_template_specialization_type, SgNode **node)#
virtual bool VisitElaboratedType(clang::ElaboratedType *elaborated_type, SgNode **node)#
virtual bool VisitUnaryTransformType(clang::UnaryTransformType *unary_transform_type, SgNode **node)#
virtual bool VisitUnresolvedUsingType(clang::UnresolvedUsingType *unresolved_using_type, SgNode **node)#
virtual bool VisitVectorType(clang::VectorType *vector_type, SgNode **node)#
virtual bool VisitExtVectorType(clang::ExtVectorType *ext_vector_type, SgNode **node)#
virtual bool VisitUsingType(clang::UsingType *using_type, SgNode **node)#
std::pair<Sg_File_Info*, PreprocessingInfo*> preprocessor_top()#
bool preprocessor_pop()#
size_t preprocessor_list_size()#
SgAsmOp::asm_operand_modifier_enum get_sgAsmOperandModifier(std::string modifier)#
SgAsmOp::asm_operand_constraint_enum get_sgAsmOperandConstraint(std::string constraint)#
SgInitializedName::asm_register_name_enum get_sgAsmRegister(std::string reg)#
std::string generate_source_position_string(clang::SourceLocation srcLoc)#
std::string generate_name_for_variable(clang::Stmt *stmt)#
std::string generate_name_for_type(clang::TypeSourceInfo *typeInfo)#

Protected Functions

SgSymbol *GetSymbolFromSymbolTable(clang::NamedDecl *decl)#
SgType *buildTypeFromQualifiedType(const clang::QualType &qual_type)#
SgTemplateClassDeclaration *getOrCreateTemplateDeclaration(const std::string &template_name, const clang::TemplateSpecializationType *clang_type)#
SgTemplateInstantiationDecl *getOrCreateTemplateInstantiation(SgTemplateClassDeclaration *template_decl, const clang::TemplateSpecializationType *clang_type)#
SgTemplateArgumentPtrList buildTemplateArguments(const clang::TemplateSpecializationType *clang_type)#
SgTemplateParameterPtrList *buildTemplateParameters(const clang::TemplateSpecializationType *clang_type)#
SgTemplateParameter *translateTemplateParameter(clang::NamedDecl *param_decl, SgDeclarationStatement *owning_template, unsigned position)#
SgTemplateParameterPtrList *translateTemplateParameterList(clang::TemplateParameterList *param_list, SgDeclarationStatement *owning_template)#
void populateClassDefinition(clang::RecordDecl *record_decl, SgClassDefinition *class_def)#
bool collectOpenMPPragmas(clang::Stmt *stmt, std::vector<CapturedPragma> &pragmas)#
SgPragmaDeclaration *buildOpenMPPragmaDeclaration(const std::string &directive, unsigned pragma_line, SgScopeStatement *scope)#
void appendOpenMPPragmasBefore(clang::Stmt *stmt, SgScopeStatement *scope)#
SgStatement *wrapStatementWithOpenMPPragmas(clang::Stmt *stmt, SgStatement *statement)#

Protected Attributes

std::map<clang::Decl*, SgNode*> p_decl_translation_map#
std::map<clang::Stmt*, SgNode*> p_stmt_translation_map#
std::map<const clang::Type*, SgNode*> p_type_translation_map#
SgGlobal *p_global_scope#
std::map<SgClassType*, bool> p_class_type_decl_first_see_in_type#
std::map<SgEnumType*, bool> p_enum_type_decl_first_see_in_type#
const RoseOpenMPPragmaCallback *p_openmp_pragma_callback#
std::map<std::string, SgTemplateClassDeclaration*> p_template_decl_cache#
std::map<std::string, SgTemplateInstantiationDecl*> p_template_inst_cache#
std::set<clang::NamedDecl*> p_symbol_lookup_in_progress#
clang::CompilerInstance *p_compiler_instance#
SagePreprocessorRecord *p_sage_preprocessor_recorder#
SgSourceFile *p_sage_source_file#
Language language#
struct CapturedPragma#

Public Members

unsigned line#
std::string text#
bool is_openmp#