• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
12 class TInfoSink;
13 
14 class TDiagnostics : public pp::Diagnostics
15 {
16   public:
17     TDiagnostics(TInfoSink& infoSink);
18     virtual ~TDiagnostics();
19 
infoSink()20     TInfoSink& infoSink() { return mInfoSink; }
21 
numErrors()22     int numErrors() const { return mNumErrors; }
numWarnings()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