| //===--- TextDiagnosticPrinter.h - Text Diagnostic Client -------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file was developed by Bill Wendling and is distributed under the |
| // University of Illinois Open Source License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This is a concrete diagnostic client, which prints the diagnostics to |
| // standard error. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef TEXT_DIAGNOSTIC_PRINTER_H_ |
| #define TEXT_DIAGNOSTIC_PRINTER_H_ |
| |
| #include "TextDiagnostics.h" |
| #include "clang/Basic/SourceLocation.h" |
| |
| namespace clang { |
| class SourceManager; |
| |
| class TextDiagnosticPrinter : public TextDiagnostics { |
| SourceLocation LastWarningLoc; |
| public: |
| TextDiagnosticPrinter(SourceManager &sourceMgr) |
| : TextDiagnostics(sourceMgr) {} |
| |
| void PrintIncludeStack(SourceLocation Pos); |
| void HighlightRange(const SourceRange &R, unsigned LineNo, |
| std::string &CaratLine, |
| const std::string &SourceLine); |
| unsigned GetTokenLength(SourceLocation Loc); |
| |
| virtual void HandleDiagnostic(Diagnostic::Level DiagLevel, |
| SourceLocation Pos, |
| diag::kind ID, const std::string *Strs, |
| unsigned NumStrs, |
| const SourceRange *Ranges, |
| unsigned NumRanges); |
| }; |
| |
| } // end namspace clang |
| |
| #endif |