Merge remote branch 'origin/master' into pipe-video
[mesa.git] / 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 STRUCT = 328,
112 VOID_TOK = 329,
113 WHILE = 330,
114 IDENTIFIER = 331,
115 TYPE_IDENTIFIER = 332,
116 NEW_IDENTIFIER = 333,
117 FLOATCONSTANT = 334,
118 INTCONSTANT = 335,
119 UINTCONSTANT = 336,
120 BOOLCONSTANT = 337,
121 FIELD_SELECTION = 338,
122 LEFT_OP = 339,
123 RIGHT_OP = 340,
124 INC_OP = 341,
125 DEC_OP = 342,
126 LE_OP = 343,
127 GE_OP = 344,
128 EQ_OP = 345,
129 NE_OP = 346,
130 AND_OP = 347,
131 OR_OP = 348,
132 XOR_OP = 349,
133 MUL_ASSIGN = 350,
134 DIV_ASSIGN = 351,
135 ADD_ASSIGN = 352,
136 MOD_ASSIGN = 353,
137 LEFT_ASSIGN = 354,
138 RIGHT_ASSIGN = 355,
139 AND_ASSIGN = 356,
140 XOR_ASSIGN = 357,
141 OR_ASSIGN = 358,
142 SUB_ASSIGN = 359,
143 INVARIANT = 360,
144 LOWP = 361,
145 MEDIUMP = 362,
146 HIGHP = 363,
147 SUPERP = 364,
148 PRECISION = 365,
149 VERSION = 366,
150 EXTENSION = 367,
151 LINE = 368,
152 COLON = 369,
153 EOL = 370,
154 INTERFACE = 371,
155 OUTPUT = 372,
156 PRAGMA_DEBUG_ON = 373,
157 PRAGMA_DEBUG_OFF = 374,
158 PRAGMA_OPTIMIZE_ON = 375,
159 PRAGMA_OPTIMIZE_OFF = 376,
160 PRAGMA_INVARIANT_ALL = 377,
161 LAYOUT_TOK = 378,
162 ASM = 379,
163 CLASS = 380,
164 UNION = 381,
165 ENUM = 382,
166 TYPEDEF = 383,
167 TEMPLATE = 384,
168 THIS = 385,
169 PACKED_TOK = 386,
170 GOTO = 387,
171 INLINE_TOK = 388,
172 NOINLINE = 389,
173 VOLATILE = 390,
174 PUBLIC_TOK = 391,
175 STATIC = 392,
176 EXTERN = 393,
177 EXTERNAL = 394,
178 LONG_TOK = 395,
179 SHORT_TOK = 396,
180 DOUBLE_TOK = 397,
181 HALF = 398,
182 FIXED_TOK = 399,
183 UNSIGNED = 400,
184 INPUT_TOK = 401,
185 OUPTUT = 402,
186 HVEC2 = 403,
187 HVEC3 = 404,
188 HVEC4 = 405,
189 DVEC2 = 406,
190 DVEC3 = 407,
191 DVEC4 = 408,
192 FVEC2 = 409,
193 FVEC3 = 410,
194 FVEC4 = 411,
195 SAMPLER2DRECT = 412,
196 SAMPLER3DRECT = 413,
197 SAMPLER2DRECTSHADOW = 414,
198 SIZEOF = 415,
199 CAST = 416,
200 NAMESPACE = 417,
201 USING = 418,
202 ERROR_TOK = 419,
203 COMMON = 420,
204 PARTITION = 421,
205 ACTIVE = 422,
206 SAMPLERBUFFER = 423,
207 FILTER = 424,
208 IMAGE1D = 425,
209 IMAGE2D = 426,
210 IMAGE3D = 427,
211 IMAGECUBE = 428,
212 IMAGE1DARRAY = 429,
213 IMAGE2DARRAY = 430,
214 IIMAGE1D = 431,
215 IIMAGE2D = 432,
216 IIMAGE3D = 433,
217 IIMAGECUBE = 434,
218 IIMAGE1DARRAY = 435,
219 IIMAGE2DARRAY = 436,
220 UIMAGE1D = 437,
221 UIMAGE2D = 438,
222 UIMAGE3D = 439,
223 UIMAGECUBE = 440,
224 UIMAGE1DARRAY = 441,
225 UIMAGE2DARRAY = 442,
226 IMAGE1DSHADOW = 443,
227 IMAGE2DSHADOW = 444,
228 IMAGEBUFFER = 445,
229 IIMAGEBUFFER = 446,
230 UIMAGEBUFFER = 447,
231 IMAGE1DARRAYSHADOW = 448,
232 IMAGE2DARRAYSHADOW = 449,
233 ROW_MAJOR = 450
234 };
235 #endif
236
237
238
239 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
240 typedef union YYSTYPE
241 {
242
243 /* Line 1685 of yacc.c */
244 #line 52 "glsl_parser.ypp"
245
246 int n;
247 float real;
248 char *identifier;
249
250 struct ast_type_qualifier type_qualifier;
251
252 ast_node *node;
253 ast_type_specifier *type_specifier;
254 ast_fully_specified_type *fully_specified_type;
255 ast_function *function;
256 ast_parameter_declarator *parameter_declarator;
257 ast_function_definition *function_definition;
258 ast_compound_statement *compound_statement;
259 ast_expression *expression;
260 ast_declarator_list *declarator_list;
261 ast_struct_specifier *struct_specifier;
262 ast_declaration *declaration;
263
264 struct {
265 ast_node *cond;
266 ast_expression *rest;
267 } for_rest_statement;
268
269 struct {
270 ast_node *then_statement;
271 ast_node *else_statement;
272 } selection_rest_statement;
273
274
275
276 /* Line 1685 of yacc.c */
277 #line 278 "glsl_parser.h"
278 } YYSTYPE;
279 # define YYSTYPE_IS_TRIVIAL 1
280 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
281 # define YYSTYPE_IS_DECLARED 1
282 #endif
283
284
285
286 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
287 typedef struct YYLTYPE
288 {
289 int first_line;
290 int first_column;
291 int last_line;
292 int last_column;
293 } YYLTYPE;
294 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
295 # define YYLTYPE_IS_DECLARED 1
296 # define YYLTYPE_IS_TRIVIAL 1
297 #endif
298
299
300