2 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
\r
3 // Use of this source code is governed by a BSD-style license that can be
\r
4 // found in the LICENSE file.
\r
7 #ifndef COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
\r
8 #define COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
\r
15 struct SourceLocation;
\r
17 // Base class for reporting diagnostic messages.
\r
18 // Derived classes are responsible for formatting and printing the messages.
\r
41 DIRECTIVE_INVALID_NAME,
\r
42 MACRO_NAME_RESERVED,
\r
44 MACRO_PREDEFINED_REDEFINED,
\r
45 MACRO_PREDEFINED_UNDEFINED,
\r
46 MACRO_UNTERMINATED_INVOCATION,
\r
48 MACRO_TOO_MANY_ARGS,
\r
49 CONDITIONAL_ENDIF_WITHOUT_IF,
\r
50 CONDITIONAL_ELSE_WITHOUT_IF,
\r
51 CONDITIONAL_ELSE_AFTER_ELSE,
\r
52 CONDITIONAL_ELIF_WITHOUT_IF,
\r
53 CONDITIONAL_ELIF_AFTER_ELSE,
\r
54 CONDITIONAL_UNTERMINATED,
\r
55 INVALID_EXTENSION_NAME,
\r
56 INVALID_EXTENSION_BEHAVIOR,
\r
57 INVALID_EXTENSION_DIRECTIVE,
\r
58 INVALID_VERSION_NUMBER,
\r
59 INVALID_VERSION_DIRECTIVE,
\r
60 VERSION_NOT_FIRST_STATEMENT,
\r
61 INVALID_LINE_NUMBER,
\r
62 INVALID_FILE_NUMBER,
\r
63 INVALID_LINE_DIRECTIVE,
\r
68 CONDITIONAL_UNEXPECTED_TOKEN,
\r
69 UNRECOGNIZED_PRAGMA,
\r
73 virtual ~Diagnostics();
\r
75 void report(ID id, const SourceLocation& loc, const std::string& text);
\r
78 Severity severity(ID id);
\r
79 std::string message(ID id);
\r
81 virtual void print(ID id,
\r
82 const SourceLocation& loc,
\r
83 const std::string& text) = 0;
\r
87 #endif // COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
\r