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
1.4.7