| //===--- TextDiagnostics.h - Text Diagnostics Checkers ----------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This is the parent class for all text diagnostics. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef TEXT_DIAGNOSTICS_H_ |
| #define TEXT_DIAGNOSTICS_H_ |
| |
| #include "clang/Basic/Diagnostic.h" |
| |
| namespace clang { |
| class SourceManager; |
| class HeaderSearch; |
| class Preprocessor; |
| |
| class TextDiagnostics : public DiagnosticClient { |
| HeaderSearch *TheHeaderSearch; |
| protected: |
| std::string FormatDiagnostic(Diagnostic &Diags, Diagnostic::Level Level, |
| diag::kind ID, |
| const std::string *Strs, |
| unsigned NumStrs); |
| public: |
| TextDiagnostics() {} |
| virtual ~TextDiagnostics(); |
| |
| void setHeaderSearch(HeaderSearch &HS) { TheHeaderSearch = &HS; } |
| |
| virtual bool isInSystemHeader(FullSourceLoc Pos) const; |
| |
| virtual void HandleDiagnostic(Diagnostic &Diags, Diagnostic::Level DiagLevel, |
| FullSourceLoc Pos, |
| diag::kind ID, |
| const std::string *Strs, |
| unsigned NumStrs, |
| const SourceRange *Ranges, |
| unsigned NumRanges) = 0; |
| }; |
| |
| } // end namspace clang |
| |
| #endif |