zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Diagnostics.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2012 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 #include "compiler/Diagnostics.h"
8 
9 #include "compiler/debug.h"
10 #include "compiler/InfoSink.h"
12 
14  mInfoSink(infoSink),
15  mNumErrors(0),
16  mNumWarnings(0)
17 {
18 }
19 
21 {
22 }
23 
25  const pp::SourceLocation& loc,
26  const std::string& reason,
27  const std::string& token,
28  const std::string& extra)
29 {
30  TPrefixType prefix = EPrefixNone;
31  switch (severity)
32  {
33  case ERROR:
34  ++mNumErrors;
35  prefix = EPrefixError;
36  break;
37  case WARNING:
38  ++mNumWarnings;
39  prefix = EPrefixWarning;
40  break;
41  default:
42  UNREACHABLE();
43  break;
44  }
45 
46  TInfoSinkBase& sink = mInfoSink.info;
47  /* VC++ format: file(linenum) : error #: 'token' : extrainfo */
48  sink.prefix(prefix);
49  sink.location(loc.file, loc.line);
50  sink << "'" << token << "' : " << reason << " " << extra << "\n";
51 }
52 
54 {
55  mInfoSink.debug << str;
56 }
57 
59  const pp::SourceLocation& loc,
60  const std::string& text)
61 {
62  writeInfo(severity(id), loc, message(id), text, "");
63 }
GLsizei GLenum GLboolean sink
Definition: glew.h:4448
TPrefixType
Definition: InfoSink.h:23
virtual ~TDiagnostics()
Definition: Diagnostics.cpp:20
TInfoSinkBase debug
Definition: InfoSink.h:111
GLenum severity
Definition: glew.h:2538
void writeInfo(Severity severity, const pp::SourceLocation &loc, const std::string &reason, const std::string &token, const std::string &extra)
Definition: Diagnostics.cpp:24
virtual void print(ID id, const pp::SourceLocation &loc, const std::string &text)
Definition: Diagnostics.cpp:58
#define UNREACHABLE()
Definition: debug.h:47
void writeDebug(const std::string &str)
Definition: Diagnostics.cpp:53
GLsizei const GLcharARB ** string
Definition: glew.h:5638
std::string message(ID id)
Severity severity(ID id)
#define str(s)
TInfoSinkBase info
Definition: InfoSink.h:110
TDiagnostics(TInfoSink &infoSink)
Definition: Diagnostics.cpp:13
void location(int file, int line)
Definition: InfoSink.cpp:34
void prefix(TPrefixType p)
Definition: InfoSink.cpp:9