Program Listing for File IncludingPreprocessingInfosCollector.h

Program Listing for File IncludingPreprocessingInfosCollector.h#

Return to documentation for file (src/frontend/SageIII/includeDirectivesProcessing/IncludingPreprocessingInfosCollector.h)

#include <string>
#include <set>
#include <map>
#include <list>

using namespace std;

class IncludingPreprocessingInfosCollector : public AstSimpleProcessing {
private:
    SgProject* projectNode;
    map<string, set<string> > includedFilesMap;

    map<string, set<PreprocessingInfo*> > includingPreprocessingInfosMap;

    void addIncludingPreprocessingInfoToMap(PreprocessingInfo* preprocessingInfo);
    void matchIncludedAndIncludingFiles();

protected:
    void visit(SgNode* astNode);

public:
    ~IncludingPreprocessingInfosCollector();
    IncludingPreprocessingInfosCollector(SgProject* projectNode, const map<string, set<string> >& includedFilesMap);
    map<string, set<PreprocessingInfo*> > collect();
};