Program Listing for File fixupSourcePositionInformation.h#
↰ Return to documentation for file (src/frontend/SageIII/astFixup/fixupSourcePositionInformation.h)
// DQ (11/1/2006):
#ifndef __fixupSourcePos
#define __fixupSourcePos
void fixupSourcePositionInformation ( SgNode* node );
class FixupSourcePositionInformationInheritedAttribute
{
public:
FixupSourcePositionInformationInheritedAttribute();
};
class FixupSourcePositionInformationSynthesizedAttribute
{
public:
FixupSourcePositionInformationSynthesizedAttribute();
FixupSourcePositionInformationSynthesizedAttribute( const FixupSourcePositionInformationSynthesizedAttribute & X );
Sg_File_Info* startingPosition;
Sg_File_Info* endingPosition;
SgNode* associatedNode;
};
// class FixupSourcePositionInformation : public AstSimpleProcessing
class FixupSourcePositionInformation
: public SgTopDownBottomUpProcessing<FixupSourcePositionInformationInheritedAttribute,
FixupSourcePositionInformationSynthesizedAttribute>
{
public:
// void visit ( SgNode* node );
FixupSourcePositionInformationInheritedAttribute
evaluateInheritedAttribute ( SgNode* node,
FixupSourcePositionInformationInheritedAttribute ia );
FixupSourcePositionInformationSynthesizedAttribute
evaluateSynthesizedAttribute ( SgNode* node,
FixupSourcePositionInformationInheritedAttribute ia,
SynthesizedAttributesList salist );
private:
void processChildSynthesizedAttributes ( FixupSourcePositionInformationSynthesizedAttribute & returnAttribute, SynthesizedAttributesList & l );
void fixupCompilerGeneratedNodesToBeUniformlyMarked ( SgLocatedNode* locatedNode );
void fixupSourcePositionUnavailableInFrontendToBeUniformlyMarked ( SgLocatedNode* locatedNode );
};
class FixupSourcePositionConstructs : public ROSE_VisitTraversal
{
public:
virtual ~FixupSourcePositionConstructs() {};
void visit (SgNode* node);
};
void fixupSourcePositionConstructs();
#endif