[OPENGL]
[reactos.git] / reactos / dll / opengl / mesa / src / glsl / glsl_parser.h
1 /* A Bison parser, made by GNU Bison 2.4.3. */
2
3 /* Skeleton interface for Bison's Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
7
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
30
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
33
34
35 /* Tokens. */
36 #ifndef YYTOKENTYPE
37 # define YYTOKENTYPE
38 /* Put the tokens into the symbol table, so that GDB and other debuggers
39 know about them. */
40 enum yytokentype {
41 ATTRIBUTE = 258,
42 CONST_TOK = 259,
43 BOOL_TOK = 260,
44 FLOAT_TOK = 261,
45 INT_TOK = 262,
46 UINT_TOK = 263,
47 BREAK = 264,
48 CONTINUE = 265,
49 DO = 266,
50 ELSE = 267,
51 FOR = 268,
52 IF = 269,
53 DISCARD = 270,
54 RETURN = 271,
55 SWITCH = 272,
56 CASE = 273,
57 DEFAULT = 274,
58 BVEC2 = 275,
59 BVEC3 = 276,
60 BVEC4 = 277,
61 IVEC2 = 278,
62 IVEC3 = 279,
63 IVEC4 = 280,
64 UVEC2 = 281,
65 UVEC3 = 282,
66 UVEC4 = 283,
67 VEC2 = 284,
68 VEC3 = 285,
69 VEC4 = 286,
70 CENTROID = 287,
71 IN_TOK = 288,
72 OUT_TOK = 289,
73 INOUT_TOK = 290,
74 UNIFORM = 291,
75 VARYING = 292,
76 NOPERSPECTIVE = 293,
77 FLAT = 294,
78 SMOOTH = 295,
79 MAT2X2 = 296,
80 MAT2X3 = 297,
81 MAT2X4 = 298,
82 MAT3X2 = 299,
83 MAT3X3 = 300,
84 MAT3X4 = 301,
85 MAT4X2 = 302,
86 MAT4X3 = 303,
87 MAT4X4 = 304,
88 SAMPLER1D = 305,
89 SAMPLER2D = 306,
90 SAMPLER3D = 307,
91 SAMPLERCUBE = 308,
92 SAMPLER1DSHADOW = 309,
93 SAMPLER2DSHADOW = 310,
94 SAMPLERCUBESHADOW = 311,
95 SAMPLER1DARRAY = 312,
96 SAMPLER2DARRAY = 313,
97 SAMPLER1DARRAYSHADOW = 314,
98 SAMPLER2DARRAYSHADOW = 315,
99 ISAMPLER1D = 316,
100 ISAMPLER2D = 317,
101 ISAMPLER3D = 318,
102 ISAMPLERCUBE = 319,
103 ISAMPLER1DARRAY = 320,
104 ISAMPLER2DARRAY = 321,
105 USAMPLER1D = 322,
106 USAMPLER2D = 323,
107 USAMPLER3D = 324,
108 USAMPLERCUBE = 325,
109 USAMPLER1DARRAY = 326,
110 USAMPLER2DARRAY = 327,
111 SAMPLEREXTERNALOES = 328,
112 STRUCT = 329,
113 VOID_TOK = 330,
114 WHILE = 331,
115 IDENTIFIER = 332,
116 TYPE_IDENTIFIER = 333,
117 NEW_IDENTIFIER = 334,
118 FLOATCONSTANT = 335,
119 INTCONSTANT = 336,
120 UINTCONSTANT = 337,
121 BOOLCONSTANT = 338,
122 FIELD_SELECTION = 339,
123 LEFT_OP = 340,
124 RIGHT_OP = 341,
125 INC_OP = 342,
126 DEC_OP = 343,
127 LE_OP = 344,
128 GE_OP = 345,
129 EQ_OP = 346,
130 NE_OP = 347,
131 AND_OP = 348,
132 OR_OP = 349,
133 XOR_OP = 350,
134 MUL_ASSIGN = 351,
135 DIV_ASSIGN = 352,
136 ADD_ASSIGN = 353,
137 MOD_ASSIGN = 354,
138 LEFT_ASSIGN = 355,
139 RIGHT_ASSIGN = 356,
140 AND_ASSIGN = 357,
141 XOR_ASSIGN = 358,
142 OR_ASSIGN = 359,
143 SUB_ASSIGN = 360,
144 INVARIANT = 361,
145 LOWP = 362,
146 MEDIUMP = 363,
147 HIGHP = 364,
148 SUPERP = 365,
149 PRECISION = 366,
150 VERSION_TOK = 367,
151 EXTENSION = 368,
152 LINE = 369,
153 COLON = 370,
154 EOL = 371,
155 INTERFACE = 372,
156 OUTPUT = 373,
157 PRAGMA_DEBUG_ON = 374,
158 PRAGMA_DEBUG_OFF = 375,
159 PRAGMA_OPTIMIZE_ON = 376,
160 PRAGMA_OPTIMIZE_OFF = 377,
161 PRAGMA_INVARIANT_ALL = 378,
162 LAYOUT_TOK = 379,
163 ASM = 380,
164 CLASS = 381,
165 UNION = 382,
166 ENUM = 383,
167 TYPEDEF = 384,
168 TEMPLATE = 385,
169 THIS = 386,
170 PACKED_TOK = 387,
171 GOTO = 388,
172 INLINE_TOK = 389,
173 NOINLINE = 390,
174 VOLATILE = 391,
175 PUBLIC_TOK = 392,
176 STATIC = 393,
177 EXTERN = 394,
178 EXTERNAL = 395,
179 LONG_TOK = 396,
180 SHORT_TOK = 397,
181 DOUBLE_TOK = 398,
182 HALF = 399,
183 FIXED_TOK = 400,
184 UNSIGNED = 401,
185 INPUT_TOK = 402,
186 OUPTUT = 403,
187 HVEC2 = 404,
188 HVEC3 = 405,
189 HVEC4 = 406,
190 DVEC2 = 407,
191 DVEC3 = 408,
192 DVEC4 = 409,
193 FVEC2 = 410,
194 FVEC3 = 411,
195 FVEC4 = 412,
196 SAMPLER2DRECT = 413,
197 SAMPLER3DRECT = 414,
198 SAMPLER2DRECTSHADOW = 415,
199 SIZEOF = 416,
200 CAST = 417,
201 NAMESPACE = 418,
202 USING = 419,
203 ERROR_TOK = 420,
204 COMMON = 421,
205 PARTITION = 422,
206 ACTIVE = 423,
207 SAMPLERBUFFER = 424,
208 FILTER = 425,
209 IMAGE1D = 426,
210 IMAGE2D = 427,
211 IMAGE3D = 428,
212 IMAGECUBE = 429,
213 IMAGE1DARRAY = 430,
214 IMAGE2DARRAY = 431,
215 IIMAGE1D = 432,
216 IIMAGE2D = 433,
217 IIMAGE3D = 434,
218 IIMAGECUBE = 435,
219 IIMAGE1DARRAY = 436,
220 IIMAGE2DARRAY = 437,
221 UIMAGE1D = 438,
222 UIMAGE2D = 439,
223 UIMAGE3D = 440,
224 UIMAGECUBE = 441,
225 UIMAGE1DARRAY = 442,
226 UIMAGE2DARRAY = 443,
227 IMAGE1DSHADOW = 444,
228 IMAGE2DSHADOW = 445,
229 IMAGEBUFFER = 446,
230 IIMAGEBUFFER = 447,
231 UIMAGEBUFFER = 448,
232 IMAGE1DARRAYSHADOW = 449,
233 IMAGE2DARRAYSHADOW = 450,
234 ROW_MAJOR = 451
235 };
236 #endif
237
238
239
240 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
241 typedef union YYSTYPE
242 {
243
244 /* Line 1685 of yacc.c */
245 #line 58 "glsl_parser.yy"
246
247 int n;
248 float real;
249 char *identifier;
250
251 struct ast_type_qualifier type_qualifier;
252
253 ast_node *node;
254 ast_type_specifier *type_specifier;
255 ast_fully_specified_type *fully_specified_type;
256 ast_function *function;
257 ast_parameter_declarator *parameter_declarator;
258 ast_function_definition *function_definition;
259 ast_compound_statement *compound_statement;
260 ast_expression *expression;
261 ast_declarator_list *declarator_list;
262 ast_struct_specifier *struct_specifier;
263 ast_declaration *declaration;
264 ast_switch_body *switch_body;
265 ast_case_label *case_label;
266 ast_case_label_list *case_label_list;
267 ast_case_statement *case_statement;
268 ast_case_statement_list *case_statement_list;
269
270 struct {
271 ast_node *cond;
272 ast_expression *rest;
273 } for_rest_statement;
274
275 struct {
276 ast_node *then_statement;
277 ast_node *else_statement;
278 } selection_rest_statement;
279
280
281
282 /* Line 1685 of yacc.c */
283 #line 284 "glsl_parser.h"
284 } YYSTYPE;
285 # define YYSTYPE_IS_TRIVIAL 1
286 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
287 # define YYSTYPE_IS_DECLARED 1
288 #endif
289
290
291
292 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
293 typedef struct YYLTYPE
294 {
295 int first_line;
296 int first_column;
297 int last_line;
298 int last_column;
299 } YYLTYPE;
300 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
301 # define YYLTYPE_IS_DECLARED 1
302 # define YYLTYPE_IS_TRIVIAL 1
303 #endif
304
305
306