summaryrefslogtreecommitdiffstats
path: root/include/clang/Frontend/TextDiagnostic.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Frontend/TextDiagnostic.h')
-rw-r--r--include/clang/Frontend/TextDiagnostic.h122
1 files changed, 0 insertions, 122 deletions
diff --git a/include/clang/Frontend/TextDiagnostic.h b/include/clang/Frontend/TextDiagnostic.h
deleted file mode 100644
index d41f15a..0000000
--- a/include/clang/Frontend/TextDiagnostic.h
+++ /dev/null
@@ -1,122 +0,0 @@
-//===--- TextDiagnostic.h - Text Diagnostic Pretty-Printing -----*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a utility class that provides support for textual pretty-printing of
-// diagnostics. It is used to implement the different code paths which require
-// such functionality in a consistent way.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_FRONTEND_TEXTDIAGNOSTIC_H
-#define LLVM_CLANG_FRONTEND_TEXTDIAGNOSTIC_H
-
-#include "clang/Frontend/DiagnosticRenderer.h"
-
-namespace clang {
-
-/// \brief Class to encapsulate the logic for formatting and printing a textual
-/// diagnostic message.
-///
-/// This class provides an interface for building and emitting a textual
-/// diagnostic, including all of the macro backtraces, caret diagnostics, FixIt
-/// Hints, and code snippets. In the presence of macros this involves
-/// a recursive process, synthesizing notes for each macro expansion.
-///
-/// The purpose of this class is to isolate the implementation of printing
-/// beautiful text diagnostics from any particular interfaces. The Clang
-/// DiagnosticClient is implemented through this class as is diagnostic
-/// printing coming out of libclang.
-class TextDiagnostic : public DiagnosticRenderer {
- raw_ostream &OS;
-
-public:
- TextDiagnostic(raw_ostream &OS,
- const LangOptions &LangOpts,
- DiagnosticOptions *DiagOpts);
-
- ~TextDiagnostic() override;
-
- /// \brief Print the diagonstic level to a raw_ostream.
- ///
- /// This is a static helper that handles colorizing the level and formatting
- /// it into an arbitrary output stream. This is used internally by the
- /// TextDiagnostic emission code, but it can also be used directly by
- /// consumers that don't have a source manager or other state that the full
- /// TextDiagnostic logic requires.
- static void printDiagnosticLevel(raw_ostream &OS,
- DiagnosticsEngine::Level Level,
- bool ShowColors,
- bool CLFallbackMode = false);
-
- /// \brief Pretty-print a diagnostic message to a raw_ostream.
- ///
- /// This is a static helper to handle the line wrapping, colorizing, and
- /// rendering of a diagnostic message to a particular ostream. It is
- /// publicly visible so that clients which do not have sufficient state to
- /// build a complete TextDiagnostic object can still get consistent
- /// formatting of their diagnostic messages.
- ///
- /// \param OS Where the message is printed
- /// \param IsSupplemental true if this is a continuation note diagnostic
- /// \param Message The text actually printed
- /// \param CurrentColumn The starting column of the first line, accounting
- /// for any prefix.
- /// \param Columns The number of columns to use in line-wrapping, 0 disables
- /// all line-wrapping.
- /// \param ShowColors Enable colorizing of the message.
- static void printDiagnosticMessage(raw_ostream &OS, bool IsSupplemental,
- StringRef Message, unsigned CurrentColumn,
- unsigned Columns, bool ShowColors);
-
-protected:
- void emitDiagnosticMessage(SourceLocation Loc,PresumedLoc PLoc,
- DiagnosticsEngine::Level Level,
- StringRef Message,
- ArrayRef<CharSourceRange> Ranges,
- const SourceManager *SM,
- DiagOrStoredDiag D) override;
-
- void emitDiagnosticLoc(SourceLocation Loc, PresumedLoc PLoc,
- DiagnosticsEngine::Level Level,
- ArrayRef<CharSourceRange> Ranges,
- const SourceManager &SM) override;
-
- void emitCodeContext(SourceLocation Loc,
- DiagnosticsEngine::Level Level,
- SmallVectorImpl<CharSourceRange>& Ranges,
- ArrayRef<FixItHint> Hints,
- const SourceManager &SM) override {
- emitSnippetAndCaret(Loc, Level, Ranges, Hints, SM);
- }
-
- void emitIncludeLocation(SourceLocation Loc, PresumedLoc PLoc,
- const SourceManager &SM) override;
-
- void emitImportLocation(SourceLocation Loc, PresumedLoc PLoc,
- StringRef ModuleName,
- const SourceManager &SM) override;
-
- void emitBuildingModuleLocation(SourceLocation Loc, PresumedLoc PLoc,
- StringRef ModuleName,
- const SourceManager &SM) override;
-
-private:
- void emitSnippetAndCaret(SourceLocation Loc, DiagnosticsEngine::Level Level,
- SmallVectorImpl<CharSourceRange>& Ranges,
- ArrayRef<FixItHint> Hints,
- const SourceManager &SM);
-
- void emitSnippet(StringRef SourceLine);
-
- void emitParseableFixits(ArrayRef<FixItHint> Hints, const SourceManager &SM);
-};
-
-} // end namespace clang
-
-#endif
OpenPOWER on IntegriCloud