зеркало из https://github.com/microsoft/clang-1.git
52 строки
1.7 KiB
C++
52 строки
1.7 KiB
C++
//===--- TextDiagnosticBuffer.h - Buffer Text Diagnostics -------*- 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 buffers the diagnostic messages.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef DRIVER_TEXT_DIAGNOSTIC_BUFFER_H_
|
|
#define DRIVER_TEXT_DIAGNOSTIC_BUFFER_H_
|
|
|
|
#include "TextDiagnostics.h"
|
|
#include <vector>
|
|
|
|
namespace clang {
|
|
|
|
class Preprocessor;
|
|
class SourceManager;
|
|
|
|
class TextDiagnosticBuffer : public TextDiagnostics {
|
|
public:
|
|
typedef std::vector<std::pair<SourceLocation, std::string> > DiagList;
|
|
typedef DiagList::iterator iterator;
|
|
typedef DiagList::const_iterator const_iterator;
|
|
private:
|
|
DiagList Errors, Warnings;
|
|
public:
|
|
TextDiagnosticBuffer(SourceManager &SM) : TextDiagnostics(SM) {}
|
|
|
|
const_iterator err_begin() const { return Errors.begin(); }
|
|
const_iterator err_end() const { return Errors.end(); }
|
|
|
|
const_iterator warn_begin() const { return Warnings.begin(); }
|
|
const_iterator warn_end() const { return Warnings.end(); }
|
|
|
|
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
|