attachPreprocessingInfo.h

Go to the documentation of this file.
00001 // Header file to support attaching preprocessingInfo objects
00002 // to AST nodes
00003 
00004 #ifndef _ATTACH_PREPROCESSING_INFO_H_
00005 #define _ATTACH_PREPROCESSING_INFO_H_
00006 
00007 #include "attachPreprocessingInfoTraversal.h"
00008 
00009 
00010 // DQ (4/5/2006): Andreas has removed this code!
00011 
00012 // void printOutComments ( SgLocatedNode* locatedNode );
00013 
00014 // This function is defined in preproc.C and used to collect the attributes
00015 // extern ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
00016 // extern ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
00017 // ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
00018 // ROSEAttributesList *getPreprocessorDirectives( std::string fileName );
00019 // ROSEAttributesList *getPreprocessorDirectives( std::string fileName, LexTokenStreamTypePointer & input_token_stream_pointer );
00020 ROSEAttributesList *getPreprocessorDirectives( std::string fileName );
00021 
00022 void attachPreprocessingInfo(SgSourceFile *sageFile);
00023 
00024 // DQ (11/30/2008): Part of refactoring of code specific to Wave.
00025 void attachPreprocessingInfoUsingWave(SgSourceFile *sageFile);
00026 
00027 #if 0
00028 // DQ (12/16/2008): comment out while I debug the non-wave support.
00029 
00030 // AS (012006) Added the function
00031 //     void attachPreprocessingInfo(SgFile *sageFile,  std::map<string,ROSEAttributesList*>*);
00032 // to support reintroductions of macros and fetching of preprocessor directive using Wave. 
00033 // This function does not in itself rely on Wave, but simply takes the same arguement as 
00034 // 'attachPreprocessingInfo(SgFile *sageFile)', but adds an argument std::map<string,ROSEAttributesList*>* 
00035 // which is a map of a pair (filename,list of attributes in that file). The two functions will perform 
00036 // the same tasks in all ways but the way they find the preprocessor directives. In addition to that
00037 // the mechanism here opens up for reintroduction of unexpanded macros into the AST without
00038 // changing the implementation at all. This relies on some external mechanism, that be the 
00039 // Wave preprocessor or some other, to find the preprocessor directives and the unexpanded 
00040 // macros.
00041 void attachPreprocessingInfo(SgSourceFile *sageFile,  std::map<std::string,ROSEAttributesList*>*);
00042 #endif
00043 
00044 #endif
00045 
00046 // EOF

Generated on Wed May 16 06:17:53 2012 for ROSE by  doxygen 1.4.7