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