OSDN Git Service

Increment the version number.
[android-x86/external-swiftshader.git] / src / Radiance / compiler / preprocessor / Diagnostics.h
1 //\r
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
5 //\r
6 \r
7 #ifndef COMPILER_PREPROCESSOR_DIAGNOSTICS_H_\r
8 #define COMPILER_PREPROCESSOR_DIAGNOSTICS_H_\r
9 \r
10 #include <string>\r
11 \r
12 namespace pp\r
13 {\r
14 \r
15 struct SourceLocation;\r
16 \r
17 // Base class for reporting diagnostic messages.\r
18 // Derived classes are responsible for formatting and printing the messages.\r
19 class Diagnostics\r
20 {\r
21   public:\r
22     enum Severity\r
23     {\r
24         PP_ERROR,\r
25         PP_WARNING\r
26     };\r
27     enum ID\r
28     {\r
29         ERROR_BEGIN,\r
30         INTERNAL_ERROR,\r
31         OUT_OF_MEMORY,\r
32         INVALID_CHARACTER,\r
33         INVALID_NUMBER,\r
34         INTEGER_OVERFLOW,\r
35         FLOAT_OVERFLOW,\r
36         TOKEN_TOO_LONG,\r
37         INVALID_EXPRESSION,\r
38         DIVISION_BY_ZERO,\r
39         EOF_IN_COMMENT,\r
40         UNEXPECTED_TOKEN,\r
41         DIRECTIVE_INVALID_NAME,\r
42         MACRO_NAME_RESERVED,\r
43         MACRO_REDEFINED,\r
44         MACRO_PREDEFINED_REDEFINED,\r
45         MACRO_PREDEFINED_UNDEFINED,\r
46         MACRO_UNTERMINATED_INVOCATION,\r
47         MACRO_TOO_FEW_ARGS,\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
64         ERROR_END,\r
65 \r
66         WARNING_BEGIN,\r
67         EOF_IN_DIRECTIVE,\r
68         CONDITIONAL_UNEXPECTED_TOKEN,\r
69         UNRECOGNIZED_PRAGMA,\r
70         WARNING_END\r
71     };\r
72 \r
73     virtual ~Diagnostics();\r
74 \r
75     void report(ID id, const SourceLocation& loc, const std::string& text);\r
76 \r
77   protected:\r
78     Severity severity(ID id);\r
79     std::string message(ID id);\r
80 \r
81     virtual void print(ID id,\r
82                        const SourceLocation& loc,\r
83                        const std::string& text) = 0;\r
84 };\r
85 \r
86 }  // namespace pp\r
87 #endif  // COMPILER_PREPROCESSOR_DIAGNOSTICS_H_\r