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