Envision
A visual programming IDE for object-oriented languages
List of all members | Public Member Functions | Private Attributes
CppImport::TemplateArgumentVisitor Class Reference

A visitor for template arguments. More...

Inheritance diagram for CppImport::TemplateArgumentVisitor:

Public Member Functions

 TemplateArgumentVisitor (ClangHelpers &clang, ExpressionVisitor *vis, CppImportUtilities *util, CppImportLogger *log)
 
OOModel::FormalTypeArgument * translateTemplateArg (clang::Decl *d)
 Translates the template argument declaration d. More...
 
bool TraverseNonTypeTemplateParmDecl (clang::NonTypeTemplateParmDecl *nonTypeTemplateParm)
 
bool TraverseTemplateTypeParmDecl (clang::TemplateTypeParmDecl *templateParm)
 
bool VisitDecl (clang::Decl *decl)
 

Private Attributes

ClangHelpers & clang_
 
const QString className_ {"TemplateArgumentVisitor"}
 
ExpressionVisitor * exprVisitor_ {}
 
OOModel::FormalTypeArgument * lastTranslatedTypeArg_ {}
 
CppImportLogger * log_ {}
 
CppImportUtilities * utils_ {}
 

Detailed Description

A visitor for template arguments.

Constructor & Destructor Documentation

◆ TemplateArgumentVisitor()

CppImport::TemplateArgumentVisitor::TemplateArgumentVisitor ( ClangHelpers &  clang,
ExpressionVisitor *  vis,
CppImportUtilities *  util,
CppImportLogger *  log 
)

Member Function Documentation

◆ translateTemplateArg()

OOModel::FormalTypeArgument * CppImport::TemplateArgumentVisitor::translateTemplateArg ( clang::Decl *  d)

Translates the template argument declaration d.

Returns the translated node.

◆ TraverseNonTypeTemplateParmDecl()

bool CppImport::TemplateArgumentVisitor::TraverseNonTypeTemplateParmDecl ( clang::NonTypeTemplateParmDecl *  nonTypeTemplateParm)

◆ TraverseTemplateTypeParmDecl()

bool CppImport::TemplateArgumentVisitor::TraverseTemplateTypeParmDecl ( clang::TemplateTypeParmDecl *  templateParm)

◆ VisitDecl()

bool CppImport::TemplateArgumentVisitor::VisitDecl ( clang::Decl *  decl)

Member Data Documentation

◆ clang_

ClangHelpers& CppImport::TemplateArgumentVisitor::clang_
private

◆ className_

const QString CppImport::TemplateArgumentVisitor::className_ {"TemplateArgumentVisitor"}
private

◆ exprVisitor_

ExpressionVisitor* CppImport::TemplateArgumentVisitor::exprVisitor_ {}
private

◆ lastTranslatedTypeArg_

OOModel::FormalTypeArgument* CppImport::TemplateArgumentVisitor::lastTranslatedTypeArg_ {}
private

◆ log_

CppImportLogger* CppImport::TemplateArgumentVisitor::log_ {}
private

◆ utils_

CppImportUtilities* CppImport::TemplateArgumentVisitor::utils_ {}
private