ROSE  0.9.9.139
attachPreprocessingInfo.h
1 // Header file to support attaching preprocessingInfo objects
2 // to AST nodes
3 
4 #ifndef _ATTACH_PREPROCESSING_INFO_H_
5 #define _ATTACH_PREPROCESSING_INFO_H_
6 
7 #include "attachPreprocessingInfoTraversal.h"
8 
9 
10 // DQ (4/5/2006): Andreas has removed this code!
11 
12 // void printOutComments ( SgLocatedNode* locatedNode );
13 
14 // This function is defined in preproc.C and used to collect the attributes
15 // extern ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
16 // extern ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
17 // ROSEAttributesList *getPreprocessorDirectives(const char *fileName);
18 // ROSEAttributesList *getPreprocessorDirectives( std::string fileName );
19 // ROSEAttributesList *getPreprocessorDirectives( std::string fileName, LexTokenStreamTypePointer & input_token_stream_pointer );
20 ROSEAttributesList *getPreprocessorDirectives( std::string fileName );
21 
22 void attachPreprocessingInfo(SgSourceFile *sageFile);
23 
24 // DQ (11/30/2008): Part of refactoring of code specific to Wave.
25 void attachPreprocessingInfoUsingWave(SgSourceFile *sageFile);
26 
27 #if 0
28 // DQ (12/16/2008): comment out while I debug the non-wave support.
29 
30 // AS (012006) Added the function
31 // void attachPreprocessingInfo(SgFile *sageFile, std::map<string,ROSEAttributesList*>*);
32 // to support reintroductions of macros and fetching of preprocessor directive using Wave.
33 // This function does not in itself rely on Wave, but simply takes the same arguement as
34 // 'attachPreprocessingInfo(SgFile *sageFile)', but adds an argument std::map<string,ROSEAttributesList*>*
35 // which is a map of a pair (filename,list of attributes in that file). The two functions will perform
36 // the same tasks in all ways but the way they find the preprocessor directives. In addition to that
37 // the mechanism here opens up for reintroduction of unexpanded macros into the AST without
38 // changing the implementation at all. This relies on some external mechanism, that be the
39 // Wave preprocessor or some other, to find the preprocessor directives and the unexpanded
40 // macros.
41 void attachPreprocessingInfo(SgSourceFile *sageFile, std::map<std::string,ROSEAttributesList*>*);
42 #endif
43 
44 #endif
45 
46 // EOF