Class HiddenListTraversal

Contents

Class HiddenListTraversal#

Inheritance Relationships#

Base Type#

Class Documentation#

class HiddenListTraversal : public AstTopDownBottomUpProcessing<HiddenListInheritedAttribute, HiddenListSynthesizedAttribute>#

Public Functions

HiddenListTraversal(std::map<SgNode*, std::string> &input_qualifiedNameMapForNames, std::map<SgNode*, std::string> &input_qualifiedNameMapForTypes, std::map<SgNode*, std::string> &input_typeNameMap, std::set<SgNode*> &input_referencedNameSet)#
int nameQualificationDepth(SgDeclarationStatement *declaration, SgScopeStatement *currentScope, SgStatement *positionStatement, bool forceMoreNameQualification = false)#
int nameQualificationDepth(SgInitializedName *initializedName, SgScopeStatement *currentScope, SgStatement *positionStatement)#
int nameQualificationDepth(SgType *type, SgScopeStatement *currentScope, SgStatement *positionStatement)#
int nameQualificationDepthOfParent(SgDeclarationStatement *declaration, SgScopeStatement *currentScope, SgStatement *positionStatement)#
int nameQualificationDepthForType(SgInitializedName *initializedName, SgScopeStatement *currentScope, SgStatement *positionStatement)#
SgDeclarationStatement *associatedDeclaration(SgScopeStatement *scope)#
SgDeclarationStatement *associatedDeclaration(SgType *type)#
virtual HiddenListInheritedAttribute evaluateInheritedAttribute(SgNode *n, HiddenListInheritedAttribute inheritedAttribute)#

pure virtual function which must be implemented to compute the inherited attribute at a node

virtual HiddenListSynthesizedAttribute evaluateSynthesizedAttribute(SgNode *n, HiddenListInheritedAttribute inheritedAttribute, SynthesizedAttributesList synthesizedAttributeList)#

pure virtual function which must be implemented to compute the synthesized attribute at a node. The list of synthesized attributes consists of the synthesized attributes computed at the children node of the current node. The inherited attribute value is computed by evaluateInheritedAttribute at the same node and simply passed to this function. Use the typedef SynthesizedAttributeList as type for the synthesized attributes list.

void setNameQualification(SgVarRefExp *varRefExp, SgVariableDeclaration *variableDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgVarRefExp *varRefExp, SgScopeStatement *scopeStatement, int amountOfNameQualificationRequired)#
void setNameQualification(SgBaseClass *baseClass, SgClassDeclaration *classDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgUsingDeclarationStatement *usingDeclaration, SgInitializedName *associatedInitializedName, int amountOfNameQualificationRequired)#
void setNameQualification(SgUsingDeclarationStatement *usingDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgUsingDirectiveStatement *usingDirective, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgFunctionRefExp *functionRefExp, SgFunctionDeclaration *functionDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgMemberFunctionRefExp *functionRefExp, SgMemberFunctionDeclaration *functionDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgConstructorInitializer *constructorInitializer, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgInitializedName *initializedName, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgVariableDeclaration *variableDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgTypedefDeclaration *typedefDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgTemplateArgument *templateArgument, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgExpression *exp, SgDeclarationStatement *typeDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgEnumVal *enumVal, SgEnumDeclaration *enumDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgFunctionDeclaration *functionDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgClassDeclaration *classDeclaration, int amountOfNameQualificationRequired)#
void setNameQualificationReturnType(SgFunctionDeclaration *functionDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
SgDeclarationStatement *getDeclarationAssociatedWithType(SgType *type)#
std::string setNameQualificationSupport(SgScopeStatement *scope, const int inputNameQualificationLength, int &output_amountOfNameQualificationRequired, bool &outputGlobalQualification, bool &outputTypeEvaluation)#
bool requiresTypeElaboration(SgSymbol *symbol)#
void evaluateNameQualificationForTemplateArgumentList(SgTemplateArgumentPtrList &templateArgumentList, SgScopeStatement *currentScope, SgStatement *positionStatement)#
const std::map<SgNode*, std::string> &get_qualifiedNameMapForNames() const#
const std::map<SgNode*, std::string> &get_qualifiedNameMapForTypes() const#
void traverseType(SgType *type, SgNode *nodeReferenceToType, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void traverseTemplatedFunction(SgFunctionRefExp *functionRefExp, SgNode *nodeReferenceToType, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void addToNameMap(SgNode *nodeReferenceToType, std::string typeNameString)#
void evaluateTemplateInstantiationDeclaration(SgDeclarationStatement *declaration, SgScopeStatement *currentScope, SgStatement *positionStatement)#
bool skipNameQualificationIfNotProperlyDeclaredWhereDeclarationIsDefinable(SgDeclarationStatement *declaration)#