Program Listing for File markSharedDeclarationsForOutputInCodeGeneration.h

Program Listing for File markSharedDeclarationsForOutputInCodeGeneration.h#

Return to documentation for file (src/frontend/SageIII/astPostProcessing/markSharedDeclarationsForOutputInCodeGeneration.h)

#ifndef MARK_SHARED_DECLARATIONS_FOR_OUTPUT_IN_CODE_GENERATION_H
#define MARK_SHARED_DECLARATIONS_FOR_OUTPUT_IN_CODE_GENERATION_H

// DQ (2/26/2019):
void markSharedDeclarationsForOutputInCodeGeneration( SgNode* node );

class MarkSharedDeclarationsInheritedAttribute
   {
     public:
      //  SgScopeStatement* previousScope;

          SgSourceFile* currentFile;

          SgFileIdList unparseFileIdList;

          MarkSharedDeclarationsInheritedAttribute();

          MarkSharedDeclarationsInheritedAttribute( const MarkSharedDeclarationsInheritedAttribute & X );

   };



class MarkSharedDeclarationsForOutputInCodeGeneration : public SgTopDownProcessing<MarkSharedDeclarationsInheritedAttribute>
   {
     public:
       // Adding map to record defining declarations and their associated file ID.
          std::set<int> fileNodeSet;

          std::set<SgDeclarationStatement*> definingDeclarationsSet;

       // SgSourceFile* currentSourceFile;

          MarkSharedDeclarationsForOutputInCodeGeneration();

       // void visit (SgNode* node);

          MarkSharedDeclarationsInheritedAttribute
               evaluateInheritedAttribute(SgNode* node, MarkSharedDeclarationsInheritedAttribute inheritedAttribute);
   };

// endif for MARK_SHARED_DECLARATIONS_FOR_OUTPUT_IN_CODE_GENERATION_H
#endif