1/* A Bison parser, made by GNU Bison 3.0.4. */
2
3/* Apple Note: For the avoidance of doubt, Apple elects to distribute this file under the terms of the BSD license. */
4
5/* Bison interface for Yacc-like parsers in C
6
7 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
8
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21
22/* As a special exception, you may create a larger work that contains
23 part or all of the Bison parser skeleton and distribute that work
24 under terms of your choice, so long as that work isn't itself a
25 parser generator using the skeleton or a modified version thereof
26 as a parser skeleton. Alternatively, if you modify or redistribute
27 the parser skeleton itself, you may (at your option) remove this
28 special exception, which will cause the skeleton and the resulting
29 Bison output files to be licensed under the GNU General Public
30 License without this special exception.
31
32 This special exception was added by the Free Software Foundation in
33 version 2.2 of Bison. */
34
35#ifndef YY_YY_GLSLANG_TAB_H_INCLUDED
36#define YY_YY_GLSLANG_TAB_H_INCLUDED
37/* Debug traces. */
38#ifndef YYDEBUG
39# define YYDEBUG 0
40#endif
41#if YYDEBUG
42extern int yydebug;
43#endif
44/* "%code requires" blocks. */
45
46#define YYLTYPE TSourceLoc
47#define YYLTYPE_IS_DECLARED 1
48
49/* Token type. */
50#ifndef YYTOKENTYPE
51# define YYTOKENTYPE
52enum yytokentype
53{
54 INVARIANT = 258,
55 HIGH_PRECISION = 259,
56 MEDIUM_PRECISION = 260,
57 LOW_PRECISION = 261,
58 PRECISION = 262,
59 ATTRIBUTE = 263,
60 CONST_QUAL = 264,
61 BOOL_TYPE = 265,
62 FLOAT_TYPE = 266,
63 INT_TYPE = 267,
64 UINT_TYPE = 268,
65 BREAK = 269,
66 CONTINUE = 270,
67 DO = 271,
68 ELSE = 272,
69 FOR = 273,
70 IF = 274,
71 DISCARD = 275,
72 RETURN = 276,
73 SWITCH = 277,
74 CASE = 278,
75 DEFAULT = 279,
76 BVEC2 = 280,
77 BVEC3 = 281,
78 BVEC4 = 282,
79 IVEC2 = 283,
80 IVEC3 = 284,
81 IVEC4 = 285,
82 VEC2 = 286,
83 VEC3 = 287,
84 VEC4 = 288,
85 UVEC2 = 289,
86 UVEC3 = 290,
87 UVEC4 = 291,
88 MATRIX2 = 292,
89 MATRIX3 = 293,
90 MATRIX4 = 294,
91 IN_QUAL = 295,
92 OUT_QUAL = 296,
93 INOUT_QUAL = 297,
94 UNIFORM = 298,
95 BUFFER = 299,
96 VARYING = 300,
97 MATRIX2x3 = 301,
98 MATRIX3x2 = 302,
99 MATRIX2x4 = 303,
100 MATRIX4x2 = 304,
101 MATRIX3x4 = 305,
102 MATRIX4x3 = 306,
103 CENTROID = 307,
104 FLAT = 308,
105 SMOOTH = 309,
106 READONLY = 310,
107 WRITEONLY = 311,
108 COHERENT = 312,
109 RESTRICT = 313,
110 VOLATILE = 314,
111 SHARED = 315,
112 STRUCT = 316,
113 VOID_TYPE = 317,
114 WHILE = 318,
115 SAMPLER2D = 319,
116 SAMPLERCUBE = 320,
117 SAMPLER_EXTERNAL_OES = 321,
118 SAMPLER2DRECT = 322,
119 SAMPLER2DARRAY = 323,
120 ISAMPLER2D = 324,
121 ISAMPLER3D = 325,
122 ISAMPLERCUBE = 326,
123 ISAMPLER2DARRAY = 327,
124 USAMPLER2D = 328,
125 USAMPLER3D = 329,
126 USAMPLERCUBE = 330,
127 USAMPLER2DARRAY = 331,
128 SAMPLER2DMS = 332,
129 ISAMPLER2DMS = 333,
130 USAMPLER2DMS = 334,
131 SAMPLER2DMSARRAY = 335,
132 ISAMPLER2DMSARRAY = 336,
133 USAMPLER2DMSARRAY = 337,
134 SAMPLER3D = 338,
135 SAMPLER3DRECT = 339,
136 SAMPLER2DSHADOW = 340,
137 SAMPLERCUBESHADOW = 341,
138 SAMPLER2DARRAYSHADOW = 342,
139 SAMPLEREXTERNAL2DY2YEXT = 343,
140 IMAGE2D = 344,
141 IIMAGE2D = 345,
142 UIMAGE2D = 346,
143 IMAGE3D = 347,
144 IIMAGE3D = 348,
145 UIMAGE3D = 349,
146 IMAGE2DARRAY = 350,
147 IIMAGE2DARRAY = 351,
148 UIMAGE2DARRAY = 352,
149 IMAGECUBE = 353,
150 IIMAGECUBE = 354,
151 UIMAGECUBE = 355,
152 ATOMICUINT = 356,
153 LAYOUT = 357,
154 YUVCSCSTANDARDEXT = 358,
155 YUVCSCSTANDARDEXTCONSTANT = 359,
156 IDENTIFIER = 360,
157 TYPE_NAME = 361,
158 FLOATCONSTANT = 362,
159 INTCONSTANT = 363,
160 UINTCONSTANT = 364,
161 BOOLCONSTANT = 365,
162 FIELD_SELECTION = 366,
163 LEFT_OP = 367,
164 RIGHT_OP = 368,
165 INC_OP = 369,
166 DEC_OP = 370,
167 LE_OP = 371,
168 GE_OP = 372,
169 EQ_OP = 373,
170 NE_OP = 374,
171 AND_OP = 375,
172 OR_OP = 376,
173 XOR_OP = 377,
174 MUL_ASSIGN = 378,
175 DIV_ASSIGN = 379,
176 ADD_ASSIGN = 380,
177 MOD_ASSIGN = 381,
178 LEFT_ASSIGN = 382,
179 RIGHT_ASSIGN = 383,
180 AND_ASSIGN = 384,
181 XOR_ASSIGN = 385,
182 OR_ASSIGN = 386,
183 SUB_ASSIGN = 387,
184 LEFT_PAREN = 388,
185 RIGHT_PAREN = 389,
186 LEFT_BRACKET = 390,
187 RIGHT_BRACKET = 391,
188 LEFT_BRACE = 392,
189 RIGHT_BRACE = 393,
190 DOT = 394,
191 COMMA = 395,
192 COLON = 396,
193 EQUAL = 397,
194 SEMICOLON = 398,
195 BANG = 399,
196 DASH = 400,
197 TILDE = 401,
198 PLUS = 402,
199 STAR = 403,
200 SLASH = 404,
201 PERCENT = 405,
202 LEFT_ANGLE = 406,
203 RIGHT_ANGLE = 407,
204 VERTICAL_BAR = 408,
205 CARET = 409,
206 AMPERSAND = 410,
207 QUESTION = 411
208};
209#endif
210
211/* Value type. */
212#if !defined YYSTYPE && !defined YYSTYPE_IS_DECLARED
213
214union YYSTYPE
215{
216
217 struct
218 {
219 union
220 {
221 const char *string; // pool allocated.
222 float f;
223 int i;
224 unsigned int u;
225 bool b;
226 };
227 const TSymbol *symbol;
228 } lex;
229 struct
230 {
231 TOperator op;
232 union
233 {
234 TIntermNode *intermNode;
235 TIntermNodePair nodePair;
236 TIntermTyped *intermTypedNode;
237 TIntermAggregate *intermAggregate;
238 TIntermBlock *intermBlock;
239 TIntermDeclaration *intermDeclaration;
240 TIntermFunctionPrototype *intermFunctionPrototype;
241 TIntermSwitch *intermSwitch;
242 TIntermCase *intermCase;
243 };
244 union
245 {
246 TVector<unsigned int> *arraySizes;
247 TTypeSpecifierNonArray typeSpecifierNonArray;
248 TPublicType type;
249 TPrecision precision;
250 TLayoutQualifier layoutQualifier;
251 TQualifier qualifier;
252 TFunction *function;
253 TFunctionLookup *functionLookup;
254 TParameter param;
255 TDeclarator *declarator;
256 TDeclaratorList *declaratorList;
257 TFieldList *fieldList;
258 TQualifierWrapperBase *qualifierWrapper;
259 TTypeQualifierBuilder *typeQualifierBuilder;
260 };
261 } interm;
262};
263
264typedef union YYSTYPE YYSTYPE;
265# define YYSTYPE_IS_TRIVIAL 1
266# define YYSTYPE_IS_DECLARED 1
267#endif
268
269/* Location type. */
270#if !defined YYLTYPE && !defined YYLTYPE_IS_DECLARED
271typedef struct YYLTYPE YYLTYPE;
272struct YYLTYPE
273{
274 int first_line;
275 int first_column;
276 int last_line;
277 int last_column;
278};
279# define YYLTYPE_IS_DECLARED 1
280# define YYLTYPE_IS_TRIVIAL 1
281#endif
282
283int yyparse(TParseContext *context, void *scanner);
284
285#endif /* !YY_YY_GLSLANG_TAB_H_INCLUDED */
286