TextDiagnosticBuffer.h revision 280031
1193326Sed//===--- TextDiagnosticBuffer.h - Buffer Text Diagnostics -------*- C++ -*-===// 2193326Sed// 3193326Sed// The LLVM Compiler Infrastructure 4193326Sed// 5193326Sed// This file is distributed under the University of Illinois Open Source 6193326Sed// License. See LICENSE.TXT for details. 7193326Sed// 8193326Sed//===----------------------------------------------------------------------===// 9193326Sed// 10193326Sed// This is a concrete diagnostic client, which buffers the diagnostic messages. 11193326Sed// 12193326Sed//===----------------------------------------------------------------------===// 13193326Sed 14280031Sdim#ifndef LLVM_CLANG_FRONTEND_TEXTDIAGNOSTICBUFFER_H 15280031Sdim#define LLVM_CLANG_FRONTEND_TEXTDIAGNOSTICBUFFER_H 16193326Sed 17193326Sed#include "clang/Basic/Diagnostic.h" 18193326Sed#include <vector> 19193326Sed 20193326Sednamespace clang { 21193326Sed 22193326Sedclass Preprocessor; 23193326Sedclass SourceManager; 24193326Sed 25226633Sdimclass TextDiagnosticBuffer : public DiagnosticConsumer { 26193326Sedpublic: 27193326Sed typedef std::vector<std::pair<SourceLocation, std::string> > DiagList; 28193326Sed typedef DiagList::iterator iterator; 29193326Sed typedef DiagList::const_iterator const_iterator; 30193326Sedprivate: 31276479Sdim DiagList Errors, Warnings, Remarks, Notes; 32193326Sedpublic: 33193326Sed const_iterator err_begin() const { return Errors.begin(); } 34193326Sed const_iterator err_end() const { return Errors.end(); } 35193326Sed 36193326Sed const_iterator warn_begin() const { return Warnings.begin(); } 37193326Sed const_iterator warn_end() const { return Warnings.end(); } 38193326Sed 39276479Sdim const_iterator remark_begin() const { return Remarks.begin(); } 40276479Sdim const_iterator remark_end() const { return Remarks.end(); } 41276479Sdim 42193326Sed const_iterator note_begin() const { return Notes.begin(); } 43193326Sed const_iterator note_end() const { return Notes.end(); } 44193326Sed 45276479Sdim void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, 46276479Sdim const Diagnostic &Info) override; 47199990Srdivacky 48199990Srdivacky /// FlushDiagnostics - Flush the buffered diagnostics to an given 49199990Srdivacky /// diagnostic engine. 50226633Sdim void FlushDiagnostics(DiagnosticsEngine &Diags) const; 51193326Sed}; 52193326Sed 53193326Sed} // end namspace clang 54193326Sed 55193326Sed#endif 56