1 /* A Bison parser, made by GNU Bison 3.3.2. */ 2 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 6 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 /* Undocumented macros, especially those whose name start with YY_, 35 are private implementation details. Do not rely on them. */ 36 37 #ifndef YY_YY_GLSLANG_TAB_AUTOGEN_H_INCLUDED 38 #define YY_YY_GLSLANG_TAB_AUTOGEN_H_INCLUDED 39 /* Debug traces. */ 40 #ifndef YYDEBUG 41 # define YYDEBUG 0 42 #endif 43 #if YYDEBUG 44 extern int yydebug; 45 #endif 46 /* "%code requires" blocks. */ 47 48 #define YYLTYPE TSourceLoc 49 #define YYLTYPE_IS_DECLARED 1 50 #define YYLTYPE_IS_TRIVIAL 1 51 52 /* Token type. */ 53 #ifndef YYTOKENTYPE 54 # define YYTOKENTYPE 55 enum yytokentype 56 { 57 INVARIANT = 258, 58 PRECISE = 259, 59 HIGH_PRECISION = 260, 60 MEDIUM_PRECISION = 261, 61 LOW_PRECISION = 262, 62 PRECISION = 263, 63 ATTRIBUTE = 264, 64 CONST_QUAL = 265, 65 BOOL_TYPE = 266, 66 FLOAT_TYPE = 267, 67 INT_TYPE = 268, 68 UINT_TYPE = 269, 69 BREAK = 270, 70 CONTINUE = 271, 71 DO = 272, 72 ELSE = 273, 73 FOR = 274, 74 IF = 275, 75 DISCARD = 276, 76 RETURN = 277, 77 SWITCH = 278, 78 CASE = 279, 79 DEFAULT = 280, 80 BVEC2 = 281, 81 BVEC3 = 282, 82 BVEC4 = 283, 83 IVEC2 = 284, 84 IVEC3 = 285, 85 IVEC4 = 286, 86 VEC2 = 287, 87 VEC3 = 288, 88 VEC4 = 289, 89 UVEC2 = 290, 90 UVEC3 = 291, 91 UVEC4 = 292, 92 MATRIX2 = 293, 93 MATRIX3 = 294, 94 MATRIX4 = 295, 95 IN_QUAL = 296, 96 OUT_QUAL = 297, 97 INOUT_QUAL = 298, 98 UNIFORM = 299, 99 BUFFER = 300, 100 VARYING = 301, 101 MATRIX2x3 = 302, 102 MATRIX3x2 = 303, 103 MATRIX2x4 = 304, 104 MATRIX4x2 = 305, 105 MATRIX3x4 = 306, 106 MATRIX4x3 = 307, 107 CENTROID = 308, 108 FLAT = 309, 109 SMOOTH = 310, 110 NOPERSPECTIVE = 311, 111 READONLY = 312, 112 WRITEONLY = 313, 113 COHERENT = 314, 114 RESTRICT = 315, 115 VOLATILE = 316, 116 SHARED = 317, 117 STRUCT = 318, 118 VOID_TYPE = 319, 119 WHILE = 320, 120 SAMPLER2D = 321, 121 SAMPLERCUBE = 322, 122 SAMPLER_EXTERNAL_OES = 323, 123 SAMPLER2DRECT = 324, 124 SAMPLER2DARRAY = 325, 125 ISAMPLER2D = 326, 126 ISAMPLER3D = 327, 127 ISAMPLERCUBE = 328, 128 ISAMPLER2DARRAY = 329, 129 USAMPLER2D = 330, 130 USAMPLER3D = 331, 131 USAMPLERCUBE = 332, 132 USAMPLER2DARRAY = 333, 133 SAMPLER2DMS = 334, 134 ISAMPLER2DMS = 335, 135 USAMPLER2DMS = 336, 136 SAMPLER2DMSARRAY = 337, 137 ISAMPLER2DMSARRAY = 338, 138 USAMPLER2DMSARRAY = 339, 139 SAMPLER3D = 340, 140 SAMPLER3DRECT = 341, 141 SAMPLER2DSHADOW = 342, 142 SAMPLERCUBESHADOW = 343, 143 SAMPLER2DARRAYSHADOW = 344, 144 SAMPLERVIDEOWEBGL = 345, 145 SAMPLERCUBEARRAYOES = 346, 146 SAMPLERCUBEARRAYSHADOWOES = 347, 147 ISAMPLERCUBEARRAYOES = 348, 148 USAMPLERCUBEARRAYOES = 349, 149 SAMPLERCUBEARRAYEXT = 350, 150 SAMPLERCUBEARRAYSHADOWEXT = 351, 151 ISAMPLERCUBEARRAYEXT = 352, 152 USAMPLERCUBEARRAYEXT = 353, 153 SAMPLEREXTERNAL2DY2YEXT = 354, 154 IMAGE2D = 355, 155 IIMAGE2D = 356, 156 UIMAGE2D = 357, 157 IMAGE3D = 358, 158 IIMAGE3D = 359, 159 UIMAGE3D = 360, 160 IMAGE2DARRAY = 361, 161 IIMAGE2DARRAY = 362, 162 UIMAGE2DARRAY = 363, 163 IMAGECUBE = 364, 164 IIMAGECUBE = 365, 165 UIMAGECUBE = 366, 166 IMAGECUBEARRAYOES = 367, 167 IIMAGECUBEARRAYOES = 368, 168 UIMAGECUBEARRAYOES = 369, 169 IMAGECUBEARRAYEXT = 370, 170 IIMAGECUBEARRAYEXT = 371, 171 UIMAGECUBEARRAYEXT = 372, 172 ATOMICUINT = 373, 173 LAYOUT = 374, 174 YUVCSCSTANDARDEXT = 375, 175 YUVCSCSTANDARDEXTCONSTANT = 376, 176 IDENTIFIER = 377, 177 TYPE_NAME = 378, 178 FLOATCONSTANT = 379, 179 INTCONSTANT = 380, 180 UINTCONSTANT = 381, 181 BOOLCONSTANT = 382, 182 FIELD_SELECTION = 383, 183 LEFT_OP = 384, 184 RIGHT_OP = 385, 185 INC_OP = 386, 186 DEC_OP = 387, 187 LE_OP = 388, 188 GE_OP = 389, 189 EQ_OP = 390, 190 NE_OP = 391, 191 AND_OP = 392, 192 OR_OP = 393, 193 XOR_OP = 394, 194 MUL_ASSIGN = 395, 195 DIV_ASSIGN = 396, 196 ADD_ASSIGN = 397, 197 MOD_ASSIGN = 398, 198 LEFT_ASSIGN = 399, 199 RIGHT_ASSIGN = 400, 200 AND_ASSIGN = 401, 201 XOR_ASSIGN = 402, 202 OR_ASSIGN = 403, 203 SUB_ASSIGN = 404, 204 LEFT_PAREN = 405, 205 RIGHT_PAREN = 406, 206 LEFT_BRACKET = 407, 207 RIGHT_BRACKET = 408, 208 LEFT_BRACE = 409, 209 RIGHT_BRACE = 410, 210 DOT = 411, 211 COMMA = 412, 212 COLON = 413, 213 EQUAL = 414, 214 SEMICOLON = 415, 215 BANG = 416, 216 DASH = 417, 217 TILDE = 418, 218 PLUS = 419, 219 STAR = 420, 220 SLASH = 421, 221 PERCENT = 422, 222 LEFT_ANGLE = 423, 223 RIGHT_ANGLE = 424, 224 VERTICAL_BAR = 425, 225 CARET = 426, 226 AMPERSAND = 427, 227 QUESTION = 428 228 }; 229 #endif 230 231 /* Value type. */ 232 #if !defined YYSTYPE && !defined YYSTYPE_IS_DECLARED 233 234 union YYSTYPE 235 { 236 237 struct 238 { 239 union 240 { 241 const char *string; // pool allocated. 242 float f; 243 int i; 244 unsigned int u; 245 bool b; 246 }; 247 const TSymbol *symbol; 248 } lex; 249 struct 250 { 251 TOperator op; 252 union 253 { 254 TIntermNode *intermNode; 255 TIntermNodePair nodePair; 256 TIntermTyped *intermTypedNode; 257 TIntermAggregate *intermAggregate; 258 TIntermBlock *intermBlock; 259 TIntermDeclaration *intermDeclaration; 260 TIntermFunctionPrototype *intermFunctionPrototype; 261 TIntermSwitch *intermSwitch; 262 TIntermCase *intermCase; 263 }; 264 union 265 { 266 TVector<unsigned int> *arraySizes; 267 TTypeSpecifierNonArray typeSpecifierNonArray; 268 TPublicType type; 269 TPrecision precision; 270 TLayoutQualifier layoutQualifier; 271 TQualifier qualifier; 272 TFunction *function; 273 TFunctionLookup *functionLookup; 274 TParameter param; 275 TDeclarator *declarator; 276 TDeclaratorList *declaratorList; 277 TFieldList *fieldList; 278 TQualifierWrapperBase *qualifierWrapper; 279 TTypeQualifierBuilder *typeQualifierBuilder; 280 }; 281 } interm; 282 }; 283 284 typedef union YYSTYPE YYSTYPE; 285 # define YYSTYPE_IS_TRIVIAL 1 286 # define YYSTYPE_IS_DECLARED 1 287 #endif 288 289 /* Location type. */ 290 #if !defined YYLTYPE && !defined YYLTYPE_IS_DECLARED 291 typedef struct YYLTYPE YYLTYPE; 292 struct YYLTYPE 293 { 294 int first_line; 295 int first_column; 296 int last_line; 297 int last_column; 298 }; 299 # define YYLTYPE_IS_DECLARED 1 300 # define YYLTYPE_IS_TRIVIAL 1 301 #endif 302 303 int yyparse(TParseContext *context, void *scanner); 304 305 #endif /* !YY_YY_GLSLANG_TAB_AUTOGEN_H_INCLUDED */ 306