ROSE  0.9.10.54
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
PreprocessingInfo Class Reference

Description

For preprocessing information including source comments, #include , #if, #define, etc.

Definition at line 120 of file rose_attributes_list.h.

#include <rose_attributes_list.h>

Classes

struct  r_include_directive
 
struct  r_macro_def
 
struct  rose_macro_call
 

Public Types

enum  RelativePositionType {
  defaultValue = 0,
  undef = 1,
  before = 2,
  after = 3,
  inside = 4,
  before_syntax = 6,
  after_syntax = 7
}
 MK: Enum type to store if the directive goes before or after the corresponding line of source code.
 
enum  DirectiveType {
  CpreprocessorUnknownDeclaration,
  C_StyleComment,
  CplusplusStyleComment,
  FortranStyleComment,
  F90StyleComment,
  CpreprocessorBlankLine,
  CpreprocessorIncludeDeclaration,
  CpreprocessorIncludeNextDeclaration,
  CpreprocessorDefineDeclaration,
  CpreprocessorUndefDeclaration,
  CpreprocessorIfdefDeclaration,
  CpreprocessorIfndefDeclaration,
  CpreprocessorIfDeclaration,
  CpreprocessorDeadIfDeclaration,
  CpreprocessorElseDeclaration,
  CpreprocessorElifDeclaration,
  CpreprocessorEndifDeclaration,
  CpreprocessorLineDeclaration,
  CpreprocessorErrorDeclaration,
  CpreprocessorWarningDeclaration,
  CpreprocessorEmptyDeclaration,
  CSkippedToken,
  CMacroCall,
  CMacroCallStatement,
  LineReplacement,
  ClinkageSpecificationStart,
  ClinkageSpecificationEnd,
  CpreprocessorIdentDeclaration,
  CpreprocessorCompilerGeneratedLinemarker,
  RawText,
  LastDirectiveType
}
 
typedef struct PreprocessingInfo::r_include_directive rose_include_directive
 
typedef struct PreprocessingInfo::r_macro_def rose_macro_definition
 

Public Member Functions

 PreprocessingInfo (token_container, DirectiveType, RelativePositionType)
 
 PreprocessingInfo (rose_macro_call *, RelativePositionType)
 
 PreprocessingInfo (rose_macro_definition *, RelativePositionType)
 
 PreprocessingInfo (token_type, token_list_container, bool, DirectiveType, RelativePositionType)
 
 PreprocessingInfo (rose_include_directive *, RelativePositionType)
 
 PreprocessingInfo (DirectiveType, const std::string &inputString, const std::string &filenameString, int line_no, int col_no, int nol, RelativePositionType relPos)
 
 PreprocessingInfo (const PreprocessingInfo &prepInfo)
 
void display (const std::string &label) const
 
int getLineNumber () const
 
int getColumnNumber () const
 
std::string getString () const
 
void setString (const std::string &s)
 
int getStringLength () const
 
DirectiveType getTypeOfDirective () const
 
RelativePositionType getRelativePosition (void) const
 
void setRelativePosition (RelativePositionType relPos)
 
int getNumberOfLines () const
 
int getColumnNumberOfEndOfString () const
 
unsigned int packed_size () const
 
char * packed () const
 
void unpacked (char *storePointer)
 
Sg_File_Infoget_file_info () const
 
void set_file_info (Sg_File_Info *info)
 
int get_lineNumberForCompilerGeneratedLinemarker ()
 
std::string get_filenameForCompilerGeneratedLinemarker ()
 
std::string get_optionalflagsForCompilerGeneratedLinemarker ()
 
void set_lineNumberForCompilerGeneratedLinemarker (int x)
 
void set_filenameForCompilerGeneratedLinemarker (std::string x)
 
void set_optionalflagsForCompilerGeneratedLinemarker (std::string x)
 
rose_macro_callget_macro_call ()
 
rose_macro_definitionget_macro_def ()
 
rose_include_directiveget_include_directive ()
 
const token_container * get_token_stream ()
 
void push_front_token_stream (token_type tok)
 
void push_back_token_stream (token_type tok)
 
bool isSelfReferential ()
 
std::string getMacroName ()
 
bool isTransformation () const
 
void setAsTransformation ()
 
void unsetAsTransformation ()
 

Static Public Member Functions

static std::string directiveTypeName (const DirectiveType &directive)
 
static std::string relativePositionName (const RelativePositionType &position)
 

The documentation for this class was generated from the following file: