Envision
A visual programming IDE for object-oriented languages
List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
EnvisionAstConsumer Class Reference
Inheritance diagram for EnvisionAstConsumer:

Public Member Functions

 EnvisionAstConsumer (clang::CompilerInstance &ci, QString currentFile)
 
void HandleClassDecl (clang::CXXRecordDecl *classDecl)
 
void HandleEnumDecl (clang::EnumDecl *enumDecl)
 
virtual void HandleTagDeclDefinition (clang::TagDecl *tagDecl) override
 
virtual void Initialize (clang::ASTContext &Context) override
 

Private Member Functions

void addClassEnums (ClassData &cData)
 
ClassAttribute attribute (const QString &attributeName, const QString &attributeSetterName, const QString &qualifiedClassName, const clang::CXXMethodDecl *method)
 
QStringList baseClasses (clang::CXXRecordDecl *classDecl)
 
ClassData buildClassInfo (clang::CXXRecordDecl *classDecl)
 
void checkForTypedList (const clang::Type *type)
 
QString functionStringFor (const QString &methodName, const QString &qualifiedClassName, const clang::CXXMethodDecl *method)
 
void resolveOverloads (ClassData &cData, const QMultiHash< QString, clang::CXXMethodDecl * > &overloads)
 

Static Private Member Functions

static void addBases (ClassData &cData, const clang::CXXRecordDecl *classDecl)
 

Private Attributes

QStringList allowedBases_ {"Model::Node"}
 
QHash< QString, QString > attributes_
 
clang::CompilerInstance & compilerInstance_
 
QString currentClassName_
 
std::string currentFile_
 
QList< EnumDataprocessedEnums_
 
QSet< clang::TagDecl * > seenDecls_
 

Constructor & Destructor Documentation

◆ EnvisionAstConsumer()

EnvisionAstConsumer::EnvisionAstConsumer ( clang::CompilerInstance &  ci,
QString  currentFile 
)

Member Function Documentation

◆ addBases()

void EnvisionAstConsumer::addBases ( ClassData cData,
const clang::CXXRecordDecl *  classDecl 
)
staticprivate

◆ addClassEnums()

void EnvisionAstConsumer::addClassEnums ( ClassData cData)
private

◆ attribute()

ClassAttribute EnvisionAstConsumer::attribute ( const QString &  attributeName,
const QString &  attributeSetterName,
const QString &  qualifiedClassName,
const clang::CXXMethodDecl *  method 
)
private

◆ baseClasses()

QStringList EnvisionAstConsumer::baseClasses ( clang::CXXRecordDecl *  classDecl)
private

◆ buildClassInfo()

ClassData EnvisionAstConsumer::buildClassInfo ( clang::CXXRecordDecl *  classDecl)
private

◆ checkForTypedList()

void EnvisionAstConsumer::checkForTypedList ( const clang::Type *  type)
private

◆ functionStringFor()

QString EnvisionAstConsumer::functionStringFor ( const QString &  methodName,
const QString &  qualifiedClassName,
const clang::CXXMethodDecl *  method 
)
private

◆ HandleClassDecl()

void EnvisionAstConsumer::HandleClassDecl ( clang::CXXRecordDecl *  classDecl)

◆ HandleEnumDecl()

void EnvisionAstConsumer::HandleEnumDecl ( clang::EnumDecl *  enumDecl)

◆ HandleTagDeclDefinition()

void EnvisionAstConsumer::HandleTagDeclDefinition ( clang::TagDecl *  tagDecl)
overridevirtual

◆ Initialize()

void EnvisionAstConsumer::Initialize ( clang::ASTContext &  Context)
overridevirtual

◆ resolveOverloads()

void EnvisionAstConsumer::resolveOverloads ( ClassData cData,
const QMultiHash< QString, clang::CXXMethodDecl * > &  overloads 
)
private

Member Data Documentation

◆ allowedBases_

QStringList EnvisionAstConsumer::allowedBases_ {"Model::Node"}
private

◆ attributes_

QHash<QString, QString> EnvisionAstConsumer::attributes_
private

◆ compilerInstance_

clang::CompilerInstance& EnvisionAstConsumer::compilerInstance_
private

◆ currentClassName_

QString EnvisionAstConsumer::currentClassName_
private

◆ currentFile_

std::string EnvisionAstConsumer::currentFile_
private

◆ processedEnums_

QList<EnumData> EnvisionAstConsumer::processedEnums_
private

◆ seenDecls_

QSet<clang::TagDecl*> EnvisionAstConsumer::seenDecls_
private