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 SAMPLE = 308, 108 CENTROID = 309, 109 FLAT = 310, 110 SMOOTH = 311, 111 NOPERSPECTIVE = 312, 112 PATCH = 313, 113 READONLY = 314, 114 WRITEONLY = 315, 115 COHERENT = 316, 116 RESTRICT = 317, 117 VOLATILE = 318, 118 SHARED = 319, 119 STRUCT = 320, 120 VOID_TYPE = 321, 121 WHILE = 322, 122 SAMPLER2D = 323, 123 SAMPLERCUBE = 324, 124 SAMPLER_EXTERNAL_OES = 325, 125 SAMPLER2DRECT = 326, 126 SAMPLER2DARRAY = 327, 127 ISAMPLER2D = 328, 128 ISAMPLER3D = 329, 129 ISAMPLERCUBE = 330, 130 ISAMPLER2DARRAY = 331, 131 USAMPLER2D = 332, 132 USAMPLER3D = 333, 133 USAMPLERCUBE = 334, 134 USAMPLER2DARRAY = 335, 135 SAMPLER2DMS = 336, 136 ISAMPLER2DMS = 337, 137 USAMPLER2DMS = 338, 138 SAMPLER2DMSARRAY = 339, 139 ISAMPLER2DMSARRAY = 340, 140 USAMPLER2DMSARRAY = 341, 141 SAMPLER3D = 342, 142 SAMPLER3DRECT = 343, 143 SAMPLER2DSHADOW = 344, 144 SAMPLERCUBESHADOW = 345, 145 SAMPLER2DARRAYSHADOW = 346, 146 SAMPLERVIDEOWEBGL = 347, 147 SAMPLERCUBEARRAYOES = 348, 148 SAMPLERCUBEARRAYSHADOWOES = 349, 149 ISAMPLERCUBEARRAYOES = 350, 150 USAMPLERCUBEARRAYOES = 351, 151 SAMPLERCUBEARRAYEXT = 352, 152 SAMPLERCUBEARRAYSHADOWEXT = 353, 153 ISAMPLERCUBEARRAYEXT = 354, 154 USAMPLERCUBEARRAYEXT = 355, 155 SAMPLERBUFFER = 356, 156 ISAMPLERBUFFER = 357, 157 USAMPLERBUFFER = 358, 158 SAMPLEREXTERNAL2DY2YEXT = 359, 159 IMAGE2D = 360, 160 IIMAGE2D = 361, 161 UIMAGE2D = 362, 162 IMAGE3D = 363, 163 IIMAGE3D = 364, 164 UIMAGE3D = 365, 165 IMAGE2DARRAY = 366, 166 IIMAGE2DARRAY = 367, 167 UIMAGE2DARRAY = 368, 168 IMAGECUBE = 369, 169 IIMAGECUBE = 370, 170 UIMAGECUBE = 371, 171 IMAGECUBEARRAYOES = 372, 172 IIMAGECUBEARRAYOES = 373, 173 UIMAGECUBEARRAYOES = 374, 174 IMAGECUBEARRAYEXT = 375, 175 IIMAGECUBEARRAYEXT = 376, 176 UIMAGECUBEARRAYEXT = 377, 177 IMAGEBUFFER = 378, 178 IIMAGEBUFFER = 379, 179 UIMAGEBUFFER = 380, 180 ATOMICUINT = 381, 181 LAYOUT = 382, 182 YUVCSCSTANDARDEXT = 383, 183 YUVCSCSTANDARDEXTCONSTANT = 384, 184 IDENTIFIER = 385, 185 TYPE_NAME = 386, 186 FLOATCONSTANT = 387, 187 INTCONSTANT = 388, 188 UINTCONSTANT = 389, 189 BOOLCONSTANT = 390, 190 FIELD_SELECTION = 391, 191 LEFT_OP = 392, 192 RIGHT_OP = 393, 193 INC_OP = 394, 194 DEC_OP = 395, 195 LE_OP = 396, 196 GE_OP = 397, 197 EQ_OP = 398, 198 NE_OP = 399, 199 AND_OP = 400, 200 OR_OP = 401, 201 XOR_OP = 402, 202 MUL_ASSIGN = 403, 203 DIV_ASSIGN = 404, 204 ADD_ASSIGN = 405, 205 MOD_ASSIGN = 406, 206 LEFT_ASSIGN = 407, 207 RIGHT_ASSIGN = 408, 208 AND_ASSIGN = 409, 209 XOR_ASSIGN = 410, 210 OR_ASSIGN = 411, 211 SUB_ASSIGN = 412, 212 LEFT_PAREN = 413, 213 RIGHT_PAREN = 414, 214 LEFT_BRACKET = 415, 215 RIGHT_BRACKET = 416, 216 LEFT_BRACE = 417, 217 RIGHT_BRACE = 418, 218 DOT = 419, 219 COMMA = 420, 220 COLON = 421, 221 EQUAL = 422, 222 SEMICOLON = 423, 223 BANG = 424, 224 DASH = 425, 225 TILDE = 426, 226 PLUS = 427, 227 STAR = 428, 228 SLASH = 429, 229 PERCENT = 430, 230 LEFT_ANGLE = 431, 231 RIGHT_ANGLE = 432, 232 VERTICAL_BAR = 433, 233 CARET = 434, 234 AMPERSAND = 435, 235 QUESTION = 436 236 }; 237 #endif 238 239 /* Value type. */ 240 #if !defined YYSTYPE && !defined YYSTYPE_IS_DECLARED 241 242 union YYSTYPE 243 { 244 245 struct 246 { 247 union 248 { 249 const char *string; // pool allocated. 250 float f; 251 int i; 252 unsigned int u; 253 bool b; 254 }; 255 const TSymbol *symbol; 256 } lex; 257 struct 258 { 259 TOperator op; 260 union 261 { 262 TIntermNode *intermNode; 263 TIntermNodePair nodePair; 264 TIntermTyped *intermTypedNode; 265 TIntermAggregate *intermAggregate; 266 TIntermBlock *intermBlock; 267 TIntermDeclaration *intermDeclaration; 268 TIntermFunctionPrototype *intermFunctionPrototype; 269 TIntermSwitch *intermSwitch; 270 TIntermCase *intermCase; 271 }; 272 union 273 { 274 TVector<unsigned int> *arraySizes; 275 TTypeSpecifierNonArray typeSpecifierNonArray; 276 TPublicType type; 277 TPrecision precision; 278 TLayoutQualifier layoutQualifier; 279 TQualifier qualifier; 280 TFunction *function; 281 TFunctionLookup *functionLookup; 282 TParameter param; 283 TDeclarator *declarator; 284 TDeclaratorList *declaratorList; 285 TFieldList *fieldList; 286 TQualifierWrapperBase *qualifierWrapper; 287 TTypeQualifierBuilder *typeQualifierBuilder; 288 }; 289 } interm; 290 }; 291 292 typedef union YYSTYPE YYSTYPE; 293 # define YYSTYPE_IS_TRIVIAL 1 294 # define YYSTYPE_IS_DECLARED 1 295 #endif 296 297 /* Location type. */ 298 #if !defined YYLTYPE && !defined YYLTYPE_IS_DECLARED 299 typedef struct YYLTYPE YYLTYPE; 300 struct YYLTYPE 301 { 302 int first_line; 303 int first_column; 304 int last_line; 305 int last_column; 306 }; 307 # define YYLTYPE_IS_DECLARED 1 308 # define YYLTYPE_IS_TRIVIAL 1 309 #endif 310 311 int yyparse(TParseContext *context, void *scanner); 312 313 #endif /* !YY_YY_GLSLANG_TAB_AUTOGEN_H_INCLUDED */ 314