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 298