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