1// 2// Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved. 3// Use of this source code is governed by a BSD-style license that can be 4// found in the LICENSE file. 5// 6 7#ifndef COMPILER_DIAGNOSTICS_H_ 8#define COMPILER_DIAGNOSTICS_H_ 9 10#include "compiler/preprocessor/DiagnosticsBase.h" 11 12class TInfoSink; 13 14class TDiagnostics : public pp::Diagnostics 15{ 16 public: 17 TDiagnostics(TInfoSink& infoSink); 18 virtual ~TDiagnostics(); 19 20 TInfoSink& infoSink() { return mInfoSink; } 21 22 int numErrors() const { return mNumErrors; } 23 int numWarnings() const { return mNumWarnings; } 24 25 void writeInfo(Severity severity, 26 const pp::SourceLocation& loc, 27 const std::string& reason, 28 const std::string& token, 29 const std::string& extra); 30 31 void writeDebug(const std::string& str); 32 33 protected: 34 virtual void print(ID id, 35 const pp::SourceLocation& loc, 36 const std::string& text); 37 38 private: 39 TInfoSink& mInfoSink; 40 int mNumErrors; 41 int mNumWarnings; 42}; 43 44#endif // COMPILER_DIAGNOSTICS_H_ 45