Class NameQualificationTraversal

Contents

Class NameQualificationTraversal#

Inheritance Relationships#

Base Type#

Class Documentation#

class NameQualificationTraversal : public AstTopDownBottomUpProcessing<NameQualificationInheritedAttribute, NameQualificationSynthesizedAttribute>#

Public Functions

NameQualificationTraversal(std::map<SgNode*, std::string> &input_qualifiedNameMapForNames, std::map<SgNode*, std::string> &input_qualifiedNameMapForTypes, std::map<SgNode*, std::string> &input_qualifiedNameMapForTemplateHeaders, std::map<SgNode*, std::string> &input_typeNameMap, std::map<SgNode*, std::map<SgNode*, std::string>> &input_qualifiedNameMapForMapsOfTypes, std::set<SgNode*> &input_referencedNameSet)#
void generateNestedTraversalWithExplicitScope(SgNode *node, SgScopeStatement *currentScope, SgStatement *currentStatement = NULL, SgNode *referenceNode = NULL)#
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)#
void processNameQualificationArrayType(SgArrayType *arrayType, SgScopeStatement *currentScope)#
void processNameQualificationForPossibleArrayType(SgType *possibleArrayType, SgScopeStatement *currentScope)#
SgDeclarationStatement *associatedDeclaration(SgScopeStatement *scope)#
SgDeclarationStatement *associatedDeclaration(SgType *type)#
void nameQualificationTypeSupport(SgType *type, SgScopeStatement *currentScope, SgInitializedName *initializedName)#
virtual NameQualificationInheritedAttribute evaluateInheritedAttribute(SgNode *n, NameQualificationInheritedAttribute inheritedAttribute)#

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

virtual NameQualificationSynthesizedAttribute evaluateSynthesizedAttribute(SgNode *n, NameQualificationInheritedAttribute 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(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(SgPseudoDestructorRefExp *psuedoDestructorRefExp, SgDeclarationStatement *declarationStatement, int amountOfNameQualificationRequired)#
void setNameQualification(SgConstructorInitializer *constructorInitializer, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgAggregateInitializer *exp, SgDeclarationStatement *typeDeclaration, int amountOfNameQualificationRequired)#
void setNameQualificationOnType(SgInitializedName *initializedName, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired, bool skipGlobalQualification)#
void setNameQualificationOnName(SgInitializedName *initializedName, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired, bool skipGlobalQualification)#
void setNameQualification(SgVariableDeclaration *variableDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualificationOnBaseType(SgTypedefDeclaration *typedefDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualificationOnPointerMemberClass(SgTypedefDeclaration *typedefDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgTemplateArgument *templateArgument, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgExpression *exp, SgDeclarationStatement *typeDeclaration, int amountOfNameQualificationRequired)#
void setNameQualificationForPointerToMember(SgExpression *exp, SgDeclarationStatement *typeDeclaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgNonrealRefExp *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 setNameQualification(SgNamespaceAliasDeclarationStatement *namespaceAliasDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualification(SgEnumDeclaration *enumDeclaration, int amountOfNameQualificationRequired)#
void setNameQualificationReturnType(SgFunctionDeclaration *functionDeclaration, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualificationOnClassOf(SgPointerMemberType *pointerMemberType, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
void setNameQualificationOnBaseType(SgPointerMemberType *pointerMemberType, SgDeclarationStatement *declaration, int amountOfNameQualificationRequired)#
SgDeclarationStatement *getDeclarationAssociatedWithType(SgType *type)#
std::string setNameQualificationSupport(SgScopeStatement *scope, const int inputNameQualificationLength, int &output_amountOfNameQualificationRequired, bool &outputGlobalQualification, bool &outputTypeEvaluation)#
std::string setTemplateHeaderNameQualificationSupport(SgScopeStatement *scope, const int inputNameQualificationLength)#
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#
const std::map<SgNode*, std::string> &get_qualifiedNameMapForTemplateHeaders() const#
const std::map<SgNode*, std::map<SgNode*, std::string>> &get_qualifiedNameMapForMapsOfTypes() const#
void traverseType(SgType *type, SgNode *nodeReferenceToType, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void traverseTemplatedFunction(SgFunctionRefExp *functionRefExp, SgNode *nodeReference, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void traverseTemplatedMemberFunction(SgMemberFunctionRefExp *memberFunctionRefExp, SgNode *nodeReference, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void traverseTemplatedClass(SgBaseClass *baseClass, SgNode *nodeReference, SgScopeStatement *currentScope, SgStatement *positionStatement)#
void addToNameMap(SgNode *nodeReference, std::string typeNameString)#
void evaluateTemplateInstantiationDeclaration(SgDeclarationStatement *declaration, SgScopeStatement *currentScope, SgStatement *positionStatement)#
bool skipNameQualificationIfNotProperlyDeclaredWhereDeclarationIsDefinable(SgDeclarationStatement *declaration)#
std::string buildTemplateHeaderString(SgTemplateParameterPtrList &templateParameterList)#
size_t depthOfGlobalNameQualification(SgDeclarationStatement *declaration)#
void functionReport(SgFunctionDeclaration *functionDeclaration)#
void displayBaseClassMap(const std::string &label, BaseClassSetMap &x)#
void outputNameQualificationMap(const std::map<SgNode*, std::string> &qualifiedNameMap)#

Public Members

SageInterface::DeclarationSets *declarationSet#