Program Listing for File PreprocessingInfo.hh

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