blob: cd59658ff76c95778f50d419e9a743e6322c92a5 [file] [log] [blame]
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +00001//
2// Copyright (c) 2002-2010 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
Geoff Lang17732822013-08-29 13:46:49 -04007#include "compiler/translator/InfoSink.h"
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +00008
Jamie Madill075edd82013-07-08 13:30:19 -04009void TInfoSinkBase::prefix(TPrefixType p) {
10 switch(p) {
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000011 case EPrefixNone:
12 break;
13 case EPrefixWarning:
14 sink.append("WARNING: ");
15 break;
16 case EPrefixError:
17 sink.append("ERROR: ");
18 break;
19 case EPrefixInternalError:
20 sink.append("INTERNAL ERROR: ");
21 break;
22 case EPrefixUnimplemented:
23 sink.append("UNIMPLEMENTED: ");
24 break;
25 case EPrefixNote:
26 sink.append("NOTE: ");
27 break;
28 default:
29 sink.append("UNKOWN ERROR: ");
30 break;
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000031 }
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000032}
33
Jamie Madill075edd82013-07-08 13:30:19 -040034void TInfoSinkBase::location(int file, int line) {
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000035 TPersistStringStream stream;
36 if (line)
Jamie Madill075edd82013-07-08 13:30:19 -040037 stream << file << ":" << line;
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000038 else
Jamie Madill075edd82013-07-08 13:30:19 -040039 stream << file << ":? ";
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000040 stream << ": ";
41
42 sink.append(stream.str());
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000043}
44
Jamie Madill075edd82013-07-08 13:30:19 -040045void TInfoSinkBase::location(const TSourceLoc& loc) {
46 location(loc.first_file, loc.first_line);
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000047}
48
Jamie Madill075edd82013-07-08 13:30:19 -040049void TInfoSinkBase::message(TPrefixType p, const TSourceLoc& loc, const char* m) {
50 prefix(p);
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000051 location(loc);
Jamie Madill075edd82013-07-08 13:30:19 -040052 sink.append(m);
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000053 sink.append("\n");
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000054}