Program Listing for File PreprocessingInfo.hh#
↰ Return to documentation for file (src/midend/programTransformation/astOutlining/PreprocessingInfo.hh)
#if !defined(INC_ASTTOOLS_PREPROCESSINGINFO_HH)
#define INC_ASTTOOLS_PREPROCESSINGINFO_HH
#include <iostream>
namespace ASTtools
{
bool isPositionBefore (const PreprocessingInfo* info);
bool isPositionAfter (const PreprocessingInfo* info);
bool isPositionInside (const PreprocessingInfo* info);
bool isIfDirectiveBegin (const PreprocessingInfo* info);
bool isIfDirectiveMiddle (const PreprocessingInfo* info);
// !Returns true if the info is an '#endif'.
bool isIfDirectiveEnd (const PreprocessingInfo* info);
void attachComment (const std::string& comment, SgStatement* s);
void attachComment (const char* comment, SgStatement* s);
bool insertHeader (const std::string& filename, SgProject* proj);
AttachedPreprocessingInfoType* createInfoList (SgStatement* s);
void cutPreprocInfo (SgBasicBlock* b,
PreprocessingInfo::RelativePositionType pos,
AttachedPreprocessingInfoType& save_buf);
void pastePreprocInfoFront (AttachedPreprocessingInfoType& save_buf,
SgStatement* s);
void pastePreprocInfoBack (AttachedPreprocessingInfoType& save_buf,
SgStatement* s);
void moveBeforePreprocInfo (SgStatement* src, SgStatement* dest);
void moveInsidePreprocInfo (SgBasicBlock* src, SgBasicBlock* dest);
void moveAfterPreprocInfo (SgStatement* src, SgStatement* dest);
void moveUpPreprocInfo (SgStatement* stmt1, SgStatement* stmt2);
void dumpPreprocInfo (const SgStatement* s, std::ostream& o);
} // namespace ASTtools
#endif
// eof