Class NameQualificationTraversal#
Defined in File nameQualificationSupport.h
Inheritance Relationships#
Base Type#
public AstTopDownBottomUpProcessing< NameQualificationInheritedAttribute, NameQualificationSynthesizedAttribute >(Template Class AstTopDownBottomUpProcessing)
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)#
-
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#
-
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)#