15 #ifndef MODULARIZE_PREPROCESSOR_TRACKER_H 16 #define MODULARIZE_PREPROCESSOR_TRACKER_H 18 #include "clang/Lex/Preprocessor.h" 49 llvm::StringRef RootHeaderFile) = 0;
60 int DirectiveLine,
int DirectiveColumn,
61 llvm::StringRef TargetPath) = 0;
67 clang::SourceRange BlockSourceRange,
68 const char *BlockIdentifierMessage,
69 llvm::raw_ostream &OS) = 0;
81 llvm::SmallVector<std::string, 32> &Headers,
82 bool DoBlockCheckHeaderListOnly);
virtual void handlePreprocessorExit()=0
virtual void handleIncludeDirective(llvm::StringRef DirectivePath, int DirectiveLine, int DirectiveColumn, llvm::StringRef TargetPath)=0
virtual ~PreprocessorTracker()
virtual void handlePreprocessorEntry(clang::Preprocessor &PP, llvm::StringRef RootHeaderFile)=0
static PreprocessorTracker * create(llvm::SmallVector< std::string, 32 > &Headers, bool DoBlockCheckHeaderListOnly)
virtual bool reportInconsistentMacros(llvm::raw_ostream &OS)=0
virtual bool checkForIncludesInBlock(clang::Preprocessor &PP, clang::SourceRange BlockSourceRange, const char *BlockIdentifierMessage, llvm::raw_ostream &OS)=0
virtual bool reportInconsistentConditionals(llvm::raw_ostream &OS)=0
Preprocessor tracker for modularize.