Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
11347 views
1
/* A Bison parser, made by GNU Bison 3.8.2. */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 <https://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
/* C LALR(1) parser skeleton written by Richard Stallman, by
35
simplifying the original so-called "semantic" parser. */
36
37
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38
especially those whose name start with YY_ or yy_. They are
39
private implementation details that can be changed or removed. */
40
41
/* All symbols defined below should begin with yy or YY, to avoid
42
infringing on user name space. This should be done even for local
43
variables, as they might otherwise be expanded by user macros.
44
There are some unavoidable exceptions within include files to
45
define necessary library symbols; they are noted "INFRINGES ON
46
USER NAME SPACE" below. */
47
48
/* Identify Bison output, and Bison version. */
49
#define YYBISON 30802
50
51
/* Bison version string. */
52
#define YYBISON_VERSION "3.8.2"
53
54
/* Skeleton name. */
55
#define YYSKELETON_NAME "yacc.c"
56
57
/* Pure parsers. */
58
#define YYPURE 1
59
60
/* Push parsers. */
61
#define YYPUSH 0
62
63
/* Pull parsers. */
64
#define YYPULL 1
65
66
67
68
69
/* First part of user prologue. */
70
#line 44 "MachineIndependent/glslang.y"
71
72
73
/* Based on:
74
ANSI C Yacc grammar
75
76
In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
77
matching Lex specification) for the April 30, 1985 draft version of the
78
ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
79
original, as mentioned in the answer to question 17.25 of the comp.lang.c
80
FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
81
82
I intend to keep this version as close to the current C Standard grammar as
83
possible; please let me know if you discover discrepancies.
84
85
Jutta Degener, 1995
86
*/
87
88
#include "SymbolTable.h"
89
#include "ParseHelper.h"
90
#include "../Public/ShaderLang.h"
91
#include "attribute.h"
92
93
using namespace glslang;
94
95
96
#line 97 "MachineIndependent/glslang_tab.cpp"
97
98
# ifndef YY_CAST
99
# ifdef __cplusplus
100
# define YY_CAST(Type, Val) static_cast<Type> (Val)
101
# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
102
# else
103
# define YY_CAST(Type, Val) ((Type) (Val))
104
# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
105
# endif
106
# endif
107
# ifndef YY_NULLPTR
108
# if defined __cplusplus
109
# if 201103L <= __cplusplus
110
# define YY_NULLPTR nullptr
111
# else
112
# define YY_NULLPTR 0
113
# endif
114
# else
115
# define YY_NULLPTR ((void*)0)
116
# endif
117
# endif
118
119
#include "glslang_tab.cpp.h"
120
/* Symbol kind. */
121
enum yysymbol_kind_t
122
{
123
YYSYMBOL_YYEMPTY = -2,
124
YYSYMBOL_YYEOF = 0, /* "end of file" */
125
YYSYMBOL_YYerror = 1, /* error */
126
YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
127
YYSYMBOL_CONST = 3, /* CONST */
128
YYSYMBOL_BOOL = 4, /* BOOL */
129
YYSYMBOL_INT = 5, /* INT */
130
YYSYMBOL_UINT = 6, /* UINT */
131
YYSYMBOL_FLOAT = 7, /* FLOAT */
132
YYSYMBOL_BVEC2 = 8, /* BVEC2 */
133
YYSYMBOL_BVEC3 = 9, /* BVEC3 */
134
YYSYMBOL_BVEC4 = 10, /* BVEC4 */
135
YYSYMBOL_IVEC2 = 11, /* IVEC2 */
136
YYSYMBOL_IVEC3 = 12, /* IVEC3 */
137
YYSYMBOL_IVEC4 = 13, /* IVEC4 */
138
YYSYMBOL_UVEC2 = 14, /* UVEC2 */
139
YYSYMBOL_UVEC3 = 15, /* UVEC3 */
140
YYSYMBOL_UVEC4 = 16, /* UVEC4 */
141
YYSYMBOL_VEC2 = 17, /* VEC2 */
142
YYSYMBOL_VEC3 = 18, /* VEC3 */
143
YYSYMBOL_VEC4 = 19, /* VEC4 */
144
YYSYMBOL_MAT2 = 20, /* MAT2 */
145
YYSYMBOL_MAT3 = 21, /* MAT3 */
146
YYSYMBOL_MAT4 = 22, /* MAT4 */
147
YYSYMBOL_MAT2X2 = 23, /* MAT2X2 */
148
YYSYMBOL_MAT2X3 = 24, /* MAT2X3 */
149
YYSYMBOL_MAT2X4 = 25, /* MAT2X4 */
150
YYSYMBOL_MAT3X2 = 26, /* MAT3X2 */
151
YYSYMBOL_MAT3X3 = 27, /* MAT3X3 */
152
YYSYMBOL_MAT3X4 = 28, /* MAT3X4 */
153
YYSYMBOL_MAT4X2 = 29, /* MAT4X2 */
154
YYSYMBOL_MAT4X3 = 30, /* MAT4X3 */
155
YYSYMBOL_MAT4X4 = 31, /* MAT4X4 */
156
YYSYMBOL_SAMPLER2D = 32, /* SAMPLER2D */
157
YYSYMBOL_SAMPLER3D = 33, /* SAMPLER3D */
158
YYSYMBOL_SAMPLERCUBE = 34, /* SAMPLERCUBE */
159
YYSYMBOL_SAMPLER2DSHADOW = 35, /* SAMPLER2DSHADOW */
160
YYSYMBOL_SAMPLERCUBESHADOW = 36, /* SAMPLERCUBESHADOW */
161
YYSYMBOL_SAMPLER2DARRAY = 37, /* SAMPLER2DARRAY */
162
YYSYMBOL_SAMPLER2DARRAYSHADOW = 38, /* SAMPLER2DARRAYSHADOW */
163
YYSYMBOL_ISAMPLER2D = 39, /* ISAMPLER2D */
164
YYSYMBOL_ISAMPLER3D = 40, /* ISAMPLER3D */
165
YYSYMBOL_ISAMPLERCUBE = 41, /* ISAMPLERCUBE */
166
YYSYMBOL_ISAMPLER2DARRAY = 42, /* ISAMPLER2DARRAY */
167
YYSYMBOL_USAMPLER2D = 43, /* USAMPLER2D */
168
YYSYMBOL_USAMPLER3D = 44, /* USAMPLER3D */
169
YYSYMBOL_USAMPLERCUBE = 45, /* USAMPLERCUBE */
170
YYSYMBOL_USAMPLER2DARRAY = 46, /* USAMPLER2DARRAY */
171
YYSYMBOL_SAMPLER = 47, /* SAMPLER */
172
YYSYMBOL_SAMPLERSHADOW = 48, /* SAMPLERSHADOW */
173
YYSYMBOL_TEXTURE2D = 49, /* TEXTURE2D */
174
YYSYMBOL_TEXTURE3D = 50, /* TEXTURE3D */
175
YYSYMBOL_TEXTURECUBE = 51, /* TEXTURECUBE */
176
YYSYMBOL_TEXTURE2DARRAY = 52, /* TEXTURE2DARRAY */
177
YYSYMBOL_ITEXTURE2D = 53, /* ITEXTURE2D */
178
YYSYMBOL_ITEXTURE3D = 54, /* ITEXTURE3D */
179
YYSYMBOL_ITEXTURECUBE = 55, /* ITEXTURECUBE */
180
YYSYMBOL_ITEXTURE2DARRAY = 56, /* ITEXTURE2DARRAY */
181
YYSYMBOL_UTEXTURE2D = 57, /* UTEXTURE2D */
182
YYSYMBOL_UTEXTURE3D = 58, /* UTEXTURE3D */
183
YYSYMBOL_UTEXTURECUBE = 59, /* UTEXTURECUBE */
184
YYSYMBOL_UTEXTURE2DARRAY = 60, /* UTEXTURE2DARRAY */
185
YYSYMBOL_ATTRIBUTE = 61, /* ATTRIBUTE */
186
YYSYMBOL_VARYING = 62, /* VARYING */
187
YYSYMBOL_FLOAT16_T = 63, /* FLOAT16_T */
188
YYSYMBOL_FLOAT32_T = 64, /* FLOAT32_T */
189
YYSYMBOL_DOUBLE = 65, /* DOUBLE */
190
YYSYMBOL_FLOAT64_T = 66, /* FLOAT64_T */
191
YYSYMBOL_INT64_T = 67, /* INT64_T */
192
YYSYMBOL_UINT64_T = 68, /* UINT64_T */
193
YYSYMBOL_INT32_T = 69, /* INT32_T */
194
YYSYMBOL_UINT32_T = 70, /* UINT32_T */
195
YYSYMBOL_INT16_T = 71, /* INT16_T */
196
YYSYMBOL_UINT16_T = 72, /* UINT16_T */
197
YYSYMBOL_INT8_T = 73, /* INT8_T */
198
YYSYMBOL_UINT8_T = 74, /* UINT8_T */
199
YYSYMBOL_I64VEC2 = 75, /* I64VEC2 */
200
YYSYMBOL_I64VEC3 = 76, /* I64VEC3 */
201
YYSYMBOL_I64VEC4 = 77, /* I64VEC4 */
202
YYSYMBOL_U64VEC2 = 78, /* U64VEC2 */
203
YYSYMBOL_U64VEC3 = 79, /* U64VEC3 */
204
YYSYMBOL_U64VEC4 = 80, /* U64VEC4 */
205
YYSYMBOL_I32VEC2 = 81, /* I32VEC2 */
206
YYSYMBOL_I32VEC3 = 82, /* I32VEC3 */
207
YYSYMBOL_I32VEC4 = 83, /* I32VEC4 */
208
YYSYMBOL_U32VEC2 = 84, /* U32VEC2 */
209
YYSYMBOL_U32VEC3 = 85, /* U32VEC3 */
210
YYSYMBOL_U32VEC4 = 86, /* U32VEC4 */
211
YYSYMBOL_I16VEC2 = 87, /* I16VEC2 */
212
YYSYMBOL_I16VEC3 = 88, /* I16VEC3 */
213
YYSYMBOL_I16VEC4 = 89, /* I16VEC4 */
214
YYSYMBOL_U16VEC2 = 90, /* U16VEC2 */
215
YYSYMBOL_U16VEC3 = 91, /* U16VEC3 */
216
YYSYMBOL_U16VEC4 = 92, /* U16VEC4 */
217
YYSYMBOL_I8VEC2 = 93, /* I8VEC2 */
218
YYSYMBOL_I8VEC3 = 94, /* I8VEC3 */
219
YYSYMBOL_I8VEC4 = 95, /* I8VEC4 */
220
YYSYMBOL_U8VEC2 = 96, /* U8VEC2 */
221
YYSYMBOL_U8VEC3 = 97, /* U8VEC3 */
222
YYSYMBOL_U8VEC4 = 98, /* U8VEC4 */
223
YYSYMBOL_DVEC2 = 99, /* DVEC2 */
224
YYSYMBOL_DVEC3 = 100, /* DVEC3 */
225
YYSYMBOL_DVEC4 = 101, /* DVEC4 */
226
YYSYMBOL_DMAT2 = 102, /* DMAT2 */
227
YYSYMBOL_DMAT3 = 103, /* DMAT3 */
228
YYSYMBOL_DMAT4 = 104, /* DMAT4 */
229
YYSYMBOL_F16VEC2 = 105, /* F16VEC2 */
230
YYSYMBOL_F16VEC3 = 106, /* F16VEC3 */
231
YYSYMBOL_F16VEC4 = 107, /* F16VEC4 */
232
YYSYMBOL_F16MAT2 = 108, /* F16MAT2 */
233
YYSYMBOL_F16MAT3 = 109, /* F16MAT3 */
234
YYSYMBOL_F16MAT4 = 110, /* F16MAT4 */
235
YYSYMBOL_F32VEC2 = 111, /* F32VEC2 */
236
YYSYMBOL_F32VEC3 = 112, /* F32VEC3 */
237
YYSYMBOL_F32VEC4 = 113, /* F32VEC4 */
238
YYSYMBOL_F32MAT2 = 114, /* F32MAT2 */
239
YYSYMBOL_F32MAT3 = 115, /* F32MAT3 */
240
YYSYMBOL_F32MAT4 = 116, /* F32MAT4 */
241
YYSYMBOL_F64VEC2 = 117, /* F64VEC2 */
242
YYSYMBOL_F64VEC3 = 118, /* F64VEC3 */
243
YYSYMBOL_F64VEC4 = 119, /* F64VEC4 */
244
YYSYMBOL_F64MAT2 = 120, /* F64MAT2 */
245
YYSYMBOL_F64MAT3 = 121, /* F64MAT3 */
246
YYSYMBOL_F64MAT4 = 122, /* F64MAT4 */
247
YYSYMBOL_DMAT2X2 = 123, /* DMAT2X2 */
248
YYSYMBOL_DMAT2X3 = 124, /* DMAT2X3 */
249
YYSYMBOL_DMAT2X4 = 125, /* DMAT2X4 */
250
YYSYMBOL_DMAT3X2 = 126, /* DMAT3X2 */
251
YYSYMBOL_DMAT3X3 = 127, /* DMAT3X3 */
252
YYSYMBOL_DMAT3X4 = 128, /* DMAT3X4 */
253
YYSYMBOL_DMAT4X2 = 129, /* DMAT4X2 */
254
YYSYMBOL_DMAT4X3 = 130, /* DMAT4X3 */
255
YYSYMBOL_DMAT4X4 = 131, /* DMAT4X4 */
256
YYSYMBOL_F16MAT2X2 = 132, /* F16MAT2X2 */
257
YYSYMBOL_F16MAT2X3 = 133, /* F16MAT2X3 */
258
YYSYMBOL_F16MAT2X4 = 134, /* F16MAT2X4 */
259
YYSYMBOL_F16MAT3X2 = 135, /* F16MAT3X2 */
260
YYSYMBOL_F16MAT3X3 = 136, /* F16MAT3X3 */
261
YYSYMBOL_F16MAT3X4 = 137, /* F16MAT3X4 */
262
YYSYMBOL_F16MAT4X2 = 138, /* F16MAT4X2 */
263
YYSYMBOL_F16MAT4X3 = 139, /* F16MAT4X3 */
264
YYSYMBOL_F16MAT4X4 = 140, /* F16MAT4X4 */
265
YYSYMBOL_F32MAT2X2 = 141, /* F32MAT2X2 */
266
YYSYMBOL_F32MAT2X3 = 142, /* F32MAT2X3 */
267
YYSYMBOL_F32MAT2X4 = 143, /* F32MAT2X4 */
268
YYSYMBOL_F32MAT3X2 = 144, /* F32MAT3X2 */
269
YYSYMBOL_F32MAT3X3 = 145, /* F32MAT3X3 */
270
YYSYMBOL_F32MAT3X4 = 146, /* F32MAT3X4 */
271
YYSYMBOL_F32MAT4X2 = 147, /* F32MAT4X2 */
272
YYSYMBOL_F32MAT4X3 = 148, /* F32MAT4X3 */
273
YYSYMBOL_F32MAT4X4 = 149, /* F32MAT4X4 */
274
YYSYMBOL_F64MAT2X2 = 150, /* F64MAT2X2 */
275
YYSYMBOL_F64MAT2X3 = 151, /* F64MAT2X3 */
276
YYSYMBOL_F64MAT2X4 = 152, /* F64MAT2X4 */
277
YYSYMBOL_F64MAT3X2 = 153, /* F64MAT3X2 */
278
YYSYMBOL_F64MAT3X3 = 154, /* F64MAT3X3 */
279
YYSYMBOL_F64MAT3X4 = 155, /* F64MAT3X4 */
280
YYSYMBOL_F64MAT4X2 = 156, /* F64MAT4X2 */
281
YYSYMBOL_F64MAT4X3 = 157, /* F64MAT4X3 */
282
YYSYMBOL_F64MAT4X4 = 158, /* F64MAT4X4 */
283
YYSYMBOL_ATOMIC_UINT = 159, /* ATOMIC_UINT */
284
YYSYMBOL_ACCSTRUCTNV = 160, /* ACCSTRUCTNV */
285
YYSYMBOL_ACCSTRUCTEXT = 161, /* ACCSTRUCTEXT */
286
YYSYMBOL_RAYQUERYEXT = 162, /* RAYQUERYEXT */
287
YYSYMBOL_FCOOPMATNV = 163, /* FCOOPMATNV */
288
YYSYMBOL_ICOOPMATNV = 164, /* ICOOPMATNV */
289
YYSYMBOL_UCOOPMATNV = 165, /* UCOOPMATNV */
290
YYSYMBOL_COOPMAT = 166, /* COOPMAT */
291
YYSYMBOL_HITOBJECTNV = 167, /* HITOBJECTNV */
292
YYSYMBOL_HITOBJECTATTRNV = 168, /* HITOBJECTATTRNV */
293
YYSYMBOL_SAMPLERCUBEARRAY = 169, /* SAMPLERCUBEARRAY */
294
YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 170, /* SAMPLERCUBEARRAYSHADOW */
295
YYSYMBOL_ISAMPLERCUBEARRAY = 171, /* ISAMPLERCUBEARRAY */
296
YYSYMBOL_USAMPLERCUBEARRAY = 172, /* USAMPLERCUBEARRAY */
297
YYSYMBOL_SAMPLER1D = 173, /* SAMPLER1D */
298
YYSYMBOL_SAMPLER1DARRAY = 174, /* SAMPLER1DARRAY */
299
YYSYMBOL_SAMPLER1DARRAYSHADOW = 175, /* SAMPLER1DARRAYSHADOW */
300
YYSYMBOL_ISAMPLER1D = 176, /* ISAMPLER1D */
301
YYSYMBOL_SAMPLER1DSHADOW = 177, /* SAMPLER1DSHADOW */
302
YYSYMBOL_SAMPLER2DRECT = 178, /* SAMPLER2DRECT */
303
YYSYMBOL_SAMPLER2DRECTSHADOW = 179, /* SAMPLER2DRECTSHADOW */
304
YYSYMBOL_ISAMPLER2DRECT = 180, /* ISAMPLER2DRECT */
305
YYSYMBOL_USAMPLER2DRECT = 181, /* USAMPLER2DRECT */
306
YYSYMBOL_SAMPLERBUFFER = 182, /* SAMPLERBUFFER */
307
YYSYMBOL_ISAMPLERBUFFER = 183, /* ISAMPLERBUFFER */
308
YYSYMBOL_USAMPLERBUFFER = 184, /* USAMPLERBUFFER */
309
YYSYMBOL_SAMPLER2DMS = 185, /* SAMPLER2DMS */
310
YYSYMBOL_ISAMPLER2DMS = 186, /* ISAMPLER2DMS */
311
YYSYMBOL_USAMPLER2DMS = 187, /* USAMPLER2DMS */
312
YYSYMBOL_SAMPLER2DMSARRAY = 188, /* SAMPLER2DMSARRAY */
313
YYSYMBOL_ISAMPLER2DMSARRAY = 189, /* ISAMPLER2DMSARRAY */
314
YYSYMBOL_USAMPLER2DMSARRAY = 190, /* USAMPLER2DMSARRAY */
315
YYSYMBOL_SAMPLEREXTERNALOES = 191, /* SAMPLEREXTERNALOES */
316
YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 192, /* SAMPLEREXTERNAL2DY2YEXT */
317
YYSYMBOL_ISAMPLER1DARRAY = 193, /* ISAMPLER1DARRAY */
318
YYSYMBOL_USAMPLER1D = 194, /* USAMPLER1D */
319
YYSYMBOL_USAMPLER1DARRAY = 195, /* USAMPLER1DARRAY */
320
YYSYMBOL_F16SAMPLER1D = 196, /* F16SAMPLER1D */
321
YYSYMBOL_F16SAMPLER2D = 197, /* F16SAMPLER2D */
322
YYSYMBOL_F16SAMPLER3D = 198, /* F16SAMPLER3D */
323
YYSYMBOL_F16SAMPLER2DRECT = 199, /* F16SAMPLER2DRECT */
324
YYSYMBOL_F16SAMPLERCUBE = 200, /* F16SAMPLERCUBE */
325
YYSYMBOL_F16SAMPLER1DARRAY = 201, /* F16SAMPLER1DARRAY */
326
YYSYMBOL_F16SAMPLER2DARRAY = 202, /* F16SAMPLER2DARRAY */
327
YYSYMBOL_F16SAMPLERCUBEARRAY = 203, /* F16SAMPLERCUBEARRAY */
328
YYSYMBOL_F16SAMPLERBUFFER = 204, /* F16SAMPLERBUFFER */
329
YYSYMBOL_F16SAMPLER2DMS = 205, /* F16SAMPLER2DMS */
330
YYSYMBOL_F16SAMPLER2DMSARRAY = 206, /* F16SAMPLER2DMSARRAY */
331
YYSYMBOL_F16SAMPLER1DSHADOW = 207, /* F16SAMPLER1DSHADOW */
332
YYSYMBOL_F16SAMPLER2DSHADOW = 208, /* F16SAMPLER2DSHADOW */
333
YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 209, /* F16SAMPLER1DARRAYSHADOW */
334
YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 210, /* F16SAMPLER2DARRAYSHADOW */
335
YYSYMBOL_F16SAMPLER2DRECTSHADOW = 211, /* F16SAMPLER2DRECTSHADOW */
336
YYSYMBOL_F16SAMPLERCUBESHADOW = 212, /* F16SAMPLERCUBESHADOW */
337
YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 213, /* F16SAMPLERCUBEARRAYSHADOW */
338
YYSYMBOL_IMAGE1D = 214, /* IMAGE1D */
339
YYSYMBOL_IIMAGE1D = 215, /* IIMAGE1D */
340
YYSYMBOL_UIMAGE1D = 216, /* UIMAGE1D */
341
YYSYMBOL_IMAGE2D = 217, /* IMAGE2D */
342
YYSYMBOL_IIMAGE2D = 218, /* IIMAGE2D */
343
YYSYMBOL_UIMAGE2D = 219, /* UIMAGE2D */
344
YYSYMBOL_IMAGE3D = 220, /* IMAGE3D */
345
YYSYMBOL_IIMAGE3D = 221, /* IIMAGE3D */
346
YYSYMBOL_UIMAGE3D = 222, /* UIMAGE3D */
347
YYSYMBOL_IMAGE2DRECT = 223, /* IMAGE2DRECT */
348
YYSYMBOL_IIMAGE2DRECT = 224, /* IIMAGE2DRECT */
349
YYSYMBOL_UIMAGE2DRECT = 225, /* UIMAGE2DRECT */
350
YYSYMBOL_IMAGECUBE = 226, /* IMAGECUBE */
351
YYSYMBOL_IIMAGECUBE = 227, /* IIMAGECUBE */
352
YYSYMBOL_UIMAGECUBE = 228, /* UIMAGECUBE */
353
YYSYMBOL_IMAGEBUFFER = 229, /* IMAGEBUFFER */
354
YYSYMBOL_IIMAGEBUFFER = 230, /* IIMAGEBUFFER */
355
YYSYMBOL_UIMAGEBUFFER = 231, /* UIMAGEBUFFER */
356
YYSYMBOL_IMAGE1DARRAY = 232, /* IMAGE1DARRAY */
357
YYSYMBOL_IIMAGE1DARRAY = 233, /* IIMAGE1DARRAY */
358
YYSYMBOL_UIMAGE1DARRAY = 234, /* UIMAGE1DARRAY */
359
YYSYMBOL_IMAGE2DARRAY = 235, /* IMAGE2DARRAY */
360
YYSYMBOL_IIMAGE2DARRAY = 236, /* IIMAGE2DARRAY */
361
YYSYMBOL_UIMAGE2DARRAY = 237, /* UIMAGE2DARRAY */
362
YYSYMBOL_IMAGECUBEARRAY = 238, /* IMAGECUBEARRAY */
363
YYSYMBOL_IIMAGECUBEARRAY = 239, /* IIMAGECUBEARRAY */
364
YYSYMBOL_UIMAGECUBEARRAY = 240, /* UIMAGECUBEARRAY */
365
YYSYMBOL_IMAGE2DMS = 241, /* IMAGE2DMS */
366
YYSYMBOL_IIMAGE2DMS = 242, /* IIMAGE2DMS */
367
YYSYMBOL_UIMAGE2DMS = 243, /* UIMAGE2DMS */
368
YYSYMBOL_IMAGE2DMSARRAY = 244, /* IMAGE2DMSARRAY */
369
YYSYMBOL_IIMAGE2DMSARRAY = 245, /* IIMAGE2DMSARRAY */
370
YYSYMBOL_UIMAGE2DMSARRAY = 246, /* UIMAGE2DMSARRAY */
371
YYSYMBOL_F16IMAGE1D = 247, /* F16IMAGE1D */
372
YYSYMBOL_F16IMAGE2D = 248, /* F16IMAGE2D */
373
YYSYMBOL_F16IMAGE3D = 249, /* F16IMAGE3D */
374
YYSYMBOL_F16IMAGE2DRECT = 250, /* F16IMAGE2DRECT */
375
YYSYMBOL_F16IMAGECUBE = 251, /* F16IMAGECUBE */
376
YYSYMBOL_F16IMAGE1DARRAY = 252, /* F16IMAGE1DARRAY */
377
YYSYMBOL_F16IMAGE2DARRAY = 253, /* F16IMAGE2DARRAY */
378
YYSYMBOL_F16IMAGECUBEARRAY = 254, /* F16IMAGECUBEARRAY */
379
YYSYMBOL_F16IMAGEBUFFER = 255, /* F16IMAGEBUFFER */
380
YYSYMBOL_F16IMAGE2DMS = 256, /* F16IMAGE2DMS */
381
YYSYMBOL_F16IMAGE2DMSARRAY = 257, /* F16IMAGE2DMSARRAY */
382
YYSYMBOL_I64IMAGE1D = 258, /* I64IMAGE1D */
383
YYSYMBOL_U64IMAGE1D = 259, /* U64IMAGE1D */
384
YYSYMBOL_I64IMAGE2D = 260, /* I64IMAGE2D */
385
YYSYMBOL_U64IMAGE2D = 261, /* U64IMAGE2D */
386
YYSYMBOL_I64IMAGE3D = 262, /* I64IMAGE3D */
387
YYSYMBOL_U64IMAGE3D = 263, /* U64IMAGE3D */
388
YYSYMBOL_I64IMAGE2DRECT = 264, /* I64IMAGE2DRECT */
389
YYSYMBOL_U64IMAGE2DRECT = 265, /* U64IMAGE2DRECT */
390
YYSYMBOL_I64IMAGECUBE = 266, /* I64IMAGECUBE */
391
YYSYMBOL_U64IMAGECUBE = 267, /* U64IMAGECUBE */
392
YYSYMBOL_I64IMAGEBUFFER = 268, /* I64IMAGEBUFFER */
393
YYSYMBOL_U64IMAGEBUFFER = 269, /* U64IMAGEBUFFER */
394
YYSYMBOL_I64IMAGE1DARRAY = 270, /* I64IMAGE1DARRAY */
395
YYSYMBOL_U64IMAGE1DARRAY = 271, /* U64IMAGE1DARRAY */
396
YYSYMBOL_I64IMAGE2DARRAY = 272, /* I64IMAGE2DARRAY */
397
YYSYMBOL_U64IMAGE2DARRAY = 273, /* U64IMAGE2DARRAY */
398
YYSYMBOL_I64IMAGECUBEARRAY = 274, /* I64IMAGECUBEARRAY */
399
YYSYMBOL_U64IMAGECUBEARRAY = 275, /* U64IMAGECUBEARRAY */
400
YYSYMBOL_I64IMAGE2DMS = 276, /* I64IMAGE2DMS */
401
YYSYMBOL_U64IMAGE2DMS = 277, /* U64IMAGE2DMS */
402
YYSYMBOL_I64IMAGE2DMSARRAY = 278, /* I64IMAGE2DMSARRAY */
403
YYSYMBOL_U64IMAGE2DMSARRAY = 279, /* U64IMAGE2DMSARRAY */
404
YYSYMBOL_TEXTURECUBEARRAY = 280, /* TEXTURECUBEARRAY */
405
YYSYMBOL_ITEXTURECUBEARRAY = 281, /* ITEXTURECUBEARRAY */
406
YYSYMBOL_UTEXTURECUBEARRAY = 282, /* UTEXTURECUBEARRAY */
407
YYSYMBOL_TEXTURE1D = 283, /* TEXTURE1D */
408
YYSYMBOL_ITEXTURE1D = 284, /* ITEXTURE1D */
409
YYSYMBOL_UTEXTURE1D = 285, /* UTEXTURE1D */
410
YYSYMBOL_TEXTURE1DARRAY = 286, /* TEXTURE1DARRAY */
411
YYSYMBOL_ITEXTURE1DARRAY = 287, /* ITEXTURE1DARRAY */
412
YYSYMBOL_UTEXTURE1DARRAY = 288, /* UTEXTURE1DARRAY */
413
YYSYMBOL_TEXTURE2DRECT = 289, /* TEXTURE2DRECT */
414
YYSYMBOL_ITEXTURE2DRECT = 290, /* ITEXTURE2DRECT */
415
YYSYMBOL_UTEXTURE2DRECT = 291, /* UTEXTURE2DRECT */
416
YYSYMBOL_TEXTUREBUFFER = 292, /* TEXTUREBUFFER */
417
YYSYMBOL_ITEXTUREBUFFER = 293, /* ITEXTUREBUFFER */
418
YYSYMBOL_UTEXTUREBUFFER = 294, /* UTEXTUREBUFFER */
419
YYSYMBOL_TEXTURE2DMS = 295, /* TEXTURE2DMS */
420
YYSYMBOL_ITEXTURE2DMS = 296, /* ITEXTURE2DMS */
421
YYSYMBOL_UTEXTURE2DMS = 297, /* UTEXTURE2DMS */
422
YYSYMBOL_TEXTURE2DMSARRAY = 298, /* TEXTURE2DMSARRAY */
423
YYSYMBOL_ITEXTURE2DMSARRAY = 299, /* ITEXTURE2DMSARRAY */
424
YYSYMBOL_UTEXTURE2DMSARRAY = 300, /* UTEXTURE2DMSARRAY */
425
YYSYMBOL_F16TEXTURE1D = 301, /* F16TEXTURE1D */
426
YYSYMBOL_F16TEXTURE2D = 302, /* F16TEXTURE2D */
427
YYSYMBOL_F16TEXTURE3D = 303, /* F16TEXTURE3D */
428
YYSYMBOL_F16TEXTURE2DRECT = 304, /* F16TEXTURE2DRECT */
429
YYSYMBOL_F16TEXTURECUBE = 305, /* F16TEXTURECUBE */
430
YYSYMBOL_F16TEXTURE1DARRAY = 306, /* F16TEXTURE1DARRAY */
431
YYSYMBOL_F16TEXTURE2DARRAY = 307, /* F16TEXTURE2DARRAY */
432
YYSYMBOL_F16TEXTURECUBEARRAY = 308, /* F16TEXTURECUBEARRAY */
433
YYSYMBOL_F16TEXTUREBUFFER = 309, /* F16TEXTUREBUFFER */
434
YYSYMBOL_F16TEXTURE2DMS = 310, /* F16TEXTURE2DMS */
435
YYSYMBOL_F16TEXTURE2DMSARRAY = 311, /* F16TEXTURE2DMSARRAY */
436
YYSYMBOL_SUBPASSINPUT = 312, /* SUBPASSINPUT */
437
YYSYMBOL_SUBPASSINPUTMS = 313, /* SUBPASSINPUTMS */
438
YYSYMBOL_ISUBPASSINPUT = 314, /* ISUBPASSINPUT */
439
YYSYMBOL_ISUBPASSINPUTMS = 315, /* ISUBPASSINPUTMS */
440
YYSYMBOL_USUBPASSINPUT = 316, /* USUBPASSINPUT */
441
YYSYMBOL_USUBPASSINPUTMS = 317, /* USUBPASSINPUTMS */
442
YYSYMBOL_F16SUBPASSINPUT = 318, /* F16SUBPASSINPUT */
443
YYSYMBOL_F16SUBPASSINPUTMS = 319, /* F16SUBPASSINPUTMS */
444
YYSYMBOL_SPIRV_INSTRUCTION = 320, /* SPIRV_INSTRUCTION */
445
YYSYMBOL_SPIRV_EXECUTION_MODE = 321, /* SPIRV_EXECUTION_MODE */
446
YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 322, /* SPIRV_EXECUTION_MODE_ID */
447
YYSYMBOL_SPIRV_DECORATE = 323, /* SPIRV_DECORATE */
448
YYSYMBOL_SPIRV_DECORATE_ID = 324, /* SPIRV_DECORATE_ID */
449
YYSYMBOL_SPIRV_DECORATE_STRING = 325, /* SPIRV_DECORATE_STRING */
450
YYSYMBOL_SPIRV_TYPE = 326, /* SPIRV_TYPE */
451
YYSYMBOL_SPIRV_STORAGE_CLASS = 327, /* SPIRV_STORAGE_CLASS */
452
YYSYMBOL_SPIRV_BY_REFERENCE = 328, /* SPIRV_BY_REFERENCE */
453
YYSYMBOL_SPIRV_LITERAL = 329, /* SPIRV_LITERAL */
454
YYSYMBOL_ATTACHMENTEXT = 330, /* ATTACHMENTEXT */
455
YYSYMBOL_IATTACHMENTEXT = 331, /* IATTACHMENTEXT */
456
YYSYMBOL_UATTACHMENTEXT = 332, /* UATTACHMENTEXT */
457
YYSYMBOL_LEFT_OP = 333, /* LEFT_OP */
458
YYSYMBOL_RIGHT_OP = 334, /* RIGHT_OP */
459
YYSYMBOL_INC_OP = 335, /* INC_OP */
460
YYSYMBOL_DEC_OP = 336, /* DEC_OP */
461
YYSYMBOL_LE_OP = 337, /* LE_OP */
462
YYSYMBOL_GE_OP = 338, /* GE_OP */
463
YYSYMBOL_EQ_OP = 339, /* EQ_OP */
464
YYSYMBOL_NE_OP = 340, /* NE_OP */
465
YYSYMBOL_AND_OP = 341, /* AND_OP */
466
YYSYMBOL_OR_OP = 342, /* OR_OP */
467
YYSYMBOL_XOR_OP = 343, /* XOR_OP */
468
YYSYMBOL_MUL_ASSIGN = 344, /* MUL_ASSIGN */
469
YYSYMBOL_DIV_ASSIGN = 345, /* DIV_ASSIGN */
470
YYSYMBOL_ADD_ASSIGN = 346, /* ADD_ASSIGN */
471
YYSYMBOL_MOD_ASSIGN = 347, /* MOD_ASSIGN */
472
YYSYMBOL_LEFT_ASSIGN = 348, /* LEFT_ASSIGN */
473
YYSYMBOL_RIGHT_ASSIGN = 349, /* RIGHT_ASSIGN */
474
YYSYMBOL_AND_ASSIGN = 350, /* AND_ASSIGN */
475
YYSYMBOL_XOR_ASSIGN = 351, /* XOR_ASSIGN */
476
YYSYMBOL_OR_ASSIGN = 352, /* OR_ASSIGN */
477
YYSYMBOL_SUB_ASSIGN = 353, /* SUB_ASSIGN */
478
YYSYMBOL_STRING_LITERAL = 354, /* STRING_LITERAL */
479
YYSYMBOL_LEFT_PAREN = 355, /* LEFT_PAREN */
480
YYSYMBOL_RIGHT_PAREN = 356, /* RIGHT_PAREN */
481
YYSYMBOL_LEFT_BRACKET = 357, /* LEFT_BRACKET */
482
YYSYMBOL_RIGHT_BRACKET = 358, /* RIGHT_BRACKET */
483
YYSYMBOL_LEFT_BRACE = 359, /* LEFT_BRACE */
484
YYSYMBOL_RIGHT_BRACE = 360, /* RIGHT_BRACE */
485
YYSYMBOL_DOT = 361, /* DOT */
486
YYSYMBOL_COMMA = 362, /* COMMA */
487
YYSYMBOL_COLON = 363, /* COLON */
488
YYSYMBOL_EQUAL = 364, /* EQUAL */
489
YYSYMBOL_SEMICOLON = 365, /* SEMICOLON */
490
YYSYMBOL_BANG = 366, /* BANG */
491
YYSYMBOL_DASH = 367, /* DASH */
492
YYSYMBOL_TILDE = 368, /* TILDE */
493
YYSYMBOL_PLUS = 369, /* PLUS */
494
YYSYMBOL_STAR = 370, /* STAR */
495
YYSYMBOL_SLASH = 371, /* SLASH */
496
YYSYMBOL_PERCENT = 372, /* PERCENT */
497
YYSYMBOL_LEFT_ANGLE = 373, /* LEFT_ANGLE */
498
YYSYMBOL_RIGHT_ANGLE = 374, /* RIGHT_ANGLE */
499
YYSYMBOL_VERTICAL_BAR = 375, /* VERTICAL_BAR */
500
YYSYMBOL_CARET = 376, /* CARET */
501
YYSYMBOL_AMPERSAND = 377, /* AMPERSAND */
502
YYSYMBOL_QUESTION = 378, /* QUESTION */
503
YYSYMBOL_INVARIANT = 379, /* INVARIANT */
504
YYSYMBOL_HIGH_PRECISION = 380, /* HIGH_PRECISION */
505
YYSYMBOL_MEDIUM_PRECISION = 381, /* MEDIUM_PRECISION */
506
YYSYMBOL_LOW_PRECISION = 382, /* LOW_PRECISION */
507
YYSYMBOL_PRECISION = 383, /* PRECISION */
508
YYSYMBOL_PACKED = 384, /* PACKED */
509
YYSYMBOL_RESOURCE = 385, /* RESOURCE */
510
YYSYMBOL_SUPERP = 386, /* SUPERP */
511
YYSYMBOL_FLOATCONSTANT = 387, /* FLOATCONSTANT */
512
YYSYMBOL_INTCONSTANT = 388, /* INTCONSTANT */
513
YYSYMBOL_UINTCONSTANT = 389, /* UINTCONSTANT */
514
YYSYMBOL_BOOLCONSTANT = 390, /* BOOLCONSTANT */
515
YYSYMBOL_IDENTIFIER = 391, /* IDENTIFIER */
516
YYSYMBOL_TYPE_NAME = 392, /* TYPE_NAME */
517
YYSYMBOL_CENTROID = 393, /* CENTROID */
518
YYSYMBOL_IN = 394, /* IN */
519
YYSYMBOL_OUT = 395, /* OUT */
520
YYSYMBOL_INOUT = 396, /* INOUT */
521
YYSYMBOL_STRUCT = 397, /* STRUCT */
522
YYSYMBOL_VOID = 398, /* VOID */
523
YYSYMBOL_WHILE = 399, /* WHILE */
524
YYSYMBOL_BREAK = 400, /* BREAK */
525
YYSYMBOL_CONTINUE = 401, /* CONTINUE */
526
YYSYMBOL_DO = 402, /* DO */
527
YYSYMBOL_ELSE = 403, /* ELSE */
528
YYSYMBOL_FOR = 404, /* FOR */
529
YYSYMBOL_IF = 405, /* IF */
530
YYSYMBOL_DISCARD = 406, /* DISCARD */
531
YYSYMBOL_RETURN = 407, /* RETURN */
532
YYSYMBOL_SWITCH = 408, /* SWITCH */
533
YYSYMBOL_CASE = 409, /* CASE */
534
YYSYMBOL_DEFAULT = 410, /* DEFAULT */
535
YYSYMBOL_TERMINATE_INVOCATION = 411, /* TERMINATE_INVOCATION */
536
YYSYMBOL_TERMINATE_RAY = 412, /* TERMINATE_RAY */
537
YYSYMBOL_IGNORE_INTERSECTION = 413, /* IGNORE_INTERSECTION */
538
YYSYMBOL_UNIFORM = 414, /* UNIFORM */
539
YYSYMBOL_SHARED = 415, /* SHARED */
540
YYSYMBOL_BUFFER = 416, /* BUFFER */
541
YYSYMBOL_TILEIMAGEEXT = 417, /* TILEIMAGEEXT */
542
YYSYMBOL_FLAT = 418, /* FLAT */
543
YYSYMBOL_SMOOTH = 419, /* SMOOTH */
544
YYSYMBOL_LAYOUT = 420, /* LAYOUT */
545
YYSYMBOL_DOUBLECONSTANT = 421, /* DOUBLECONSTANT */
546
YYSYMBOL_INT16CONSTANT = 422, /* INT16CONSTANT */
547
YYSYMBOL_UINT16CONSTANT = 423, /* UINT16CONSTANT */
548
YYSYMBOL_FLOAT16CONSTANT = 424, /* FLOAT16CONSTANT */
549
YYSYMBOL_INT32CONSTANT = 425, /* INT32CONSTANT */
550
YYSYMBOL_UINT32CONSTANT = 426, /* UINT32CONSTANT */
551
YYSYMBOL_INT64CONSTANT = 427, /* INT64CONSTANT */
552
YYSYMBOL_UINT64CONSTANT = 428, /* UINT64CONSTANT */
553
YYSYMBOL_SUBROUTINE = 429, /* SUBROUTINE */
554
YYSYMBOL_DEMOTE = 430, /* DEMOTE */
555
YYSYMBOL_PAYLOADNV = 431, /* PAYLOADNV */
556
YYSYMBOL_PAYLOADINNV = 432, /* PAYLOADINNV */
557
YYSYMBOL_HITATTRNV = 433, /* HITATTRNV */
558
YYSYMBOL_CALLDATANV = 434, /* CALLDATANV */
559
YYSYMBOL_CALLDATAINNV = 435, /* CALLDATAINNV */
560
YYSYMBOL_PAYLOADEXT = 436, /* PAYLOADEXT */
561
YYSYMBOL_PAYLOADINEXT = 437, /* PAYLOADINEXT */
562
YYSYMBOL_HITATTREXT = 438, /* HITATTREXT */
563
YYSYMBOL_CALLDATAEXT = 439, /* CALLDATAEXT */
564
YYSYMBOL_CALLDATAINEXT = 440, /* CALLDATAINEXT */
565
YYSYMBOL_PATCH = 441, /* PATCH */
566
YYSYMBOL_SAMPLE = 442, /* SAMPLE */
567
YYSYMBOL_NONUNIFORM = 443, /* NONUNIFORM */
568
YYSYMBOL_COHERENT = 444, /* COHERENT */
569
YYSYMBOL_VOLATILE = 445, /* VOLATILE */
570
YYSYMBOL_RESTRICT = 446, /* RESTRICT */
571
YYSYMBOL_READONLY = 447, /* READONLY */
572
YYSYMBOL_WRITEONLY = 448, /* WRITEONLY */
573
YYSYMBOL_DEVICECOHERENT = 449, /* DEVICECOHERENT */
574
YYSYMBOL_QUEUEFAMILYCOHERENT = 450, /* QUEUEFAMILYCOHERENT */
575
YYSYMBOL_WORKGROUPCOHERENT = 451, /* WORKGROUPCOHERENT */
576
YYSYMBOL_SUBGROUPCOHERENT = 452, /* SUBGROUPCOHERENT */
577
YYSYMBOL_NONPRIVATE = 453, /* NONPRIVATE */
578
YYSYMBOL_SHADERCALLCOHERENT = 454, /* SHADERCALLCOHERENT */
579
YYSYMBOL_NOPERSPECTIVE = 455, /* NOPERSPECTIVE */
580
YYSYMBOL_EXPLICITINTERPAMD = 456, /* EXPLICITINTERPAMD */
581
YYSYMBOL_PERVERTEXEXT = 457, /* PERVERTEXEXT */
582
YYSYMBOL_PERVERTEXNV = 458, /* PERVERTEXNV */
583
YYSYMBOL_PERPRIMITIVENV = 459, /* PERPRIMITIVENV */
584
YYSYMBOL_PERVIEWNV = 460, /* PERVIEWNV */
585
YYSYMBOL_PERTASKNV = 461, /* PERTASKNV */
586
YYSYMBOL_PERPRIMITIVEEXT = 462, /* PERPRIMITIVEEXT */
587
YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 463, /* TASKPAYLOADWORKGROUPEXT */
588
YYSYMBOL_PRECISE = 464, /* PRECISE */
589
YYSYMBOL_YYACCEPT = 465, /* $accept */
590
YYSYMBOL_variable_identifier = 466, /* variable_identifier */
591
YYSYMBOL_primary_expression = 467, /* primary_expression */
592
YYSYMBOL_postfix_expression = 468, /* postfix_expression */
593
YYSYMBOL_integer_expression = 469, /* integer_expression */
594
YYSYMBOL_function_call = 470, /* function_call */
595
YYSYMBOL_function_call_or_method = 471, /* function_call_or_method */
596
YYSYMBOL_function_call_generic = 472, /* function_call_generic */
597
YYSYMBOL_function_call_header_no_parameters = 473, /* function_call_header_no_parameters */
598
YYSYMBOL_function_call_header_with_parameters = 474, /* function_call_header_with_parameters */
599
YYSYMBOL_function_call_header = 475, /* function_call_header */
600
YYSYMBOL_function_identifier = 476, /* function_identifier */
601
YYSYMBOL_unary_expression = 477, /* unary_expression */
602
YYSYMBOL_unary_operator = 478, /* unary_operator */
603
YYSYMBOL_multiplicative_expression = 479, /* multiplicative_expression */
604
YYSYMBOL_additive_expression = 480, /* additive_expression */
605
YYSYMBOL_shift_expression = 481, /* shift_expression */
606
YYSYMBOL_relational_expression = 482, /* relational_expression */
607
YYSYMBOL_equality_expression = 483, /* equality_expression */
608
YYSYMBOL_and_expression = 484, /* and_expression */
609
YYSYMBOL_exclusive_or_expression = 485, /* exclusive_or_expression */
610
YYSYMBOL_inclusive_or_expression = 486, /* inclusive_or_expression */
611
YYSYMBOL_logical_and_expression = 487, /* logical_and_expression */
612
YYSYMBOL_logical_xor_expression = 488, /* logical_xor_expression */
613
YYSYMBOL_logical_or_expression = 489, /* logical_or_expression */
614
YYSYMBOL_conditional_expression = 490, /* conditional_expression */
615
YYSYMBOL_491_1 = 491, /* $@1 */
616
YYSYMBOL_assignment_expression = 492, /* assignment_expression */
617
YYSYMBOL_assignment_operator = 493, /* assignment_operator */
618
YYSYMBOL_expression = 494, /* expression */
619
YYSYMBOL_constant_expression = 495, /* constant_expression */
620
YYSYMBOL_declaration = 496, /* declaration */
621
YYSYMBOL_block_structure = 497, /* block_structure */
622
YYSYMBOL_498_2 = 498, /* $@2 */
623
YYSYMBOL_identifier_list = 499, /* identifier_list */
624
YYSYMBOL_function_prototype = 500, /* function_prototype */
625
YYSYMBOL_function_declarator = 501, /* function_declarator */
626
YYSYMBOL_function_header_with_parameters = 502, /* function_header_with_parameters */
627
YYSYMBOL_function_header = 503, /* function_header */
628
YYSYMBOL_parameter_declarator = 504, /* parameter_declarator */
629
YYSYMBOL_parameter_declaration = 505, /* parameter_declaration */
630
YYSYMBOL_parameter_type_specifier = 506, /* parameter_type_specifier */
631
YYSYMBOL_init_declarator_list = 507, /* init_declarator_list */
632
YYSYMBOL_single_declaration = 508, /* single_declaration */
633
YYSYMBOL_fully_specified_type = 509, /* fully_specified_type */
634
YYSYMBOL_invariant_qualifier = 510, /* invariant_qualifier */
635
YYSYMBOL_interpolation_qualifier = 511, /* interpolation_qualifier */
636
YYSYMBOL_layout_qualifier = 512, /* layout_qualifier */
637
YYSYMBOL_layout_qualifier_id_list = 513, /* layout_qualifier_id_list */
638
YYSYMBOL_layout_qualifier_id = 514, /* layout_qualifier_id */
639
YYSYMBOL_precise_qualifier = 515, /* precise_qualifier */
640
YYSYMBOL_type_qualifier = 516, /* type_qualifier */
641
YYSYMBOL_single_type_qualifier = 517, /* single_type_qualifier */
642
YYSYMBOL_storage_qualifier = 518, /* storage_qualifier */
643
YYSYMBOL_non_uniform_qualifier = 519, /* non_uniform_qualifier */
644
YYSYMBOL_type_name_list = 520, /* type_name_list */
645
YYSYMBOL_type_specifier = 521, /* type_specifier */
646
YYSYMBOL_array_specifier = 522, /* array_specifier */
647
YYSYMBOL_type_parameter_specifier_opt = 523, /* type_parameter_specifier_opt */
648
YYSYMBOL_type_parameter_specifier = 524, /* type_parameter_specifier */
649
YYSYMBOL_type_parameter_specifier_list = 525, /* type_parameter_specifier_list */
650
YYSYMBOL_type_specifier_nonarray = 526, /* type_specifier_nonarray */
651
YYSYMBOL_precision_qualifier = 527, /* precision_qualifier */
652
YYSYMBOL_struct_specifier = 528, /* struct_specifier */
653
YYSYMBOL_529_3 = 529, /* $@3 */
654
YYSYMBOL_530_4 = 530, /* $@4 */
655
YYSYMBOL_struct_declaration_list = 531, /* struct_declaration_list */
656
YYSYMBOL_struct_declaration = 532, /* struct_declaration */
657
YYSYMBOL_struct_declarator_list = 533, /* struct_declarator_list */
658
YYSYMBOL_struct_declarator = 534, /* struct_declarator */
659
YYSYMBOL_initializer = 535, /* initializer */
660
YYSYMBOL_initializer_list = 536, /* initializer_list */
661
YYSYMBOL_declaration_statement = 537, /* declaration_statement */
662
YYSYMBOL_statement = 538, /* statement */
663
YYSYMBOL_simple_statement = 539, /* simple_statement */
664
YYSYMBOL_demote_statement = 540, /* demote_statement */
665
YYSYMBOL_compound_statement = 541, /* compound_statement */
666
YYSYMBOL_542_5 = 542, /* $@5 */
667
YYSYMBOL_543_6 = 543, /* $@6 */
668
YYSYMBOL_statement_no_new_scope = 544, /* statement_no_new_scope */
669
YYSYMBOL_statement_scoped = 545, /* statement_scoped */
670
YYSYMBOL_546_7 = 546, /* $@7 */
671
YYSYMBOL_547_8 = 547, /* $@8 */
672
YYSYMBOL_compound_statement_no_new_scope = 548, /* compound_statement_no_new_scope */
673
YYSYMBOL_statement_list = 549, /* statement_list */
674
YYSYMBOL_expression_statement = 550, /* expression_statement */
675
YYSYMBOL_selection_statement = 551, /* selection_statement */
676
YYSYMBOL_selection_statement_nonattributed = 552, /* selection_statement_nonattributed */
677
YYSYMBOL_selection_rest_statement = 553, /* selection_rest_statement */
678
YYSYMBOL_condition = 554, /* condition */
679
YYSYMBOL_switch_statement = 555, /* switch_statement */
680
YYSYMBOL_switch_statement_nonattributed = 556, /* switch_statement_nonattributed */
681
YYSYMBOL_557_9 = 557, /* $@9 */
682
YYSYMBOL_switch_statement_list = 558, /* switch_statement_list */
683
YYSYMBOL_case_label = 559, /* case_label */
684
YYSYMBOL_iteration_statement = 560, /* iteration_statement */
685
YYSYMBOL_iteration_statement_nonattributed = 561, /* iteration_statement_nonattributed */
686
YYSYMBOL_562_10 = 562, /* $@10 */
687
YYSYMBOL_563_11 = 563, /* $@11 */
688
YYSYMBOL_564_12 = 564, /* $@12 */
689
YYSYMBOL_for_init_statement = 565, /* for_init_statement */
690
YYSYMBOL_conditionopt = 566, /* conditionopt */
691
YYSYMBOL_for_rest_statement = 567, /* for_rest_statement */
692
YYSYMBOL_jump_statement = 568, /* jump_statement */
693
YYSYMBOL_translation_unit = 569, /* translation_unit */
694
YYSYMBOL_external_declaration = 570, /* external_declaration */
695
YYSYMBOL_function_definition = 571, /* function_definition */
696
YYSYMBOL_572_13 = 572, /* $@13 */
697
YYSYMBOL_attribute = 573, /* attribute */
698
YYSYMBOL_attribute_list = 574, /* attribute_list */
699
YYSYMBOL_single_attribute = 575, /* single_attribute */
700
YYSYMBOL_spirv_requirements_list = 576, /* spirv_requirements_list */
701
YYSYMBOL_spirv_requirements_parameter = 577, /* spirv_requirements_parameter */
702
YYSYMBOL_spirv_extension_list = 578, /* spirv_extension_list */
703
YYSYMBOL_spirv_capability_list = 579, /* spirv_capability_list */
704
YYSYMBOL_spirv_execution_mode_qualifier = 580, /* spirv_execution_mode_qualifier */
705
YYSYMBOL_spirv_execution_mode_parameter_list = 581, /* spirv_execution_mode_parameter_list */
706
YYSYMBOL_spirv_execution_mode_parameter = 582, /* spirv_execution_mode_parameter */
707
YYSYMBOL_spirv_execution_mode_id_parameter_list = 583, /* spirv_execution_mode_id_parameter_list */
708
YYSYMBOL_spirv_storage_class_qualifier = 584, /* spirv_storage_class_qualifier */
709
YYSYMBOL_spirv_decorate_qualifier = 585, /* spirv_decorate_qualifier */
710
YYSYMBOL_spirv_decorate_parameter_list = 586, /* spirv_decorate_parameter_list */
711
YYSYMBOL_spirv_decorate_parameter = 587, /* spirv_decorate_parameter */
712
YYSYMBOL_spirv_decorate_id_parameter_list = 588, /* spirv_decorate_id_parameter_list */
713
YYSYMBOL_spirv_decorate_id_parameter = 589, /* spirv_decorate_id_parameter */
714
YYSYMBOL_spirv_decorate_string_parameter_list = 590, /* spirv_decorate_string_parameter_list */
715
YYSYMBOL_spirv_type_specifier = 591, /* spirv_type_specifier */
716
YYSYMBOL_spirv_type_parameter_list = 592, /* spirv_type_parameter_list */
717
YYSYMBOL_spirv_type_parameter = 593, /* spirv_type_parameter */
718
YYSYMBOL_spirv_instruction_qualifier = 594, /* spirv_instruction_qualifier */
719
YYSYMBOL_spirv_instruction_qualifier_list = 595, /* spirv_instruction_qualifier_list */
720
YYSYMBOL_spirv_instruction_qualifier_id = 596 /* spirv_instruction_qualifier_id */
721
};
722
typedef enum yysymbol_kind_t yysymbol_kind_t;
723
724
725
/* Second part of user prologue. */
726
#line 111 "MachineIndependent/glslang.y"
727
728
729
#define parseContext (*pParseContext)
730
#define yyerror(context, msg) context->parserError(msg)
731
732
extern int yylex(YYSTYPE*, TParseContext&);
733
734
735
#line 736 "MachineIndependent/glslang_tab.cpp"
736
737
738
#ifdef short
739
# undef short
740
#endif
741
742
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
743
<limits.h> and (if available) <stdint.h> are included
744
so that the code can choose integer types of a good width. */
745
746
#ifndef __PTRDIFF_MAX__
747
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
748
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
749
# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
750
# define YY_STDINT_H
751
# endif
752
#endif
753
754
/* Narrow types that promote to a signed type and that can represent a
755
signed or unsigned integer of at least N bits. In tables they can
756
save space and decrease cache pressure. Promoting to a signed type
757
helps avoid bugs in integer arithmetic. */
758
759
#ifdef __INT_LEAST8_MAX__
760
typedef __INT_LEAST8_TYPE__ yytype_int8;
761
#elif defined YY_STDINT_H
762
typedef int_least8_t yytype_int8;
763
#else
764
typedef signed char yytype_int8;
765
#endif
766
767
#ifdef __INT_LEAST16_MAX__
768
typedef __INT_LEAST16_TYPE__ yytype_int16;
769
#elif defined YY_STDINT_H
770
typedef int_least16_t yytype_int16;
771
#else
772
typedef short yytype_int16;
773
#endif
774
775
/* Work around bug in HP-UX 11.23, which defines these macros
776
incorrectly for preprocessor constants. This workaround can likely
777
be removed in 2023, as HPE has promised support for HP-UX 11.23
778
(aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
779
<https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
780
#ifdef __hpux
781
# undef UINT_LEAST8_MAX
782
# undef UINT_LEAST16_MAX
783
# define UINT_LEAST8_MAX 255
784
# define UINT_LEAST16_MAX 65535
785
#endif
786
787
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
788
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
789
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
790
&& UINT_LEAST8_MAX <= INT_MAX)
791
typedef uint_least8_t yytype_uint8;
792
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
793
typedef unsigned char yytype_uint8;
794
#else
795
typedef short yytype_uint8;
796
#endif
797
798
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
799
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
800
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
801
&& UINT_LEAST16_MAX <= INT_MAX)
802
typedef uint_least16_t yytype_uint16;
803
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
804
typedef unsigned short yytype_uint16;
805
#else
806
typedef int yytype_uint16;
807
#endif
808
809
#ifndef YYPTRDIFF_T
810
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
811
# define YYPTRDIFF_T __PTRDIFF_TYPE__
812
# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
813
# elif defined PTRDIFF_MAX
814
# ifndef ptrdiff_t
815
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
816
# endif
817
# define YYPTRDIFF_T ptrdiff_t
818
# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
819
# else
820
# define YYPTRDIFF_T long
821
# define YYPTRDIFF_MAXIMUM LONG_MAX
822
# endif
823
#endif
824
825
#ifndef YYSIZE_T
826
# ifdef __SIZE_TYPE__
827
# define YYSIZE_T __SIZE_TYPE__
828
# elif defined size_t
829
# define YYSIZE_T size_t
830
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
831
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
832
# define YYSIZE_T size_t
833
# else
834
# define YYSIZE_T unsigned
835
# endif
836
#endif
837
838
#define YYSIZE_MAXIMUM \
839
YY_CAST (YYPTRDIFF_T, \
840
(YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
841
? YYPTRDIFF_MAXIMUM \
842
: YY_CAST (YYSIZE_T, -1)))
843
844
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
845
846
847
/* Stored state numbers (used for stacks). */
848
typedef yytype_int16 yy_state_t;
849
850
/* State numbers in computations. */
851
typedef int yy_state_fast_t;
852
853
#ifndef YY_
854
# if defined YYENABLE_NLS && YYENABLE_NLS
855
# if ENABLE_NLS
856
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
857
# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
858
# endif
859
# endif
860
# ifndef YY_
861
# define YY_(Msgid) Msgid
862
# endif
863
#endif
864
865
866
#ifndef YY_ATTRIBUTE_PURE
867
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
868
# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
869
# else
870
# define YY_ATTRIBUTE_PURE
871
# endif
872
#endif
873
874
#ifndef YY_ATTRIBUTE_UNUSED
875
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
876
# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
877
# else
878
# define YY_ATTRIBUTE_UNUSED
879
# endif
880
#endif
881
882
/* Suppress unused-variable warnings by "using" E. */
883
#if ! defined lint || defined __GNUC__
884
# define YY_USE(E) ((void) (E))
885
#else
886
# define YY_USE(E) /* empty */
887
#endif
888
889
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
890
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
891
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
892
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
893
_Pragma ("GCC diagnostic push") \
894
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
895
# else
896
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
897
_Pragma ("GCC diagnostic push") \
898
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
899
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
900
# endif
901
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
902
_Pragma ("GCC diagnostic pop")
903
#else
904
# define YY_INITIAL_VALUE(Value) Value
905
#endif
906
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
907
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
908
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
909
#endif
910
#ifndef YY_INITIAL_VALUE
911
# define YY_INITIAL_VALUE(Value) /* Nothing. */
912
#endif
913
914
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
915
# define YY_IGNORE_USELESS_CAST_BEGIN \
916
_Pragma ("GCC diagnostic push") \
917
_Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
918
# define YY_IGNORE_USELESS_CAST_END \
919
_Pragma ("GCC diagnostic pop")
920
#endif
921
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
922
# define YY_IGNORE_USELESS_CAST_BEGIN
923
# define YY_IGNORE_USELESS_CAST_END
924
#endif
925
926
927
#define YY_ASSERT(E) ((void) (0 && (E)))
928
929
#if 1
930
931
/* The parser invokes alloca or malloc; define the necessary symbols. */
932
933
# ifdef YYSTACK_USE_ALLOCA
934
# if YYSTACK_USE_ALLOCA
935
# ifdef __GNUC__
936
# define YYSTACK_ALLOC __builtin_alloca
937
# elif defined __BUILTIN_VA_ARG_INCR
938
# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
939
# elif defined _AIX
940
# define YYSTACK_ALLOC __alloca
941
# elif defined _MSC_VER
942
# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
943
# define alloca _alloca
944
# else
945
# define YYSTACK_ALLOC alloca
946
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
947
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
948
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
949
# ifndef EXIT_SUCCESS
950
# define EXIT_SUCCESS 0
951
# endif
952
# endif
953
# endif
954
# endif
955
# endif
956
957
# ifdef YYSTACK_ALLOC
958
/* Pacify GCC's 'empty if-body' warning. */
959
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
960
# ifndef YYSTACK_ALLOC_MAXIMUM
961
/* The OS might guarantee only one guard page at the bottom of the stack,
962
and a page size can be as small as 4096 bytes. So we cannot safely
963
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
964
to allow for a few compiler-allocated temporary stack slots. */
965
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
966
# endif
967
# else
968
# define YYSTACK_ALLOC YYMALLOC
969
# define YYSTACK_FREE YYFREE
970
# ifndef YYSTACK_ALLOC_MAXIMUM
971
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
972
# endif
973
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
974
&& ! ((defined YYMALLOC || defined malloc) \
975
&& (defined YYFREE || defined free)))
976
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
977
# ifndef EXIT_SUCCESS
978
# define EXIT_SUCCESS 0
979
# endif
980
# endif
981
# ifndef YYMALLOC
982
# define YYMALLOC malloc
983
# if ! defined malloc && ! defined EXIT_SUCCESS
984
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
985
# endif
986
# endif
987
# ifndef YYFREE
988
# define YYFREE free
989
# if ! defined free && ! defined EXIT_SUCCESS
990
void free (void *); /* INFRINGES ON USER NAME SPACE */
991
# endif
992
# endif
993
# endif
994
#endif /* 1 */
995
996
#if (! defined yyoverflow \
997
&& (! defined __cplusplus \
998
|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
999
1000
/* A type that is properly aligned for any stack member. */
1001
union yyalloc
1002
{
1003
yy_state_t yyss_alloc;
1004
YYSTYPE yyvs_alloc;
1005
};
1006
1007
/* The size of the maximum gap between one aligned stack and the next. */
1008
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1009
1010
/* The size of an array large to enough to hold all stacks, each with
1011
N elements. */
1012
# define YYSTACK_BYTES(N) \
1013
((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1014
+ YYSTACK_GAP_MAXIMUM)
1015
1016
# define YYCOPY_NEEDED 1
1017
1018
/* Relocate STACK from its old location to the new one. The
1019
local variables YYSIZE and YYSTACKSIZE give the old and new number of
1020
elements in the stack, and YYPTR gives the new location of the
1021
stack. Advance YYPTR to a properly aligned location for the next
1022
stack. */
1023
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1024
do \
1025
{ \
1026
YYPTRDIFF_T yynewbytes; \
1027
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1028
Stack = &yyptr->Stack_alloc; \
1029
yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1030
yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1031
} \
1032
while (0)
1033
1034
#endif
1035
1036
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1037
/* Copy COUNT objects from SRC to DST. The source and destination do
1038
not overlap. */
1039
# ifndef YYCOPY
1040
# if defined __GNUC__ && 1 < __GNUC__
1041
# define YYCOPY(Dst, Src, Count) \
1042
__builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1043
# else
1044
# define YYCOPY(Dst, Src, Count) \
1045
do \
1046
{ \
1047
YYPTRDIFF_T yyi; \
1048
for (yyi = 0; yyi < (Count); yyi++) \
1049
(Dst)[yyi] = (Src)[yyi]; \
1050
} \
1051
while (0)
1052
# endif
1053
# endif
1054
#endif /* !YYCOPY_NEEDED */
1055
1056
/* YYFINAL -- State number of the termination state. */
1057
#define YYFINAL 452
1058
/* YYLAST -- Last index in YYTABLE. */
1059
#define YYLAST 12701
1060
1061
/* YYNTOKENS -- Number of terminals. */
1062
#define YYNTOKENS 465
1063
/* YYNNTS -- Number of nonterminals. */
1064
#define YYNNTS 132
1065
/* YYNRULES -- Number of rules. */
1066
#define YYNRULES 700
1067
/* YYNSTATES -- Number of states. */
1068
#define YYNSTATES 946
1069
1070
/* YYMAXUTOK -- Last valid token kind. */
1071
#define YYMAXUTOK 719
1072
1073
1074
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1075
as returned by yylex, with out-of-bounds checking. */
1076
#define YYTRANSLATE(YYX) \
1077
(0 <= (YYX) && (YYX) <= YYMAXUTOK \
1078
? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1079
: YYSYMBOL_YYUNDEF)
1080
1081
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1082
as returned by yylex. */
1083
static const yytype_int16 yytranslate[] =
1084
{
1085
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1086
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1087
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1088
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1089
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1090
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1091
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1092
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1093
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1094
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1095
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1096
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1097
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1098
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1099
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1100
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1101
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1102
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1103
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1104
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1105
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1106
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1107
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1108
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1109
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1110
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1111
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1112
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1113
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1114
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1115
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1116
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1117
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1118
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1119
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1120
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1121
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1122
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1123
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1124
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1125
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1126
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1127
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1128
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1129
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1130
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1131
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1132
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1133
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1134
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1135
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1136
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1137
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1138
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1139
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1140
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1141
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1142
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1143
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1144
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1145
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1146
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1147
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1148
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1149
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1150
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1151
405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1152
415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1153
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1154
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1155
445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1156
455, 456, 457, 458, 459, 460, 461, 462, 463, 464
1157
};
1158
1159
#if YYDEBUG
1160
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1161
static const yytype_int16 yyrline[] =
1162
{
1163
0, 355, 355, 361, 364, 369, 372, 375, 379, 382,
1164
385, 389, 393, 397, 401, 405, 409, 415, 422, 425,
1165
428, 431, 434, 439, 447, 454, 461, 467, 471, 478,
1166
481, 487, 505, 530, 538, 543, 570, 578, 584, 588,
1167
592, 612, 613, 614, 615, 621, 622, 627, 632, 641,
1168
642, 647, 655, 656, 662, 671, 672, 677, 682, 687,
1169
695, 696, 705, 717, 718, 727, 728, 737, 738, 747,
1170
748, 756, 757, 765, 766, 774, 775, 775, 793, 794,
1171
810, 814, 818, 822, 827, 831, 835, 839, 843, 847,
1172
851, 858, 861, 872, 879, 884, 891, 896, 901, 908,
1173
912, 916, 920, 925, 930, 939, 939, 950, 954, 961,
1174
966, 974, 982, 994, 997, 1004, 1017, 1040, 1063, 1078,
1175
1103, 1114, 1124, 1134, 1144, 1153, 1156, 1160, 1164, 1169,
1176
1177, 1182, 1187, 1192, 1197, 1206, 1216, 1243, 1252, 1259,
1177
1266, 1273, 1280, 1288, 1296, 1306, 1316, 1323, 1333, 1339,
1178
1342, 1349, 1353, 1357, 1365, 1374, 1377, 1388, 1391, 1394,
1179
1398, 1402, 1406, 1410, 1413, 1418, 1422, 1427, 1435, 1439,
1180
1444, 1450, 1456, 1463, 1468, 1473, 1481, 1486, 1498, 1512,
1181
1518, 1523, 1531, 1539, 1547, 1555, 1563, 1571, 1579, 1587,
1182
1595, 1602, 1609, 1613, 1618, 1623, 1628, 1633, 1638, 1643,
1183
1647, 1651, 1655, 1659, 1665, 1671, 1681, 1688, 1691, 1699,
1184
1706, 1717, 1722, 1730, 1734, 1744, 1747, 1753, 1759, 1765,
1185
1773, 1783, 1787, 1791, 1795, 1800, 1804, 1809, 1814, 1819,
1186
1824, 1829, 1834, 1839, 1844, 1849, 1855, 1861, 1867, 1872,
1187
1877, 1882, 1887, 1892, 1897, 1902, 1907, 1912, 1917, 1922,
1188
1927, 1934, 1939, 1944, 1949, 1954, 1959, 1964, 1969, 1974,
1189
1979, 1984, 1989, 1997, 2005, 2013, 2019, 2025, 2031, 2037,
1190
2043, 2049, 2055, 2061, 2067, 2073, 2079, 2085, 2091, 2097,
1191
2103, 2109, 2115, 2121, 2127, 2133, 2139, 2145, 2151, 2157,
1192
2163, 2169, 2175, 2181, 2187, 2193, 2199, 2205, 2211, 2219,
1193
2227, 2235, 2243, 2251, 2259, 2267, 2275, 2283, 2291, 2299,
1194
2307, 2313, 2319, 2325, 2331, 2337, 2343, 2349, 2355, 2361,
1195
2367, 2373, 2379, 2385, 2391, 2397, 2403, 2409, 2415, 2421,
1196
2427, 2433, 2439, 2445, 2451, 2457, 2463, 2469, 2475, 2481,
1197
2487, 2493, 2499, 2505, 2511, 2517, 2523, 2527, 2531, 2535,
1198
2540, 2545, 2550, 2555, 2560, 2565, 2570, 2575, 2580, 2585,
1199
2590, 2595, 2600, 2605, 2611, 2617, 2623, 2629, 2635, 2641,
1200
2647, 2653, 2659, 2665, 2671, 2677, 2683, 2688, 2693, 2698,
1201
2703, 2708, 2713, 2718, 2723, 2728, 2733, 2738, 2743, 2748,
1202
2753, 2758, 2763, 2768, 2773, 2778, 2783, 2788, 2793, 2798,
1203
2803, 2808, 2813, 2818, 2823, 2828, 2833, 2838, 2843, 2848,
1204
2854, 2860, 2865, 2870, 2875, 2881, 2886, 2891, 2896, 2902,
1205
2907, 2912, 2917, 2923, 2928, 2933, 2938, 2944, 2950, 2956,
1206
2962, 2967, 2973, 2979, 2985, 2990, 2995, 3000, 3005, 3010,
1207
3016, 3021, 3026, 3031, 3037, 3042, 3047, 3052, 3058, 3063,
1208
3068, 3073, 3079, 3084, 3089, 3094, 3100, 3105, 3110, 3115,
1209
3121, 3126, 3131, 3136, 3142, 3147, 3152, 3157, 3163, 3168,
1210
3173, 3178, 3184, 3189, 3194, 3199, 3205, 3210, 3215, 3220,
1211
3226, 3231, 3236, 3241, 3247, 3252, 3257, 3262, 3268, 3273,
1212
3278, 3283, 3289, 3294, 3299, 3304, 3310, 3315, 3320, 3325,
1213
3330, 3335, 3340, 3345, 3350, 3355, 3360, 3365, 3370, 3375,
1214
3380, 3385, 3390, 3395, 3400, 3405, 3410, 3415, 3420, 3425,
1215
3430, 3436, 3442, 3448, 3454, 3460, 3466, 3472, 3479, 3486,
1216
3492, 3498, 3504, 3510, 3517, 3524, 3531, 3538, 3542, 3546,
1217
3551, 3567, 3572, 3577, 3585, 3585, 3602, 3602, 3612, 3615,
1218
3628, 3650, 3677, 3681, 3687, 3692, 3703, 3706, 3712, 3718,
1219
3727, 3730, 3736, 3740, 3741, 3747, 3748, 3749, 3750, 3751,
1220
3752, 3753, 3754, 3758, 3766, 3767, 3771, 3767, 3783, 3784,
1221
3788, 3788, 3795, 3795, 3809, 3812, 3820, 3828, 3839, 3840,
1222
3844, 3847, 3854, 3861, 3865, 3873, 3877, 3890, 3893, 3900,
1223
3900, 3920, 3923, 3929, 3941, 3953, 3956, 3964, 3964, 3979,
1224
3979, 3997, 3997, 4018, 4021, 4027, 4030, 4036, 4040, 4047,
1225
4052, 4057, 4064, 4067, 4071, 4075, 4079, 4088, 4092, 4101,
1226
4104, 4107, 4115, 4115, 4157, 4162, 4165, 4170, 4173, 4178,
1227
4181, 4186, 4189, 4194, 4197, 4202, 4205, 4210, 4214, 4219,
1228
4223, 4228, 4232, 4239, 4242, 4247, 4250, 4253, 4256, 4259,
1229
4264, 4273, 4284, 4289, 4297, 4301, 4306, 4310, 4315, 4319,
1230
4324, 4328, 4335, 4338, 4343, 4346, 4349, 4352, 4357, 4360,
1231
4365, 4371, 4374, 4377, 4380, 4385, 4389, 4394, 4398, 4403,
1232
4407, 4414, 4417, 4422, 4425, 4430, 4433, 4439, 4442, 4447,
1233
4450
1234
};
1235
#endif
1236
1237
/** Accessing symbol of state STATE. */
1238
#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1239
1240
#if 1
1241
/* The user-facing name of the symbol whose (internal) number is
1242
YYSYMBOL. No bounds checking. */
1243
static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1244
1245
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1246
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1247
static const char *const yytname[] =
1248
{
1249
"\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1250
"UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1251
"UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1252
"MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1253
"MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1254
"SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1255
"SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1256
"ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1257
"USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1258
"TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1259
"ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1260
"UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1261
"FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
1262
"UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
1263
"I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
1264
"I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
1265
"I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
1266
"I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
1267
"DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1268
"F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1269
"F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1270
"F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
1271
"DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
1272
"F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
1273
"F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
1274
"F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
1275
"F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
1276
"F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
1277
"F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
1278
"RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "COOPMAT",
1279
"HITOBJECTNV", "HITOBJECTATTRNV", "SAMPLERCUBEARRAY",
1280
"SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
1281
"SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
1282
"SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1283
"ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1284
"USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
1285
"SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
1286
"SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
1287
"USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
1288
"F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1289
"F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1290
"F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1291
"F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1292
"F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1293
"F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1294
"IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1295
"IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1296
"IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1297
"UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1298
"IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1299
"IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1300
"UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1301
"F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1302
"F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1303
"F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1304
"F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1305
"U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1306
"U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1307
"U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1308
"I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1309
"U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1310
"U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1311
"UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1312
"TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1313
"ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1314
"UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1315
"TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1316
"F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1317
"F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1318
"F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1319
"F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1320
"ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1321
"F16SUBPASSINPUTMS", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE",
1322
"SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID",
1323
"SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS",
1324
"SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "ATTACHMENTEXT", "IATTACHMENTEXT",
1325
"UATTACHMENTEXT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1326
"GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1327
"DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1328
"AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1329
"LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1330
"LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1331
"SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1332
"LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1333
"QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1334
"LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
1335
"FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1336
"IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1337
"VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1338
"DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
1339
"TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
1340
"TILEIMAGEEXT", "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT",
1341
"INT16CONSTANT", "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT",
1342
"UINT32CONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE",
1343
"DEMOTE", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV",
1344
"CALLDATAINNV", "PAYLOADEXT", "PAYLOADINEXT", "HITATTREXT",
1345
"CALLDATAEXT", "CALLDATAINEXT", "PATCH", "SAMPLE", "NONUNIFORM",
1346
"COHERENT", "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY",
1347
"DEVICECOHERENT", "QUEUEFAMILYCOHERENT", "WORKGROUPCOHERENT",
1348
"SUBGROUPCOHERENT", "NONPRIVATE", "SHADERCALLCOHERENT", "NOPERSPECTIVE",
1349
"EXPLICITINTERPAMD", "PERVERTEXEXT", "PERVERTEXNV", "PERPRIMITIVENV",
1350
"PERVIEWNV", "PERTASKNV", "PERPRIMITIVEEXT", "TASKPAYLOADWORKGROUPEXT",
1351
"PRECISE", "$accept", "variable_identifier", "primary_expression",
1352
"postfix_expression", "integer_expression", "function_call",
1353
"function_call_or_method", "function_call_generic",
1354
"function_call_header_no_parameters",
1355
"function_call_header_with_parameters", "function_call_header",
1356
"function_identifier", "unary_expression", "unary_operator",
1357
"multiplicative_expression", "additive_expression", "shift_expression",
1358
"relational_expression", "equality_expression", "and_expression",
1359
"exclusive_or_expression", "inclusive_or_expression",
1360
"logical_and_expression", "logical_xor_expression",
1361
"logical_or_expression", "conditional_expression", "$@1",
1362
"assignment_expression", "assignment_operator", "expression",
1363
"constant_expression", "declaration", "block_structure", "$@2",
1364
"identifier_list", "function_prototype", "function_declarator",
1365
"function_header_with_parameters", "function_header",
1366
"parameter_declarator", "parameter_declaration",
1367
"parameter_type_specifier", "init_declarator_list", "single_declaration",
1368
"fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1369
"layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1370
"precise_qualifier", "type_qualifier", "single_type_qualifier",
1371
"storage_qualifier", "non_uniform_qualifier", "type_name_list",
1372
"type_specifier", "array_specifier", "type_parameter_specifier_opt",
1373
"type_parameter_specifier", "type_parameter_specifier_list",
1374
"type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1375
"$@3", "$@4", "struct_declaration_list", "struct_declaration",
1376
"struct_declarator_list", "struct_declarator", "initializer",
1377
"initializer_list", "declaration_statement", "statement",
1378
"simple_statement", "demote_statement", "compound_statement", "$@5",
1379
"$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1380
"compound_statement_no_new_scope", "statement_list",
1381
"expression_statement", "selection_statement",
1382
"selection_statement_nonattributed", "selection_rest_statement",
1383
"condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1384
"switch_statement_list", "case_label", "iteration_statement",
1385
"iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1386
"for_init_statement", "conditionopt", "for_rest_statement",
1387
"jump_statement", "translation_unit", "external_declaration",
1388
"function_definition", "$@13", "attribute", "attribute_list",
1389
"single_attribute", "spirv_requirements_list",
1390
"spirv_requirements_parameter", "spirv_extension_list",
1391
"spirv_capability_list", "spirv_execution_mode_qualifier",
1392
"spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter",
1393
"spirv_execution_mode_id_parameter_list",
1394
"spirv_storage_class_qualifier", "spirv_decorate_qualifier",
1395
"spirv_decorate_parameter_list", "spirv_decorate_parameter",
1396
"spirv_decorate_id_parameter_list", "spirv_decorate_id_parameter",
1397
"spirv_decorate_string_parameter_list", "spirv_type_specifier",
1398
"spirv_type_parameter_list", "spirv_type_parameter",
1399
"spirv_instruction_qualifier", "spirv_instruction_qualifier_list",
1400
"spirv_instruction_qualifier_id", YY_NULLPTR
1401
};
1402
1403
static const char *
1404
yysymbol_name (yysymbol_kind_t yysymbol)
1405
{
1406
return yytname[yysymbol];
1407
}
1408
#endif
1409
1410
#define YYPACT_NINF (-872)
1411
1412
#define yypact_value_is_default(Yyn) \
1413
((Yyn) == YYPACT_NINF)
1414
1415
#define YYTABLE_NINF (-695)
1416
1417
#define yytable_value_is_error(Yyn) \
1418
0
1419
1420
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1421
STATE-NUM. */
1422
static const yytype_int16 yypact[] =
1423
{
1424
4648, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1425
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1426
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1427
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1428
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1429
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1430
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1431
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1432
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1433
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1434
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1435
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1436
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1437
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1438
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1439
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1440
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1441
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1442
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1443
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1444
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1445
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1446
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1447
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1448
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1449
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1450
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1451
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1452
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1453
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1454
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1455
-872, -872, -872, -872, -872, -872, -872, -872, -305, -301,
1456
-289, -276, -246, -238, -227, -182, -872, -872, -872, -872,
1457
-872, -168, -872, -872, -872, -872, -872, -55, -872, -872,
1458
-872, -872, -872, -319, -872, -872, -872, -872, -872, -872,
1459
-872, -135, -120, -872, -872, -872, -872, -872, -872, -872,
1460
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1461
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1462
-872, -872, -872, -872, -872, -872, -872, -872, -327, -114,
1463
-81, -124, 7882, -313, -872, -101, -872, -872, -872, -872,
1464
5572, -872, -872, -872, -872, -94, -872, -872, 952, -872,
1465
-872, 7882, -73, -872, -872, -872, 6034, -78, -252, -250,
1466
-216, -197, -136, -78, -127, -49, 12303, -872, -13, -346,
1467
-39, -872, -309, -872, -10, -9, 7882, -872, -872, -872,
1468
7882, -38, -37, -872, -267, -872, -236, -872, -872, 10983,
1469
-2, -872, -872, -872, 3, -35, 7882, -872, -8, -6,
1470
-1, -872, -256, -872, -255, -4, 4, 7, 8, -237,
1471
10, 11, 13, 14, 15, 18, -232, 9, 19, 27,
1472
-188, -872, -3, 7882, -872, 20, -872, -229, -872, -872,
1473
-219, 9223, -872, -272, 1414, -872, -872, -872, -872, -872,
1474
-2, -277, -872, 9663, -265, -872, -23, -872, -112, 10983,
1475
10983, -872, 10983, -872, -872, -872, -872, -872, -872, -872,
1476
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1477
-872, -872, -253, -872, -872, -872, 29, -204, 11423, 28,
1478
-872, 10983, -872, 31, -321, 17, -9, 32, -872, -325,
1479
-78, -872, 5, -872, -330, 33, -125, 10983, -123, -872,
1480
-130, -119, -146, -118, 34, -103, -78, -872, 11863, -872,
1481
-74, 10983, 36, -49, -872, 7882, 24, 6496, -872, 7882,
1482
10983, -872, -346, -872, 30, -872, -872, -33, -133, -105,
1483
-303, -11, -14, 21, 23, 48, 52, -316, 41, -872,
1484
10103, -872, 42, -872, -872, 46, 38, 40, -872, 64,
1485
67, 60, 10543, 74, 10983, 68, 65, 69, 70, 73,
1486
-167, -872, -872, -47, -872, -114, 77, 31, -872, -872,
1487
-872, -872, -872, 1876, -872, -872, -872, -872, -872, -872,
1488
-872, -872, -872, 5110, 17, 9663, -261, 8343, -872, -872,
1489
9663, 7882, -872, 50, -872, -872, -872, -203, -872, -872,
1490
10983, 51, -872, -872, 10983, 87, -872, -872, -872, 10983,
1491
-872, -872, -872, -312, -872, -872, -200, 80, -872, -872,
1492
-872, -872, -872, -872, -199, -872, -196, -872, -872, -195,
1493
71, -872, -872, -872, -872, -169, -872, -164, -872, -872,
1494
-872, -872, -872, -161, -872, 83, -872, -160, 84, -153,
1495
80, -872, -278, -152, -872, 91, 94, -872, -872, 24,
1496
-2, -43, -872, -872, -872, 6958, -872, -872, -872, 10983,
1497
10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983,
1498
10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983, -872, -872,
1499
-872, 93, -872, 2338, -872, -872, -872, 2338, -872, 10983,
1500
-872, -872, -42, 10983, -32, -872, -872, -872, -872, -872,
1501
-872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1502
-872, 10983, 10983, -872, -872, -872, -872, -872, -872, -872,
1503
9663, -872, -872, -76, -872, 7420, -872, -872, 96, 95,
1504
-872, -872, -872, -872, -872, -132, -131, -872, -311, -872,
1505
-330, -872, -330, -872, 10983, 10983, -872, -130, -872, -130,
1506
-872, -146, -146, -872, 101, 34, -872, 11863, -872, 10983,
1507
-872, -872, -41, 17, 24, -872, -872, -872, -872, -872,
1508
-33, -33, -133, -133, -105, -105, -105, -105, -303, -303,
1509
-11, -14, 21, 23, 48, 52, 10983, -872, 2338, 4186,
1510
59, 3724, -151, -872, -150, -872, -872, -872, -872, -872,
1511
8783, -872, -872, -872, 105, -872, 72, -872, -149, -872,
1512
-148, -872, -141, -872, -140, -872, -139, -138, -872, -872,
1513
-872, -28, 102, 95, 75, 107, 106, -872, -872, 4186,
1514
108, -872, -872, -872, -872, -872, -872, -872, -872, -872,
1515
-872, -872, 10983, -872, 100, 2800, 10983, -872, 104, 109,
1516
76, 112, 3262, -872, 113, -872, 9663, -872, -872, -872,
1517
-137, 10983, 2800, 108, -872, -872, 2338, -872, 110, 95,
1518
-872, -872, 2338, 114, -872, -872
1519
};
1520
1521
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1522
Performed when YYTABLE does not specify something else to do. Zero
1523
means the default is an error. */
1524
static const yytype_int16 yydefact[] =
1525
{
1526
0, 168, 225, 223, 224, 222, 229, 230, 231, 232,
1527
233, 234, 235, 236, 237, 226, 227, 228, 238, 239,
1528
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1529
351, 352, 353, 354, 355, 356, 357, 377, 378, 379,
1530
380, 381, 382, 383, 392, 405, 406, 393, 394, 396,
1531
395, 397, 398, 399, 400, 401, 402, 403, 404, 177,
1532
178, 251, 252, 250, 253, 260, 261, 258, 259, 256,
1533
257, 254, 255, 283, 284, 285, 295, 296, 297, 280,
1534
281, 282, 292, 293, 294, 277, 278, 279, 289, 290,
1535
291, 274, 275, 276, 286, 287, 288, 262, 263, 264,
1536
298, 299, 300, 265, 266, 267, 310, 311, 312, 268,
1537
269, 270, 322, 323, 324, 271, 272, 273, 334, 335,
1538
336, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1539
313, 314, 315, 316, 317, 318, 319, 320, 321, 325,
1540
326, 327, 328, 329, 330, 331, 332, 333, 337, 338,
1541
339, 340, 341, 342, 343, 344, 345, 349, 346, 347,
1542
348, 533, 534, 535, 536, 538, 182, 361, 362, 385,
1543
388, 350, 359, 360, 376, 358, 407, 408, 411, 412,
1544
413, 415, 416, 417, 419, 420, 421, 423, 424, 520,
1545
521, 384, 386, 387, 363, 364, 365, 409, 366, 370,
1546
371, 374, 414, 418, 422, 367, 368, 372, 373, 410,
1547
369, 375, 454, 456, 457, 458, 460, 461, 462, 464,
1548
465, 466, 468, 469, 470, 472, 473, 474, 476, 477,
1549
478, 480, 481, 482, 484, 485, 486, 488, 489, 490,
1550
492, 493, 494, 496, 497, 455, 459, 463, 467, 471,
1551
479, 483, 487, 475, 491, 495, 498, 499, 500, 501,
1552
502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
1553
512, 513, 514, 515, 516, 517, 518, 519, 389, 390,
1554
391, 425, 434, 436, 430, 435, 437, 438, 440, 441,
1555
442, 444, 445, 446, 448, 449, 450, 452, 453, 426,
1556
427, 428, 439, 429, 431, 432, 433, 443, 447, 451,
1557
525, 526, 529, 530, 531, 532, 527, 528, 0, 0,
1558
0, 0, 0, 0, 0, 0, 166, 167, 522, 523,
1559
524, 0, 631, 137, 541, 542, 543, 0, 540, 172,
1560
170, 171, 169, 0, 221, 173, 175, 176, 174, 139,
1561
138, 0, 203, 184, 186, 181, 188, 190, 185, 187,
1562
183, 189, 191, 179, 180, 206, 192, 199, 200, 201,
1563
202, 193, 194, 195, 196, 197, 198, 140, 141, 143,
1564
142, 144, 146, 147, 145, 205, 154, 630, 0, 632,
1565
0, 114, 113, 0, 125, 130, 161, 160, 158, 162,
1566
0, 155, 157, 163, 135, 216, 159, 539, 0, 627,
1567
629, 0, 0, 164, 165, 537, 0, 0, 0, 0,
1568
0, 0, 0, 0, 0, 0, 0, 546, 0, 0,
1569
0, 99, 0, 94, 0, 109, 0, 121, 115, 123,
1570
0, 124, 0, 97, 131, 102, 0, 156, 136, 0,
1571
209, 215, 1, 628, 0, 0, 0, 96, 0, 0,
1572
0, 639, 0, 697, 0, 0, 0, 0, 0, 0,
1573
0, 0, 0, 0, 0, 0, 0, 0, 0, 637,
1574
0, 635, 0, 0, 544, 151, 153, 0, 149, 207,
1575
0, 0, 100, 0, 0, 633, 110, 116, 120, 122,
1576
118, 126, 117, 0, 132, 105, 0, 103, 0, 0,
1577
0, 9, 0, 43, 42, 44, 41, 5, 6, 7,
1578
8, 2, 16, 14, 15, 17, 10, 11, 12, 13,
1579
3, 18, 37, 20, 25, 26, 0, 0, 30, 0,
1580
219, 0, 36, 218, 0, 210, 111, 0, 95, 0,
1581
0, 695, 0, 647, 0, 0, 0, 0, 0, 664,
1582
0, 0, 0, 0, 0, 0, 0, 689, 0, 662,
1583
0, 0, 0, 0, 98, 0, 0, 0, 548, 0,
1584
0, 148, 0, 204, 0, 211, 45, 49, 52, 55,
1585
60, 63, 65, 67, 69, 71, 73, 75, 0, 34,
1586
0, 101, 575, 584, 588, 0, 0, 0, 609, 0,
1587
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588
45, 78, 91, 0, 562, 0, 163, 135, 565, 586,
1589
564, 572, 563, 0, 566, 567, 590, 568, 597, 569,
1590
570, 605, 571, 0, 119, 0, 127, 0, 556, 134,
1591
0, 0, 107, 0, 104, 38, 39, 0, 22, 23,
1592
0, 0, 28, 27, 0, 221, 31, 33, 40, 0,
1593
217, 112, 699, 0, 700, 640, 0, 0, 698, 659,
1594
655, 656, 657, 658, 0, 653, 0, 93, 660, 0,
1595
0, 674, 675, 676, 677, 0, 672, 0, 681, 682,
1596
683, 684, 680, 0, 678, 0, 685, 0, 0, 0,
1597
2, 693, 216, 0, 691, 0, 0, 634, 636, 0,
1598
554, 0, 552, 547, 549, 0, 152, 150, 208, 0,
1599
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600
0, 0, 0, 0, 0, 0, 0, 0, 76, 212,
1601
213, 0, 574, 0, 607, 620, 619, 0, 611, 0,
1602
623, 621, 0, 0, 0, 604, 624, 625, 626, 573,
1603
81, 82, 84, 83, 86, 87, 88, 89, 90, 85,
1604
80, 0, 0, 589, 585, 587, 591, 598, 606, 129,
1605
0, 559, 560, 0, 133, 0, 108, 4, 0, 24,
1606
21, 32, 220, 643, 645, 0, 0, 696, 0, 649,
1607
0, 648, 0, 651, 0, 0, 666, 0, 665, 0,
1608
668, 0, 0, 670, 0, 0, 690, 0, 687, 0,
1609
663, 638, 0, 555, 0, 550, 545, 46, 47, 48,
1610
51, 50, 53, 54, 58, 59, 56, 57, 61, 62,
1611
64, 66, 68, 70, 72, 74, 0, 214, 576, 0,
1612
0, 0, 0, 622, 0, 603, 79, 92, 128, 557,
1613
0, 106, 19, 641, 0, 642, 0, 654, 0, 661,
1614
0, 673, 0, 679, 0, 686, 0, 0, 692, 551,
1615
553, 0, 0, 595, 0, 0, 0, 614, 613, 616,
1616
582, 599, 558, 561, 644, 646, 650, 652, 667, 669,
1617
671, 688, 0, 577, 0, 0, 0, 615, 0, 0,
1618
594, 0, 0, 592, 0, 77, 0, 579, 608, 578,
1619
0, 617, 0, 582, 581, 583, 601, 596, 0, 618,
1620
612, 593, 602, 0, 610, 600
1621
};
1622
1623
/* YYPGOTO[NTERM-NUM]. */
1624
static const yytype_int16 yypgoto[] =
1625
{
1626
-872, -544, -872, -872, -872, -872, -872, -872, -872, -872,
1627
-872, -872, -436, -872, -392, -391, -490, -390, -269, -266,
1628
-268, -264, -262, -260, -872, -482, -872, -499, -872, -492,
1629
-534, 6, -872, -872, -872, 1, -403, -872, -872, 45,
1630
44, 49, -872, -872, -406, -872, -872, -872, -872, -104,
1631
-872, -389, -375, -872, 12, -872, 0, -433, -872, -872,
1632
-872, -553, 145, -872, -872, -872, -560, -556, -233, -344,
1633
-614, -872, -373, -626, -871, -872, -430, -872, -872, -440,
1634
-437, -872, -872, 63, -737, -363, -872, -144, -872, -399,
1635
-872, -142, -872, -872, -872, -872, -134, -872, -872, -872,
1636
-872, -872, -872, -872, -872, 97, -872, -872, 2, -872,
1637
-71, -308, -416, -872, -872, -872, -304, -307, -302, -872,
1638
-872, -315, -310, -306, -300, -314, -872, -299, -317, -872,
1639
-395, -538
1640
};
1641
1642
/* YYDEFGOTO[NTERM-NUM]. */
1643
static const yytype_int16 yydefgoto[] =
1644
{
1645
0, 530, 531, 532, 798, 533, 534, 535, 536, 537,
1646
538, 539, 620, 541, 587, 588, 589, 590, 591, 592,
1647
593, 594, 595, 596, 597, 621, 856, 622, 781, 623,
1648
711, 624, 388, 651, 508, 625, 390, 391, 392, 437,
1649
438, 439, 393, 394, 395, 396, 397, 398, 487, 488,
1650
399, 400, 401, 402, 542, 490, 599, 493, 450, 451,
1651
544, 405, 406, 407, 579, 483, 577, 578, 721, 722,
1652
649, 793, 628, 629, 630, 631, 632, 753, 892, 928,
1653
920, 921, 922, 929, 633, 634, 635, 636, 923, 895,
1654
637, 638, 924, 943, 639, 640, 641, 859, 757, 861,
1655
899, 918, 919, 642, 408, 409, 410, 434, 643, 480,
1656
481, 460, 461, 805, 806, 412, 684, 685, 689, 413,
1657
414, 695, 696, 703, 704, 707, 415, 713, 714, 416,
1658
462, 463
1659
};
1660
1661
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1662
positive, shift that token. If negative, reduce the rule whose
1663
number is the opposite. If YYTABLE_NINF, syntax error. */
1664
static const yytype_int16 yytable[] =
1665
{
1666
404, 389, 411, 440, 648, 455, 387, 785, 454, 598,
1667
455, 504, 403, 540, 678, 712, 858, 545, 702, 725,
1668
657, 724, 456, 688, 679, 447, 747, 456, 476, 672,
1669
678, 789, 673, 792, 736, 737, 794, 716, 431, 666,
1670
427, 669, 803, 672, 927, 485, 726, 440, 491, 442,
1671
417, 935, 443, 670, 418, 586, 492, 680, 681, 682,
1672
683, 927, 748, 674, 432, 447, 419, 644, 646, 486,
1673
738, 739, 428, 655, 656, 687, 804, 674, -694, 420,
1674
491, 447, 658, 659, -694, 600, 687, 645, 502, 687,
1675
491, 795, 600, 601, 575, 449, 600, 503, 687, 650,
1676
551, 553, -35, 790, 660, 668, 552, 554, 661, 421,
1677
466, 468, 470, 472, 474, 475, 478, 422, 751, 559,
1678
762, 586, 764, 505, 567, 560, 506, 581, 423, 507,
1679
568, 860, 586, 582, 675, 586, 464, 583, 467, 465,
1680
675, 465, 675, 584, 586, 675, 648, 675, 648, 675,
1681
675, 648, 663, 797, 675, 676, 807, 809, 664, 782,
1682
811, 813, 552, 810, 586, 801, 812, 814, 799, 724,
1683
572, 709, 469, 424, 573, 465, 868, 770, 771, 772,
1684
773, 774, 775, 776, 777, 778, 779, 816, 575, 425,
1685
575, 471, 818, 817, 465, 820, 823, 780, 819, 942,
1686
447, 821, 824, 826, 828, 900, 901, 906, 907, 827,
1687
829, 782, 782, 810, 814, 908, 909, 910, 911, 938,
1688
429, 817, 821, 824, 829, 782, 873, 875, 734, 735,
1689
874, 876, 785, 802, 732, 430, 733, 455, 436, 724,
1690
454, 698, 699, 700, 701, 521, 844, 845, 846, 847,
1691
653, 433, 473, 654, 456, 465, 903, 691, 692, 693,
1692
694, 477, 575, 686, 465, 690, 465, 862, 465, 697,
1693
705, 864, 465, 465, 712, 435, 712, 702, 702, 449,
1694
879, 688, 866, 867, 869, 708, 870, 833, 465, 678,
1695
444, 648, 457, 837, 838, 839, 586, 586, 586, 586,
1696
586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
1697
586, 586, 937, 459, 715, 782, 785, 465, 783, 834,
1698
782, 834, 835, 863, 889, 334, 335, 336, 740, 741,
1699
782, 865, 687, 687, 782, 912, 575, 729, 730, 731,
1700
840, 841, 479, 842, 843, 687, 484, 687, 331, 494,
1701
848, 849, 489, 500, 501, 491, 547, 548, 549, 546,
1702
555, 550, 574, 742, 891, 569, 556, 893, 652, 557,
1703
558, 648, 561, 562, 600, 563, 564, 565, 586, 586,
1704
566, 570, 571, 667, 580, 662, -34, 502, 706, 745,
1705
673, 586, 441, 586, 717, 746, 677, 743, 744, 749,
1706
448, 754, 752, 755, 403, 756, 575, 893, 404, 389,
1707
411, 404, 403, 925, 387, 720, 404, 458, 411, 758,
1708
403, 728, 759, 403, 930, 760, 482, 648, 403, 763,
1709
766, 765, -36, 815, 767, 768, 441, 496, 769, 939,
1710
441, 796, 800, -29, 808, 822, 825, 830, 403, 543,
1711
831, 857, 403, 894, 872, 885, 448, 782, 896, 904,
1712
905, 916, 913, 915, 926, 932, 914, -580, 403, 931,
1713
456, 602, 936, 850, 945, 944, 852, 851, 727, 933,
1714
497, 853, 426, 576, 854, 498, 832, 855, 897, 499,
1715
890, 934, 940, 894, 627, 403, 941, 495, 898, 786,
1716
917, 787, 718, 877, 882, 453, 626, 881, 878, 788,
1717
456, 886, 888, 880, 0, 0, 884, 0, 0, 0,
1718
0, 883, 0, 0, 0, 0, 0, 0, 887, 0,
1719
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720
0, 0, 0, 0, 0, 0, 0, 0, 671, 0,
1721
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723
0, 0, 0, 0, 0, 719, 0, 576, 0, 576,
1724
0, 0, 0, 0, 0, 0, 0, 403, 0, 403,
1725
0, 403, 0, 0, 0, 0, 0, 0, 0, 0,
1726
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729
0, 0, 0, 627, 0, 0, 0, 0, 0, 0,
1730
0, 0, 0, 404, 0, 626, 0, 0, 0, 0,
1731
0, 576, 0, 0, 0, 403, 0, 0, 0, 0,
1732
0, 0, 0, 403, 0, 0, 0, 0, 0, 0,
1733
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738
0, 0, 0, 0, 0, 576, 0, 0, 0, 0,
1739
0, 0, 0, 0, 0, 0, 0, 403, 0, 0,
1740
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741
0, 0, 0, 627, 0, 0, 0, 627, 0, 0,
1742
0, 0, 0, 0, 0, 626, 0, 0, 0, 626,
1743
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745
0, 0, 0, 0, 0, 576, 0, 0, 0, 0,
1746
0, 0, 0, 0, 0, 0, 0, 403, 0, 0,
1747
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751
0, 0, 0, 0, 0, 0, 0, 0, 627, 627,
1752
0, 627, 0, 411, 0, 0, 0, 0, 0, 0,
1753
626, 626, 0, 626, 0, 0, 0, 0, 0, 0,
1754
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755
0, 0, 0, 0, 0, 0, 0, 0, 0, 627,
1756
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757
0, 626, 0, 0, 0, 627, 0, 0, 0, 0,
1758
0, 0, 627, 0, 0, 0, 0, 626, 0, 0,
1759
0, 0, 627, 0, 626, 0, 627, 0, 0, 0,
1760
0, 0, 627, 0, 626, 0, 0, 0, 626, 0,
1761
0, 0, 452, 0, 626, 1, 2, 3, 4, 5,
1762
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1763
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1764
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1765
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1766
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1767
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1768
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1769
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1770
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1771
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1772
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1773
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1774
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1775
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1776
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1777
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1778
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1779
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1780
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1781
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1782
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1783
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1784
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1785
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1786
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1787
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1788
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1789
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1790
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1791
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1792
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
1793
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1794
326, 327, 328, 329, 330, 0, 0, 0, 0, 0,
1795
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796
0, 0, 0, 0, 0, 0, 0, 0, 0, 331,
1797
0, 0, 0, 0, 0, 0, 0, 332, 0, 0,
1798
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799
0, 333, 334, 335, 336, 337, 0, 0, 0, 0,
1800
0, 0, 0, 0, 338, 339, 340, 341, 342, 343,
1801
344, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802
0, 0, 0, 0, 0, 0, 345, 346, 347, 348,
1803
349, 350, 351, 0, 0, 0, 0, 0, 0, 0,
1804
0, 352, 0, 353, 354, 355, 356, 357, 358, 359,
1805
360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
1806
370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
1807
380, 381, 382, 383, 384, 385, 386, 1, 2, 3,
1808
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1809
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1810
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1811
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1812
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1813
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1814
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1815
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1816
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1817
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1818
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1819
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1820
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1821
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1822
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1823
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1824
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1825
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1826
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1827
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1828
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1829
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1830
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1831
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1832
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1833
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1834
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1835
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1836
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1837
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1838
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1839
314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1840
324, 325, 326, 327, 328, 329, 330, 0, 0, 509,
1841
510, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842
0, 0, 0, 0, 0, 0, 0, 0, 511, 512,
1843
0, 331, 0, 602, 603, 0, 0, 0, 0, 604,
1844
513, 514, 515, 516, 0, 0, 0, 0, 0, 0,
1845
0, 0, 0, 333, 334, 335, 336, 337, 0, 0,
1846
0, 517, 518, 519, 520, 521, 338, 339, 340, 341,
1847
342, 343, 344, 605, 606, 607, 608, 0, 609, 610,
1848
611, 612, 613, 614, 615, 616, 617, 618, 345, 346,
1849
347, 348, 349, 350, 351, 522, 523, 524, 525, 526,
1850
527, 528, 529, 352, 619, 353, 354, 355, 356, 357,
1851
358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
1852
368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
1853
378, 379, 380, 381, 382, 383, 384, 385, 386, 1,
1854
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1855
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1856
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1857
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1858
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1859
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1860
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1861
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1862
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1863
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1864
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1865
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1866
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1867
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1868
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1869
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1870
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1871
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1872
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1873
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1874
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1875
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1876
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1877
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1878
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1879
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1880
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1881
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1882
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1883
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1884
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1885
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
1886
322, 323, 324, 325, 326, 327, 328, 329, 330, 0,
1887
0, 509, 510, 0, 0, 0, 0, 0, 0, 0,
1888
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889
511, 512, 0, 331, 0, 602, 784, 0, 0, 0,
1890
0, 604, 513, 514, 515, 516, 0, 0, 0, 0,
1891
0, 0, 0, 0, 0, 333, 334, 335, 336, 337,
1892
0, 0, 0, 517, 518, 519, 520, 521, 338, 339,
1893
340, 341, 342, 343, 344, 605, 606, 607, 608, 0,
1894
609, 610, 611, 612, 613, 614, 615, 616, 617, 618,
1895
345, 346, 347, 348, 349, 350, 351, 522, 523, 524,
1896
525, 526, 527, 528, 529, 352, 619, 353, 354, 355,
1897
356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
1898
366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
1899
376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
1900
386, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1901
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1902
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1903
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1904
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1905
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1906
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1907
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1908
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1909
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1910
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1911
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1912
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1913
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1914
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1915
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1916
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1917
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1918
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1919
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1920
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1921
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1922
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1923
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1924
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1925
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1926
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1927
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1928
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1929
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1930
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1931
310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
1932
320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
1933
330, 0, 0, 509, 510, 0, 0, 0, 0, 0,
1934
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935
0, 0, 511, 512, 0, 331, 0, 602, 0, 0,
1936
0, 0, 0, 604, 513, 514, 515, 516, 0, 0,
1937
0, 0, 0, 0, 0, 0, 0, 333, 334, 335,
1938
336, 337, 0, 0, 0, 517, 518, 519, 520, 521,
1939
338, 339, 340, 341, 342, 343, 344, 605, 606, 607,
1940
608, 0, 609, 610, 611, 612, 613, 614, 615, 616,
1941
617, 618, 345, 346, 347, 348, 349, 350, 351, 522,
1942
523, 524, 525, 526, 527, 528, 529, 352, 619, 353,
1943
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
1944
364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
1945
374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
1946
384, 385, 386, 1, 2, 3, 4, 5, 6, 7,
1947
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1948
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1949
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1950
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1951
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1952
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1953
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1954
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1955
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1956
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1957
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1958
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1959
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1960
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1961
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1962
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1963
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1964
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1965
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1966
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1967
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1968
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1969
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1970
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1971
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1972
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1973
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1974
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1975
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1976
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1977
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
1978
318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1979
328, 329, 330, 0, 0, 509, 510, 0, 0, 0,
1980
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1981
0, 0, 0, 0, 511, 512, 0, 331, 0, 494,
1982
0, 0, 0, 0, 0, 604, 513, 514, 515, 516,
1983
0, 0, 0, 0, 0, 0, 0, 0, 0, 333,
1984
334, 335, 336, 337, 0, 0, 0, 517, 518, 519,
1985
520, 521, 338, 339, 340, 341, 342, 343, 344, 605,
1986
606, 607, 608, 0, 609, 610, 611, 612, 613, 614,
1987
615, 616, 617, 618, 345, 346, 347, 348, 349, 350,
1988
351, 522, 523, 524, 525, 526, 527, 528, 529, 352,
1989
619, 353, 354, 355, 356, 357, 358, 359, 360, 361,
1990
362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
1991
372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
1992
382, 383, 384, 385, 386, 1, 2, 3, 4, 5,
1993
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1994
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1995
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1996
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1997
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1998
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1999
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2000
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2001
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2002
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2003
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2004
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2005
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2006
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2007
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2008
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2009
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2010
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2011
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2012
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2013
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2014
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2015
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2016
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2017
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2018
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2019
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2020
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2021
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2022
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2023
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
2024
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
2025
326, 327, 328, 329, 330, 0, 0, 509, 510, 0,
2026
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2027
0, 0, 0, 0, 0, 0, 511, 512, 0, 331,
2028
0, 0, 0, 0, 0, 0, 0, 604, 513, 514,
2029
515, 516, 0, 0, 0, 0, 0, 0, 0, 0,
2030
0, 333, 334, 335, 336, 337, 0, 0, 0, 517,
2031
518, 519, 520, 521, 338, 339, 340, 341, 342, 343,
2032
344, 605, 606, 607, 608, 0, 609, 610, 611, 612,
2033
613, 614, 615, 616, 617, 618, 345, 346, 347, 348,
2034
349, 350, 351, 522, 523, 524, 525, 526, 527, 528,
2035
529, 352, 619, 353, 354, 355, 356, 357, 358, 359,
2036
360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
2037
370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2038
380, 381, 382, 383, 384, 385, 386, 1, 2, 3,
2039
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2040
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2041
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2042
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2043
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2044
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2045
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2046
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2047
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2048
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2049
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2050
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2051
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2052
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2053
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2054
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2055
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2056
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2057
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2058
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2059
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2060
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2061
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2062
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2063
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2064
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2065
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2066
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2067
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2068
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2069
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2070
314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
2071
324, 325, 326, 327, 328, 329, 330, 0, 0, 509,
2072
510, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073
0, 0, 0, 0, 0, 0, 0, 0, 511, 512,
2074
0, 331, 0, 0, 0, 0, 0, 0, 0, 604,
2075
513, 514, 515, 516, 0, 0, 0, 0, 0, 0,
2076
0, 0, 0, 333, 334, 335, 336, 337, 0, 0,
2077
0, 517, 518, 519, 520, 521, 338, 339, 340, 341,
2078
342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
2079
0, 0, 0, 0, 0, 0, 0, 0, 345, 346,
2080
347, 348, 349, 350, 351, 522, 523, 524, 525, 526,
2081
527, 528, 529, 352, 0, 353, 354, 355, 356, 357,
2082
358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
2083
368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
2084
378, 379, 380, 381, 382, 383, 384, 385, 386, 1,
2085
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2086
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2087
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2088
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2089
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2090
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2091
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2092
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2093
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2094
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2095
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2096
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2097
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2098
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2099
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2100
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2101
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2102
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2103
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2104
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2105
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2106
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2107
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2108
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2109
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2110
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2111
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2112
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2113
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2114
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2115
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2116
312, 313, 314, 315, 316, 317, 0, 0, 0, 321,
2117
322, 323, 324, 325, 326, 327, 328, 329, 330, 0,
2118
0, 509, 510, 0, 0, 0, 0, 0, 0, 0,
2119
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120
511, 512, 0, 0, 0, 0, 0, 0, 0, 0,
2121
0, 0, 513, 514, 515, 516, 0, 0, 0, 0,
2122
0, 0, 0, 0, 0, 333, 334, 335, 336, 0,
2123
0, 0, 0, 517, 518, 519, 520, 521, 338, 339,
2124
340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
2125
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126
345, 346, 347, 348, 349, 350, 351, 522, 523, 524,
2127
525, 526, 527, 528, 529, 352, 0, 353, 354, 355,
2128
356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
2129
366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
2130
376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
2131
386, 1, 2, 3, 4, 5, 6, 7, 8, 9,
2132
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2133
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2134
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2135
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2136
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2137
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2138
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2139
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2140
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2141
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2142
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2143
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2144
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2145
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2146
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2147
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2148
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2149
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2150
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2151
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2152
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2153
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2154
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2155
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2156
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2157
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2158
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2159
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2160
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2161
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2162
310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2163
320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
2164
330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166
0, 0, 0, 0, 0, 331, 0, 0, 0, 0,
2167
0, 0, 0, 332, 0, 0, 0, 0, 0, 0,
2168
0, 0, 0, 0, 0, 0, 0, 333, 334, 335,
2169
336, 337, 0, 0, 0, 0, 0, 0, 0, 0,
2170
338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
2171
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172
0, 0, 345, 346, 347, 348, 349, 350, 351, 0,
2173
0, 0, 0, 0, 0, 0, 0, 352, 0, 353,
2174
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
2175
364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
2176
374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2177
384, 385, 386, 1, 2, 3, 4, 5, 6, 7,
2178
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2179
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2180
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2181
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2182
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2183
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2184
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2185
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2186
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2187
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2188
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2189
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2190
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2191
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2192
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2193
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2194
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2195
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2196
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2197
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2198
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2199
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2200
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2201
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2202
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2203
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2204
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2205
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2206
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2207
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2208
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
2209
0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
2210
328, 329, 330, 0, 0, 0, 0, 0, 0, 0,
2211
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214
0, 0, 0, 0, 0, 0, 0, 0, 0, 333,
2215
334, 335, 336, 0, 0, 0, 0, 0, 0, 0,
2216
0, 0, 338, 339, 340, 341, 342, 343, 344, 605,
2217
0, 0, 608, 0, 609, 610, 0, 0, 613, 0,
2218
0, 0, 0, 0, 345, 346, 347, 348, 349, 350,
2219
351, 0, 0, 0, 0, 0, 0, 0, 0, 352,
2220
0, 353, 354, 355, 356, 357, 358, 359, 360, 361,
2221
362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
2222
372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
2223
382, 383, 384, 385, 386, 1, 2, 3, 4, 5,
2224
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2225
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2226
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2227
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2228
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2229
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2230
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2231
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2232
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2233
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2234
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2235
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2236
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2237
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2238
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2239
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2240
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2241
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2242
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2243
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2244
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2245
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2246
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2247
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2248
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2249
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2250
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2251
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2252
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2253
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2254
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
2255
316, 317, 0, 0, 0, 321, 322, 323, 324, 325,
2256
326, 327, 328, 329, 330, 0, 0, 0, 0, 0,
2257
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259
0, 0, 0, 0, 0, 0, 0, 445, 0, 0,
2260
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261
0, 333, 334, 335, 336, 0, 0, 0, 0, 0,
2262
0, 0, 0, 446, 338, 339, 340, 341, 342, 343,
2263
344, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264
0, 0, 0, 0, 0, 0, 345, 346, 347, 348,
2265
349, 350, 351, 0, 0, 0, 0, 0, 0, 0,
2266
0, 352, 0, 353, 354, 355, 356, 357, 358, 359,
2267
360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
2268
370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2269
380, 381, 382, 383, 384, 385, 386, 1, 2, 3,
2270
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2271
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2272
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2273
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2274
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2275
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2276
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2277
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2278
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2279
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2280
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2281
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2282
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2283
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2284
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2285
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2286
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2287
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2288
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2289
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2290
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2291
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2292
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2293
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2294
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2295
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2296
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2297
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2298
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2299
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2300
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2301
314, 315, 316, 317, 0, 0, 0, 321, 322, 323,
2302
324, 325, 326, 327, 328, 329, 330, 0, 0, 0,
2303
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305
0, 331, 0, 0, 0, 0, 0, 0, 0, 0,
2306
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307
0, 0, 0, 333, 334, 335, 336, 0, 0, 0,
2308
0, 0, 0, 0, 0, 0, 338, 339, 340, 341,
2309
342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
2310
0, 0, 0, 0, 0, 0, 0, 0, 345, 346,
2311
347, 348, 349, 350, 351, 0, 0, 0, 0, 0,
2312
0, 0, 0, 352, 0, 353, 354, 355, 356, 357,
2313
358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
2314
368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
2315
378, 379, 380, 381, 382, 383, 384, 385, 386, 1,
2316
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2317
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2318
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2319
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2320
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2321
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2322
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2323
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2324
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2325
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2326
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2327
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2328
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2329
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2330
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2331
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2332
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2333
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2334
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2335
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2336
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2337
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2338
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2339
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2340
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2341
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2342
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2343
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2344
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2345
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2346
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2347
312, 313, 314, 315, 316, 317, 0, 0, 0, 321,
2348
322, 323, 324, 325, 326, 327, 328, 329, 330, 0,
2349
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2350
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351
0, 0, 0, 0, 0, 0, 723, 0, 0, 0,
2352
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2353
0, 0, 0, 0, 0, 333, 334, 335, 336, 0,
2354
0, 0, 0, 0, 0, 0, 0, 0, 338, 339,
2355
340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
2356
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2357
345, 346, 347, 348, 349, 350, 351, 0, 0, 0,
2358
0, 0, 0, 0, 0, 352, 0, 353, 354, 355,
2359
356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
2360
366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
2361
376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
2362
386, 1, 2, 3, 4, 5, 6, 7, 8, 9,
2363
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2364
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2365
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2366
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2367
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2368
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2369
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2370
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2371
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2372
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2373
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2374
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2375
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2376
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2377
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2378
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2379
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2380
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2381
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2382
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2383
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2384
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2385
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2386
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2387
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2388
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2389
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2390
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2391
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2392
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2393
310, 311, 312, 313, 314, 315, 316, 317, 0, 0,
2394
0, 321, 322, 323, 324, 325, 326, 327, 328, 329,
2395
330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2396
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2397
0, 0, 0, 0, 0, 0, 0, 0, 836, 0,
2398
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2399
0, 0, 0, 0, 0, 0, 0, 333, 334, 335,
2400
336, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2401
338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
2402
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403
0, 0, 345, 346, 347, 348, 349, 350, 351, 0,
2404
0, 0, 0, 0, 0, 0, 0, 352, 0, 353,
2405
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
2406
364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
2407
374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2408
384, 385, 386, 1, 2, 3, 4, 5, 6, 7,
2409
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2410
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2411
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2412
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2413
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2414
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2415
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2416
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2417
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2418
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2419
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2420
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2421
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2422
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2423
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2424
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2425
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2426
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2427
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2428
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2429
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2430
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2431
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2432
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2433
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2434
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2435
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2436
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2437
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2438
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2439
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
2440
0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
2441
328, 329, 330, 0, 0, 0, 0, 0, 0, 0,
2442
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2443
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444
871, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2445
0, 0, 0, 0, 0, 0, 0, 0, 0, 333,
2446
334, 335, 336, 0, 0, 0, 0, 0, 0, 0,
2447
0, 0, 338, 339, 340, 341, 342, 343, 344, 0,
2448
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449
0, 0, 0, 0, 345, 346, 347, 348, 349, 350,
2450
351, 0, 0, 0, 0, 0, 0, 0, 0, 352,
2451
0, 353, 354, 355, 356, 357, 358, 359, 360, 361,
2452
362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
2453
372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
2454
382, 383, 384, 385, 386, 1, 2, 3, 4, 5,
2455
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2456
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2457
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2458
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2459
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2460
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2461
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2462
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2463
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2464
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2465
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2466
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2467
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2468
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2469
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2470
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2471
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2472
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2473
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2474
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2475
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2476
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2477
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2478
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2479
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2480
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2481
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2482
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2483
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2484
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2485
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
2486
316, 317, 0, 0, 0, 321, 322, 323, 324, 325,
2487
326, 327, 328, 329, 330, 0, 0, 0, 0, 0,
2488
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2489
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2491
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2492
0, 333, 334, 335, 336, 0, 0, 0, 0, 0,
2493
0, 0, 0, 0, 338, 339, 340, 341, 342, 343,
2494
344, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495
0, 0, 0, 0, 0, 0, 345, 346, 347, 348,
2496
349, 350, 351, 0, 0, 0, 0, 0, 0, 0,
2497
0, 352, 0, 353, 354, 355, 356, 357, 358, 359,
2498
360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
2499
370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2500
380, 381, 382, 383, 384, 385, 386, 2, 3, 4,
2501
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2502
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2503
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2504
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2505
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2506
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2507
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2508
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2509
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2510
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2511
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2512
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2513
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2514
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2515
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2516
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2517
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2518
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2519
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2520
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2521
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2522
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2523
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2524
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2525
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2526
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2527
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2528
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2529
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2530
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2531
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2532
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2533
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2534
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2535
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2536
0, 0, 647, 791, 0, 0, 0, 0, 0, 513,
2537
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2538
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2539
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2540
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2541
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2542
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2543
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2544
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2545
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2546
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2547
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2548
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2549
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2550
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2551
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2552
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2553
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2554
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2555
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2556
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2557
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2558
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2559
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2560
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2561
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2562
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2563
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2564
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2565
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2566
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2567
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2568
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2569
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2570
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2571
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2572
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2573
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2574
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2575
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2576
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2577
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2578
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2580
0, 0, 647, 902, 0, 0, 0, 0, 0, 513,
2581
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2582
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2584
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2585
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2587
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2588
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2589
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2590
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2591
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2592
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2593
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2594
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2595
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2596
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2597
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2598
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2599
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2600
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2601
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2602
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2603
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2604
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2605
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2606
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2607
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2608
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2609
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2610
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2611
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2612
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2613
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2614
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2615
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2616
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2617
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2618
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2619
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2620
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2621
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2622
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2623
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2624
0, 585, 0, 0, 0, 0, 0, 0, 0, 513,
2625
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2626
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2627
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2628
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2629
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2631
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2632
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2633
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2634
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2635
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2636
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2637
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2638
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2639
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2640
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2641
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2642
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2643
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2644
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2645
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2646
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2647
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2648
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2649
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2650
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2651
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2652
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2653
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2654
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2655
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2656
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2657
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2658
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2659
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2660
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2661
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2662
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2663
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2664
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2665
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2666
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2668
0, 0, 647, 0, 0, 0, 0, 0, 0, 513,
2669
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2670
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2672
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2673
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2674
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2675
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2676
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2677
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2678
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2679
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2680
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2681
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2682
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2683
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2684
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2685
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2686
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2687
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2688
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2689
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2690
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2691
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2692
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2693
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2694
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2695
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2696
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2697
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2698
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2699
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2700
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2701
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2702
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2703
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2704
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2705
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2706
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2707
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2708
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2709
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2710
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2712
0, 750, 0, 0, 0, 0, 0, 0, 0, 513,
2713
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2714
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2716
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2717
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2719
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2720
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2721
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2722
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2723
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2724
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2725
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2726
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2727
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2728
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2729
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2730
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2731
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2732
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2733
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2734
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2735
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2736
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2737
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2738
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2739
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2740
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2741
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2742
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2743
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2744
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2745
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2746
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2747
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2748
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2749
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2750
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2751
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2752
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2753
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2754
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2756
0, 0, 0, 0, 0, 0, 0, 0, 761, 513,
2757
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2758
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2760
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2761
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2763
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2764
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2765
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2766
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2767
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2768
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2769
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2770
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2771
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2772
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2773
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2774
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2775
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2776
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2777
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2778
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2779
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2780
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2781
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2782
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2783
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2784
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2785
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2786
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2787
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2788
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2789
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2790
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2791
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2792
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2793
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2794
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2795
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2796
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2797
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2798
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2799
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2800
0, 0, 0, 0, 0, 0, 0, 0, 0, 513,
2801
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2802
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2804
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2805
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2807
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2808
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2809
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2810
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2811
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2812
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2813
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2814
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2815
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2816
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2817
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2818
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2819
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2820
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2821
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2822
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2823
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2824
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2825
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2826
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2827
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2828
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2829
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2830
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2831
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2832
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2833
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2834
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2835
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2836
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2837
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2838
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2839
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2840
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2841
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2842
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2844
0, 0, 0, 0, 0, 0, 0, 0, 0, 513,
2845
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2846
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847
517, 518, 519, 520, 521, 338, 0, 0, 0, 0,
2848
343, 665, 0, 0, 0, 0, 0, 0, 0, 0,
2849
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2851
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2852
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2853
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2854
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2855
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2856
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2857
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2858
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2859
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2860
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2861
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2862
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2863
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2864
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2865
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2866
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2867
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2868
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2869
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2870
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2871
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2872
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2873
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2874
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2875
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2876
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2877
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2878
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2879
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2880
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2881
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2882
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2883
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2884
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2885
0, 0, 0, 328, 329, 330, 0, 0, 509, 510,
2886
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887
0, 0, 0, 0, 0, 0, 0, 511, 512, 0,
2888
0, 0, 0, 0, 0, 0, 0, 0, 0, 513,
2889
514, 515, 516, 0, 0, 0, 0, 0, 0, 0,
2890
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891
517, 518, 519, 520, 710, 338, 0, 0, 0, 0,
2892
343, 344, 0, 0, 0, 0, 0, 0, 0, 0,
2893
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894
0, 0, 0, 0, 522, 523, 524, 525, 526, 527,
2895
528, 529, 0, 0, 0, 0, 0, 0, 0, 0,
2896
0, 0, 0, 0, 0, 0, 365, 2, 3, 4,
2897
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2898
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2899
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2900
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2901
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2902
55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2903
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2904
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2905
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2906
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2907
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2908
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2909
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2910
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2911
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2912
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2913
165, 0, 167, 168, 169, 170, 171, 172, 173, 174,
2914
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2915
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2916
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2917
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2918
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2919
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2920
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2921
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2922
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2923
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2924
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2925
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2926
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2927
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2928
315, 316, 317, 0, 0, 0, 0, 0, 0, 324,
2929
0, 0, 0, 328, 329, 330, 0, 0, 0, 0,
2930
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935
0, 0, 0, 0, 0, 338, 0, 0, 0, 0,
2936
343, 344
2937
};
2938
2939
static const yytype_int16 yycheck[] =
2940
{
2941
0, 0, 0, 392, 503, 411, 0, 633, 411, 491,
2942
416, 444, 0, 449, 552, 568, 753, 450, 562, 579,
2943
512, 577, 411, 557, 354, 400, 342, 416, 423, 354,
2944
568, 645, 357, 647, 337, 338, 650, 571, 365, 538,
2945
359, 362, 354, 354, 915, 391, 580, 436, 357, 362,
2946
355, 922, 365, 374, 355, 491, 365, 387, 388, 389,
2947
390, 932, 378, 388, 391, 440, 355, 500, 501, 415,
2948
373, 374, 391, 509, 510, 557, 388, 388, 356, 355,
2949
357, 456, 335, 336, 362, 357, 568, 364, 355, 571,
2950
357, 651, 357, 365, 483, 373, 357, 364, 580, 364,
2951
356, 356, 355, 364, 357, 541, 362, 362, 361, 355,
2952
418, 419, 420, 421, 422, 423, 424, 355, 600, 356,
2953
612, 557, 614, 359, 356, 362, 362, 356, 355, 365,
2954
362, 757, 568, 362, 550, 571, 388, 356, 388, 391,
2955
556, 391, 558, 362, 580, 561, 645, 563, 647, 565,
2956
566, 650, 356, 356, 570, 550, 356, 356, 362, 362,
2957
356, 356, 362, 362, 600, 664, 362, 362, 660, 725,
2958
358, 566, 388, 355, 362, 391, 790, 344, 345, 346,
2959
347, 348, 349, 350, 351, 352, 353, 356, 577, 357,
2960
579, 388, 356, 362, 391, 356, 356, 364, 362, 936,
2961
575, 362, 362, 356, 356, 356, 356, 356, 356, 362,
2962
362, 362, 362, 362, 362, 356, 356, 356, 356, 356,
2963
355, 362, 362, 362, 362, 362, 358, 358, 333, 334,
2964
362, 362, 858, 669, 367, 355, 369, 643, 362, 795,
2965
643, 387, 388, 389, 390, 391, 736, 737, 738, 739,
2966
362, 365, 388, 365, 643, 391, 870, 387, 388, 389,
2967
390, 388, 651, 388, 391, 388, 391, 759, 391, 388,
2968
388, 763, 391, 391, 827, 356, 829, 821, 822, 373,
2969
814, 815, 781, 782, 360, 388, 362, 720, 391, 827,
2970
391, 790, 365, 729, 730, 731, 732, 733, 734, 735,
2971
736, 737, 738, 739, 740, 741, 742, 743, 744, 745,
2972
746, 747, 926, 391, 388, 362, 942, 391, 365, 362,
2973
362, 362, 365, 365, 365, 380, 381, 382, 339, 340,
2974
362, 363, 814, 815, 362, 363, 725, 370, 371, 372,
2975
732, 733, 391, 734, 735, 827, 359, 829, 357, 359,
2976
740, 741, 391, 391, 391, 357, 391, 365, 364, 356,
2977
364, 362, 365, 377, 856, 356, 362, 859, 391, 362,
2978
362, 870, 362, 362, 357, 362, 362, 362, 814, 815,
2979
362, 362, 355, 355, 364, 356, 355, 355, 354, 341,
2980
357, 827, 392, 829, 358, 343, 391, 376, 375, 358,
2981
400, 355, 360, 365, 392, 365, 795, 899, 408, 408,
2982
408, 411, 400, 912, 408, 391, 416, 416, 416, 355,
2983
408, 391, 355, 411, 916, 365, 426, 926, 416, 355,
2984
365, 363, 355, 362, 365, 365, 436, 435, 365, 931,
2985
440, 391, 391, 356, 364, 362, 362, 356, 436, 449,
2986
356, 358, 440, 859, 358, 354, 456, 362, 399, 354,
2987
388, 355, 360, 356, 364, 356, 391, 359, 456, 365,
2988
859, 359, 359, 742, 360, 365, 744, 743, 582, 403,
2989
436, 745, 337, 483, 746, 440, 719, 747, 861, 440,
2990
834, 921, 932, 899, 494, 483, 933, 434, 861, 643,
2991
899, 643, 573, 810, 819, 408, 494, 817, 812, 643,
2992
899, 825, 829, 815, -1, -1, 822, -1, -1, -1,
2993
-1, 821, -1, -1, -1, -1, -1, -1, 827, -1,
2994
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2995
-1, -1, -1, -1, -1, -1, -1, -1, 546, -1,
2996
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2997
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2998
-1, -1, -1, -1, -1, 575, -1, 577, -1, 579,
2999
-1, -1, -1, -1, -1, -1, -1, 575, -1, 577,
3000
-1, 579, -1, -1, -1, -1, -1, -1, -1, -1,
3001
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3002
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3003
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3004
-1, -1, -1, 633, -1, -1, -1, -1, -1, -1,
3005
-1, -1, -1, 643, -1, 633, -1, -1, -1, -1,
3006
-1, 651, -1, -1, -1, 643, -1, -1, -1, -1,
3007
-1, -1, -1, 651, -1, -1, -1, -1, -1, -1,
3008
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3009
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3010
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3011
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3012
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3013
-1, -1, -1, -1, -1, 725, -1, -1, -1, -1,
3014
-1, -1, -1, -1, -1, -1, -1, 725, -1, -1,
3015
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3016
-1, -1, -1, 753, -1, -1, -1, 757, -1, -1,
3017
-1, -1, -1, -1, -1, 753, -1, -1, -1, 757,
3018
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3019
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3020
-1, -1, -1, -1, -1, 795, -1, -1, -1, -1,
3021
-1, -1, -1, -1, -1, -1, -1, 795, -1, -1,
3022
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3023
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3024
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3025
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3026
-1, -1, -1, -1, -1, -1, -1, -1, 858, 859,
3027
-1, 861, -1, 861, -1, -1, -1, -1, -1, -1,
3028
858, 859, -1, 861, -1, -1, -1, -1, -1, -1,
3029
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3030
-1, -1, -1, -1, -1, -1, -1, -1, -1, 899,
3031
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3032
-1, 899, -1, -1, -1, 915, -1, -1, -1, -1,
3033
-1, -1, 922, -1, -1, -1, -1, 915, -1, -1,
3034
-1, -1, 932, -1, 922, -1, 936, -1, -1, -1,
3035
-1, -1, 942, -1, 932, -1, -1, -1, 936, -1,
3036
-1, -1, 0, -1, 942, 3, 4, 5, 6, 7,
3037
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3038
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3039
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3040
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3041
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3042
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3043
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3044
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3045
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3046
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3047
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3048
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3049
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3050
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3051
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3052
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3053
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3054
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3055
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3056
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3057
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3058
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3059
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3060
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3061
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3062
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3063
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3064
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3065
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3066
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3067
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3068
318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
3069
328, 329, 330, 331, 332, -1, -1, -1, -1, -1,
3070
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3071
-1, -1, -1, -1, -1, -1, -1, -1, -1, 357,
3072
-1, -1, -1, -1, -1, -1, -1, 365, -1, -1,
3073
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3074
-1, 379, 380, 381, 382, 383, -1, -1, -1, -1,
3075
-1, -1, -1, -1, 392, 393, 394, 395, 396, 397,
3076
398, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3077
-1, -1, -1, -1, -1, -1, 414, 415, 416, 417,
3078
418, 419, 420, -1, -1, -1, -1, -1, -1, -1,
3079
-1, 429, -1, 431, 432, 433, 434, 435, 436, 437,
3080
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
3081
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
3082
458, 459, 460, 461, 462, 463, 464, 3, 4, 5,
3083
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3084
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3085
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3086
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3087
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3088
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
3089
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3090
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3091
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3092
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3093
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3094
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3095
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3096
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3097
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3098
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3099
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3100
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3101
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3102
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3103
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3104
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3105
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3106
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3107
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3108
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3109
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3110
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3111
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3112
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3113
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3114
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
3115
326, 327, 328, 329, 330, 331, 332, -1, -1, 335,
3116
336, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3117
-1, -1, -1, -1, -1, -1, -1, -1, 354, 355,
3118
-1, 357, -1, 359, 360, -1, -1, -1, -1, 365,
3119
366, 367, 368, 369, -1, -1, -1, -1, -1, -1,
3120
-1, -1, -1, 379, 380, 381, 382, 383, -1, -1,
3121
-1, 387, 388, 389, 390, 391, 392, 393, 394, 395,
3122
396, 397, 398, 399, 400, 401, 402, -1, 404, 405,
3123
406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
3124
416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
3125
426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
3126
436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
3127
446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
3128
456, 457, 458, 459, 460, 461, 462, 463, 464, 3,
3129
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3130
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3131
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3132
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3133
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3134
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
3135
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3136
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3137
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3138
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3139
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3140
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3141
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3142
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3143
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3144
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3145
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3146
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3147
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3148
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3149
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3150
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3151
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3152
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3153
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3154
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3155
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3156
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3157
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3158
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3159
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3160
314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3161
324, 325, 326, 327, 328, 329, 330, 331, 332, -1,
3162
-1, 335, 336, -1, -1, -1, -1, -1, -1, -1,
3163
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3164
354, 355, -1, 357, -1, 359, 360, -1, -1, -1,
3165
-1, 365, 366, 367, 368, 369, -1, -1, -1, -1,
3166
-1, -1, -1, -1, -1, 379, 380, 381, 382, 383,
3167
-1, -1, -1, 387, 388, 389, 390, 391, 392, 393,
3168
394, 395, 396, 397, 398, 399, 400, 401, 402, -1,
3169
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
3170
414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
3171
424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
3172
434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
3173
444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
3174
454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
3175
464, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3176
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3177
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3178
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3179
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3180
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3181
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3182
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3183
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3184
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3185
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3186
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3187
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3188
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3189
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3190
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3191
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3192
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3193
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3194
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3195
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3196
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3197
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3198
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3199
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3200
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3201
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3202
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3203
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3204
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3205
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3206
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
3207
322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
3208
332, -1, -1, 335, 336, -1, -1, -1, -1, -1,
3209
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3210
-1, -1, 354, 355, -1, 357, -1, 359, -1, -1,
3211
-1, -1, -1, 365, 366, 367, 368, 369, -1, -1,
3212
-1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
3213
382, 383, -1, -1, -1, 387, 388, 389, 390, 391,
3214
392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
3215
402, -1, 404, 405, 406, 407, 408, 409, 410, 411,
3216
412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
3217
422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
3218
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
3219
442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
3220
452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
3221
462, 463, 464, 3, 4, 5, 6, 7, 8, 9,
3222
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3223
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3224
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3225
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3226
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3227
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3228
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3229
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3230
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3231
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3232
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3233
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3234
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3235
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3236
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3237
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3238
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3239
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3240
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3241
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3242
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3243
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3244
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3245
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3246
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3247
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3248
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3249
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3250
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3251
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3252
310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
3253
320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
3254
330, 331, 332, -1, -1, 335, 336, -1, -1, -1,
3255
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3256
-1, -1, -1, -1, 354, 355, -1, 357, -1, 359,
3257
-1, -1, -1, -1, -1, 365, 366, 367, 368, 369,
3258
-1, -1, -1, -1, -1, -1, -1, -1, -1, 379,
3259
380, 381, 382, 383, -1, -1, -1, 387, 388, 389,
3260
390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
3261
400, 401, 402, -1, 404, 405, 406, 407, 408, 409,
3262
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
3263
420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
3264
430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
3265
440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
3266
450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
3267
460, 461, 462, 463, 464, 3, 4, 5, 6, 7,
3268
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3269
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3270
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3271
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3272
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3273
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3274
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3275
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3276
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3277
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3278
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3279
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3280
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3281
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3282
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3283
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3284
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3285
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3286
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3287
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3288
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3289
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3290
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3291
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3292
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3293
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3294
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3295
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3296
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3297
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3298
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3299
318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
3300
328, 329, 330, 331, 332, -1, -1, 335, 336, -1,
3301
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3302
-1, -1, -1, -1, -1, -1, 354, 355, -1, 357,
3303
-1, -1, -1, -1, -1, -1, -1, 365, 366, 367,
3304
368, 369, -1, -1, -1, -1, -1, -1, -1, -1,
3305
-1, 379, 380, 381, 382, 383, -1, -1, -1, 387,
3306
388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
3307
398, 399, 400, 401, 402, -1, 404, 405, 406, 407,
3308
408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
3309
418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
3310
428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
3311
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
3312
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
3313
458, 459, 460, 461, 462, 463, 464, 3, 4, 5,
3314
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3315
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3316
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3317
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3318
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3319
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
3320
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3321
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3322
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3323
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3324
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3325
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3326
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3327
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3328
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3329
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3330
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3331
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3332
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3333
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3334
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3335
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3336
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3337
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3338
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3339
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3340
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3341
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3342
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3343
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3344
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3345
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
3346
326, 327, 328, 329, 330, 331, 332, -1, -1, 335,
3347
336, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3348
-1, -1, -1, -1, -1, -1, -1, -1, 354, 355,
3349
-1, 357, -1, -1, -1, -1, -1, -1, -1, 365,
3350
366, 367, 368, 369, -1, -1, -1, -1, -1, -1,
3351
-1, -1, -1, 379, 380, 381, 382, 383, -1, -1,
3352
-1, 387, 388, 389, 390, 391, 392, 393, 394, 395,
3353
396, 397, 398, -1, -1, -1, -1, -1, -1, -1,
3354
-1, -1, -1, -1, -1, -1, -1, -1, 414, 415,
3355
416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
3356
426, 427, 428, 429, -1, 431, 432, 433, 434, 435,
3357
436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
3358
446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
3359
456, 457, 458, 459, 460, 461, 462, 463, 464, 3,
3360
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3361
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3362
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3363
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3364
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3365
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
3366
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3367
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3368
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3369
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3370
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3371
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3372
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3373
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3374
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3375
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3376
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3377
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3378
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3379
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3380
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3381
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3382
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3383
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3384
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3385
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3386
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3387
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3388
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3389
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3390
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3391
314, 315, 316, 317, 318, 319, -1, -1, -1, 323,
3392
324, 325, 326, 327, 328, 329, 330, 331, 332, -1,
3393
-1, 335, 336, -1, -1, -1, -1, -1, -1, -1,
3394
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3395
354, 355, -1, -1, -1, -1, -1, -1, -1, -1,
3396
-1, -1, 366, 367, 368, 369, -1, -1, -1, -1,
3397
-1, -1, -1, -1, -1, 379, 380, 381, 382, -1,
3398
-1, -1, -1, 387, 388, 389, 390, 391, 392, 393,
3399
394, 395, 396, 397, 398, -1, -1, -1, -1, -1,
3400
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3401
414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
3402
424, 425, 426, 427, 428, 429, -1, 431, 432, 433,
3403
434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
3404
444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
3405
454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
3406
464, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3407
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3408
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3409
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3410
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3411
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3412
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3413
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3414
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3415
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3416
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3417
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3418
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3419
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3420
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3421
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3422
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3423
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3424
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3425
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3426
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3427
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3428
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3429
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3430
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3431
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3432
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3433
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3434
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3435
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3436
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3437
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
3438
322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
3439
332, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3440
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3441
-1, -1, -1, -1, -1, 357, -1, -1, -1, -1,
3442
-1, -1, -1, 365, -1, -1, -1, -1, -1, -1,
3443
-1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
3444
382, 383, -1, -1, -1, -1, -1, -1, -1, -1,
3445
392, 393, 394, 395, 396, 397, 398, -1, -1, -1,
3446
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3447
-1, -1, 414, 415, 416, 417, 418, 419, 420, -1,
3448
-1, -1, -1, -1, -1, -1, -1, 429, -1, 431,
3449
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
3450
442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
3451
452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
3452
462, 463, 464, 3, 4, 5, 6, 7, 8, 9,
3453
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3454
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3455
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3456
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3457
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3458
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3459
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3460
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3461
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3462
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3463
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3464
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3465
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3466
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3467
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3468
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3469
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3470
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3471
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3472
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3473
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3474
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3475
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3476
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3477
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3478
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3479
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3480
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3481
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3482
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3483
310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
3484
-1, -1, -1, 323, 324, 325, 326, 327, 328, 329,
3485
330, 331, 332, -1, -1, -1, -1, -1, -1, -1,
3486
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3487
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3488
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3489
-1, -1, -1, -1, -1, -1, -1, -1, -1, 379,
3490
380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
3491
-1, -1, 392, 393, 394, 395, 396, 397, 398, 399,
3492
-1, -1, 402, -1, 404, 405, -1, -1, 408, -1,
3493
-1, -1, -1, -1, 414, 415, 416, 417, 418, 419,
3494
420, -1, -1, -1, -1, -1, -1, -1, -1, 429,
3495
-1, 431, 432, 433, 434, 435, 436, 437, 438, 439,
3496
440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
3497
450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
3498
460, 461, 462, 463, 464, 3, 4, 5, 6, 7,
3499
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3500
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3501
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3502
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3503
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3504
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3505
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3506
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3507
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3508
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3509
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3510
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3511
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3512
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3513
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3514
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3515
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3516
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3517
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3518
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3519
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3520
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3521
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3522
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3523
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3524
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3525
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3526
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3527
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3528
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3529
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3530
318, 319, -1, -1, -1, 323, 324, 325, 326, 327,
3531
328, 329, 330, 331, 332, -1, -1, -1, -1, -1,
3532
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3533
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3534
-1, -1, -1, -1, -1, -1, -1, 365, -1, -1,
3535
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3536
-1, 379, 380, 381, 382, -1, -1, -1, -1, -1,
3537
-1, -1, -1, 391, 392, 393, 394, 395, 396, 397,
3538
398, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3539
-1, -1, -1, -1, -1, -1, 414, 415, 416, 417,
3540
418, 419, 420, -1, -1, -1, -1, -1, -1, -1,
3541
-1, 429, -1, 431, 432, 433, 434, 435, 436, 437,
3542
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
3543
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
3544
458, 459, 460, 461, 462, 463, 464, 3, 4, 5,
3545
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3546
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3547
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3548
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3549
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3550
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
3551
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3552
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3553
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3554
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3555
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3556
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3557
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3558
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3559
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3560
156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3561
166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3562
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3563
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3564
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3565
206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3566
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3567
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3568
236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3569
246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3570
256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3571
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3572
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3573
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3574
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3575
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3576
316, 317, 318, 319, -1, -1, -1, 323, 324, 325,
3577
326, 327, 328, 329, 330, 331, 332, -1, -1, -1,
3578
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3579
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3580
-1, 357, -1, -1, -1, -1, -1, -1, -1, -1,
3581
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3582
-1, -1, -1, 379, 380, 381, 382, -1, -1, -1,
3583
-1, -1, -1, -1, -1, -1, 392, 393, 394, 395,
3584
396, 397, 398, -1, -1, -1, -1, -1, -1, -1,
3585
-1, -1, -1, -1, -1, -1, -1, -1, 414, 415,
3586
416, 417, 418, 419, 420, -1, -1, -1, -1, -1,
3587
-1, -1, -1, 429, -1, 431, 432, 433, 434, 435,
3588
436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
3589
446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
3590
456, 457, 458, 459, 460, 461, 462, 463, 464, 3,
3591
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3592
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3593
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3594
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3595
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3596
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
3597
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3598
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3599
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3600
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3601
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3602
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3603
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3604
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3605
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3606
154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3607
164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3608
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3609
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3610
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3611
204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3612
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3613
224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3614
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3615
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3616
254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3617
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3618
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3619
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3620
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3621
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3622
314, 315, 316, 317, 318, 319, -1, -1, -1, 323,
3623
324, 325, 326, 327, 328, 329, 330, 331, 332, -1,
3624
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3625
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626
-1, -1, -1, -1, -1, -1, 360, -1, -1, -1,
3627
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3628
-1, -1, -1, -1, -1, 379, 380, 381, 382, -1,
3629
-1, -1, -1, -1, -1, -1, -1, -1, 392, 393,
3630
394, 395, 396, 397, 398, -1, -1, -1, -1, -1,
3631
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3632
414, 415, 416, 417, 418, 419, 420, -1, -1, -1,
3633
-1, -1, -1, -1, -1, 429, -1, 431, 432, 433,
3634
434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
3635
444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
3636
454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
3637
464, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3638
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3639
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3640
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3641
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3642
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3643
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3644
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3645
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3646
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3647
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3648
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3649
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3650
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3651
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3652
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3653
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3654
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3655
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3656
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3657
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3658
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3659
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3660
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3661
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3662
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3663
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3664
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3665
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3666
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3667
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3668
312, 313, 314, 315, 316, 317, 318, 319, -1, -1,
3669
-1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
3670
332, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3672
-1, -1, -1, -1, -1, -1, -1, -1, 360, -1,
3673
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3674
-1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
3675
382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3676
392, 393, 394, 395, 396, 397, 398, -1, -1, -1,
3677
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3678
-1, -1, 414, 415, 416, 417, 418, 419, 420, -1,
3679
-1, -1, -1, -1, -1, -1, -1, 429, -1, 431,
3680
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
3681
442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
3682
452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
3683
462, 463, 464, 3, 4, 5, 6, 7, 8, 9,
3684
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3685
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3686
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3687
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3688
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3689
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3690
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3691
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3692
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3693
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3694
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3695
120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3696
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3697
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3698
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3699
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3700
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3701
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3702
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3703
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3704
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3705
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3706
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3707
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3708
250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3709
260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3710
270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3711
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3712
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3713
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3714
310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
3715
-1, -1, -1, 323, 324, 325, 326, 327, 328, 329,
3716
330, 331, 332, -1, -1, -1, -1, -1, -1, -1,
3717
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3718
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3719
360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3720
-1, -1, -1, -1, -1, -1, -1, -1, -1, 379,
3721
380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
3722
-1, -1, 392, 393, 394, 395, 396, 397, 398, -1,
3723
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3724
-1, -1, -1, -1, 414, 415, 416, 417, 418, 419,
3725
420, -1, -1, -1, -1, -1, -1, -1, -1, 429,
3726
-1, 431, 432, 433, 434, 435, 436, 437, 438, 439,
3727
440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
3728
450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
3729
460, 461, 462, 463, 464, 3, 4, 5, 6, 7,
3730
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3731
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3732
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3733
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3734
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3735
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3736
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3737
78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3738
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3739
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3740
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3741
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3742
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3743
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3744
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3745
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3746
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3747
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3748
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3749
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3750
208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3751
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3752
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3753
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3754
248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3755
258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3756
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3757
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3758
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3759
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3760
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3761
318, 319, -1, -1, -1, 323, 324, 325, 326, 327,
3762
328, 329, 330, 331, 332, -1, -1, -1, -1, -1,
3763
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3764
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3766
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3767
-1, 379, 380, 381, 382, -1, -1, -1, -1, -1,
3768
-1, -1, -1, -1, 392, 393, 394, 395, 396, 397,
3769
398, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3770
-1, -1, -1, -1, -1, -1, 414, 415, 416, 417,
3771
418, 419, 420, -1, -1, -1, -1, -1, -1, -1,
3772
-1, 429, -1, 431, 432, 433, 434, 435, 436, 437,
3773
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
3774
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
3775
458, 459, 460, 461, 462, 463, 464, 4, 5, 6,
3776
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3777
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3778
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3779
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3780
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3781
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3782
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3783
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3784
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3785
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3786
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3787
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3788
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3789
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3790
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3791
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3792
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
3793
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3794
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3795
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3796
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3797
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3798
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3799
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3800
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3801
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3802
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3803
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3804
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3805
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3806
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3807
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
3808
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
3809
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3810
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
3811
-1, -1, 359, 360, -1, -1, -1, -1, -1, 366,
3812
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
3813
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3814
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3815
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
3816
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3817
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
3818
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
3819
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
3820
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3821
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3822
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3823
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3824
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3825
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3826
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3827
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3828
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3829
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3830
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3831
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3832
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3833
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3834
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3835
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3836
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
3837
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3838
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3839
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3840
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3841
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3842
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3843
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3844
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3845
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3846
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3847
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3848
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3849
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3850
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3851
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
3852
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
3853
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3854
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
3855
-1, -1, 359, 360, -1, -1, -1, -1, -1, 366,
3856
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
3857
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3858
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3859
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
3860
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3861
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
3862
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
3863
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
3864
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3865
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3866
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3867
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3868
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3869
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3870
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3871
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3872
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3873
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3874
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3875
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3876
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3877
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3878
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3879
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3880
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
3881
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3882
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3883
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3884
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3885
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3886
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3887
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3888
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3889
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3890
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3891
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3892
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3893
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3894
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3895
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
3896
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
3897
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3898
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
3899
-1, 358, -1, -1, -1, -1, -1, -1, -1, 366,
3900
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
3901
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3903
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
3904
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3905
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
3906
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
3907
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
3908
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3909
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3910
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3911
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3912
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3913
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3914
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3915
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3916
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3917
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3918
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3919
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3920
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3921
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3922
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3923
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3924
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
3925
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3926
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3927
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3928
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3929
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3930
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3931
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3932
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3933
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3934
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3935
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3936
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3937
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3938
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3939
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
3940
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
3941
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3942
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
3943
-1, -1, 359, -1, -1, -1, -1, -1, -1, 366,
3944
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
3945
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3946
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3947
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
3948
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3949
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
3950
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
3951
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
3952
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3953
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3954
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3955
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3956
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3957
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3958
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3959
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3960
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3961
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3962
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3963
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3964
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3965
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3966
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3967
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3968
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
3969
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3970
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3971
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3972
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3973
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3974
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3975
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3976
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3977
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3978
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3979
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3980
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3981
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3982
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3983
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
3984
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
3985
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3986
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
3987
-1, 358, -1, -1, -1, -1, -1, -1, -1, 366,
3988
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
3989
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3990
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3991
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
3992
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3993
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
3994
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
3995
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
3996
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3997
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3998
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3999
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
4000
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4001
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
4002
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4003
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4004
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
4005
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4006
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4007
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4008
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
4009
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
4010
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4011
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
4012
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
4013
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
4014
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
4015
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4016
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
4017
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
4018
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
4019
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
4020
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4021
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
4022
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
4023
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
4024
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
4025
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
4026
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
4027
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
4028
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
4029
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4030
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
4031
-1, -1, -1, -1, -1, -1, -1, -1, 365, 366,
4032
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
4033
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4034
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
4035
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
4036
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4037
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
4038
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
4039
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
4040
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4041
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4042
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
4043
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
4044
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4045
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
4046
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4047
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4048
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
4049
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4050
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4051
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4052
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
4053
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
4054
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4055
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
4056
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
4057
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
4058
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
4059
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4060
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
4061
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
4062
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
4063
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
4064
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4065
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
4066
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
4067
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
4068
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
4069
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
4070
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
4071
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
4072
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
4073
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
4075
-1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
4076
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
4077
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4078
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
4079
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
4080
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4081
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
4082
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
4083
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
4084
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4085
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4086
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
4087
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
4088
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4089
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
4090
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4091
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4092
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
4093
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4094
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4095
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4096
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
4097
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
4098
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4099
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
4100
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
4101
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
4102
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
4103
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4104
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
4105
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
4106
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
4107
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
4108
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4109
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
4110
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
4111
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
4112
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
4113
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
4114
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
4115
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
4116
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
4117
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4118
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
4119
-1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
4120
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
4121
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4122
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
4123
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
4124
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4125
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
4126
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
4127
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
4128
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4129
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4130
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
4131
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
4132
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4133
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
4134
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4135
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4136
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
4137
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4138
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4139
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4140
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
4141
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
4142
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4143
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
4144
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
4145
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
4146
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
4147
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4148
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
4149
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
4150
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
4151
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
4152
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4153
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
4154
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
4155
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
4156
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
4157
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
4158
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
4159
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
4160
-1, -1, -1, 330, 331, 332, -1, -1, 335, 336,
4161
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4162
-1, -1, -1, -1, -1, -1, -1, 354, 355, -1,
4163
-1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
4164
367, 368, 369, -1, -1, -1, -1, -1, -1, -1,
4165
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4166
387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
4167
397, 398, -1, -1, -1, -1, -1, -1, -1, -1,
4168
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4169
-1, -1, -1, -1, 421, 422, 423, 424, 425, 426,
4170
427, 428, -1, -1, -1, -1, -1, -1, -1, -1,
4171
-1, -1, -1, -1, -1, -1, 443, 4, 5, 6,
4172
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4173
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4174
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
4175
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
4176
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4177
57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
4178
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4179
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4180
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
4181
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4182
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4183
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4184
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
4185
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
4186
147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4187
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
4188
167, -1, 169, 170, 171, 172, 173, 174, 175, 176,
4189
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
4190
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
4191
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4192
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
4193
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
4194
227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
4195
237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
4196
247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4197
257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
4198
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
4199
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
4200
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
4201
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
4202
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
4203
317, 318, 319, -1, -1, -1, -1, -1, -1, 326,
4204
-1, -1, -1, 330, 331, 332, -1, -1, -1, -1,
4205
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4206
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4207
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4208
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4209
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4210
-1, -1, -1, -1, -1, 392, -1, -1, -1, -1,
4211
397, 398
4212
};
4213
4214
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
4215
state STATE-NUM. */
4216
static const yytype_int16 yystos[] =
4217
{
4218
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4219
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4220
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4221
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
4222
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
4223
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
4224
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
4225
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
4226
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
4227
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
4228
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
4229
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4230
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
4231
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
4232
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
4233
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
4234
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
4235
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
4236
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
4237
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
4238
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
4239
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
4240
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
4241
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
4242
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
4243
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
4244
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
4245
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
4246
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
4247
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
4248
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4249
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
4250
322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
4251
332, 357, 365, 379, 380, 381, 382, 383, 392, 393,
4252
394, 395, 396, 397, 398, 414, 415, 416, 417, 418,
4253
419, 420, 429, 431, 432, 433, 434, 435, 436, 437,
4254
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
4255
448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
4256
458, 459, 460, 461, 462, 463, 464, 496, 497, 500,
4257
501, 502, 503, 507, 508, 509, 510, 511, 512, 515,
4258
516, 517, 518, 519, 521, 526, 527, 528, 569, 570,
4259
571, 573, 580, 584, 585, 591, 594, 355, 355, 355,
4260
355, 355, 355, 355, 355, 357, 527, 359, 391, 355,
4261
355, 365, 391, 365, 572, 356, 362, 504, 505, 506,
4262
516, 521, 362, 365, 391, 365, 391, 517, 521, 373,
4263
523, 524, 0, 570, 501, 509, 516, 365, 500, 391,
4264
576, 577, 595, 596, 388, 391, 576, 388, 576, 388,
4265
576, 388, 576, 388, 576, 576, 595, 388, 576, 391,
4266
574, 575, 521, 530, 359, 391, 415, 513, 514, 391,
4267
520, 357, 365, 522, 359, 548, 573, 505, 504, 506,
4268
391, 391, 355, 364, 522, 359, 362, 365, 499, 335,
4269
336, 354, 355, 366, 367, 368, 369, 387, 388, 389,
4270
390, 391, 421, 422, 423, 424, 425, 426, 427, 428,
4271
466, 467, 468, 470, 471, 472, 473, 474, 475, 476,
4272
477, 478, 519, 521, 525, 522, 356, 391, 365, 364,
4273
362, 356, 362, 356, 362, 364, 362, 362, 362, 356,
4274
362, 362, 362, 362, 362, 362, 362, 356, 362, 356,
4275
362, 355, 358, 362, 365, 516, 521, 531, 532, 529,
4276
364, 356, 362, 356, 362, 358, 477, 479, 480, 481,
4277
482, 483, 484, 485, 486, 487, 488, 489, 490, 521,
4278
357, 365, 359, 360, 365, 399, 400, 401, 402, 404,
4279
405, 406, 407, 408, 409, 410, 411, 412, 413, 430,
4280
477, 490, 492, 494, 496, 500, 519, 521, 537, 538,
4281
539, 540, 541, 549, 550, 551, 552, 555, 556, 559,
4282
560, 561, 568, 573, 522, 364, 522, 359, 492, 535,
4283
364, 498, 391, 362, 365, 477, 477, 494, 335, 336,
4284
357, 361, 356, 356, 362, 398, 492, 355, 477, 362,
4285
374, 573, 354, 357, 388, 577, 595, 391, 596, 354,
4286
387, 388, 389, 390, 581, 582, 388, 490, 495, 583,
4287
388, 387, 388, 389, 390, 586, 587, 388, 387, 388,
4288
389, 390, 466, 588, 589, 388, 354, 590, 388, 595,
4289
391, 495, 526, 592, 593, 388, 495, 358, 575, 521,
4290
391, 533, 534, 360, 532, 531, 495, 514, 391, 370,
4291
371, 372, 367, 369, 333, 334, 337, 338, 373, 374,
4292
339, 340, 377, 376, 375, 341, 343, 342, 378, 358,
4293
358, 490, 360, 542, 355, 365, 365, 563, 355, 355,
4294
365, 365, 494, 355, 494, 363, 365, 365, 365, 365,
4295
344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
4296
364, 493, 362, 365, 360, 538, 552, 556, 561, 535,
4297
364, 360, 535, 536, 535, 531, 391, 356, 469, 494,
4298
391, 492, 477, 354, 388, 578, 579, 356, 364, 356,
4299
362, 356, 362, 356, 362, 362, 356, 362, 356, 362,
4300
356, 362, 362, 356, 362, 362, 356, 362, 356, 362,
4301
356, 356, 533, 522, 362, 365, 360, 477, 477, 477,
4302
479, 479, 480, 480, 481, 481, 481, 481, 482, 482,
4303
483, 484, 485, 486, 487, 488, 491, 358, 549, 562,
4304
538, 564, 494, 365, 494, 363, 492, 492, 535, 360,
4305
362, 360, 358, 358, 362, 358, 362, 582, 581, 495,
4306
583, 587, 586, 589, 588, 354, 590, 592, 593, 365,
4307
534, 494, 543, 494, 509, 554, 399, 537, 550, 565,
4308
356, 356, 360, 535, 354, 388, 356, 356, 356, 356,
4309
356, 356, 363, 360, 391, 356, 355, 554, 566, 567,
4310
545, 546, 547, 553, 557, 492, 364, 539, 544, 548,
4311
494, 365, 356, 403, 541, 539, 359, 535, 356, 494,
4312
544, 545, 549, 558, 365, 360
4313
};
4314
4315
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
4316
static const yytype_int16 yyr1[] =
4317
{
4318
0, 465, 466, 467, 467, 467, 467, 467, 467, 467,
4319
467, 467, 467, 467, 467, 467, 467, 467, 468, 468,
4320
468, 468, 468, 468, 469, 470, 471, 472, 472, 473,
4321
473, 474, 474, 475, 476, 476, 476, 477, 477, 477,
4322
477, 478, 478, 478, 478, 479, 479, 479, 479, 480,
4323
480, 480, 481, 481, 481, 482, 482, 482, 482, 482,
4324
483, 483, 483, 484, 484, 485, 485, 486, 486, 487,
4325
487, 488, 488, 489, 489, 490, 491, 490, 492, 492,
4326
493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
4327
493, 494, 494, 495, 496, 496, 496, 496, 496, 496,
4328
496, 496, 496, 496, 496, 498, 497, 499, 499, 500,
4329
500, 500, 500, 501, 501, 502, 502, 503, 504, 504,
4330
505, 505, 505, 505, 506, 507, 507, 507, 507, 507,
4331
508, 508, 508, 508, 508, 509, 509, 510, 511, 511,
4332
511, 511, 511, 511, 511, 511, 511, 511, 512, 513,
4333
513, 514, 514, 514, 515, 516, 516, 517, 517, 517,
4334
517, 517, 517, 517, 517, 517, 517, 517, 518, 518,
4335
518, 518, 518, 518, 518, 518, 518, 518, 518, 518,
4336
518, 518, 518, 518, 518, 518, 518, 518, 518, 518,
4337
518, 518, 518, 518, 518, 518, 518, 518, 518, 518,
4338
518, 518, 518, 518, 518, 518, 519, 520, 520, 521,
4339
521, 522, 522, 522, 522, 523, 523, 524, 525, 525,
4340
525, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4341
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4342
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4343
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4344
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4345
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4346
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4347
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4348
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4349
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4350
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4351
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4352
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4353
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4354
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4355
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4356
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4357
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4358
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4359
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4360
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4361
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4362
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4363
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4364
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4365
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4366
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4367
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4368
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4369
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4370
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4371
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
4372
526, 527, 527, 527, 529, 528, 530, 528, 531, 531,
4373
532, 532, 533, 533, 534, 534, 535, 535, 535, 535,
4374
536, 536, 537, 538, 538, 539, 539, 539, 539, 539,
4375
539, 539, 539, 540, 541, 542, 543, 541, 544, 544,
4376
546, 545, 547, 545, 548, 548, 549, 549, 550, 550,
4377
551, 551, 552, 553, 553, 554, 554, 555, 555, 557,
4378
556, 558, 558, 559, 559, 560, 560, 562, 561, 563,
4379
561, 564, 561, 565, 565, 566, 566, 567, 567, 568,
4380
568, 568, 568, 568, 568, 568, 568, 569, 569, 570,
4381
570, 570, 572, 571, 573, 574, 574, 575, 575, 576,
4382
576, 577, 577, 578, 578, 579, 579, 580, 580, 580,
4383
580, 580, 580, 581, 581, 582, 582, 582, 582, 582,
4384
583, 583, 584, 584, 585, 585, 585, 585, 585, 585,
4385
585, 585, 586, 586, 587, 587, 587, 587, 588, 588,
4386
589, 589, 589, 589, 589, 590, 590, 591, 591, 591,
4387
591, 592, 592, 593, 593, 594, 594, 595, 595, 596,
4388
596
4389
};
4390
4391
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
4392
static const yytype_int8 yyr2[] =
4393
{
4394
0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
4395
1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
4396
1, 3, 2, 2, 1, 1, 1, 2, 2, 2,
4397
1, 2, 3, 2, 1, 1, 1, 1, 2, 2,
4398
2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
4399
3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
4400
1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
4401
3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
4402
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4403
1, 1, 3, 1, 2, 3, 2, 2, 4, 2,
4404
3, 4, 2, 3, 4, 0, 6, 2, 3, 2,
4405
3, 3, 4, 1, 1, 2, 3, 3, 2, 3,
4406
2, 1, 2, 1, 1, 1, 3, 4, 6, 5,
4407
1, 2, 3, 5, 4, 1, 2, 1, 1, 1,
4408
1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
4409
3, 1, 3, 1, 1, 1, 2, 1, 1, 1,
4410
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4411
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4412
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4413
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4414
1, 1, 1, 1, 4, 1, 1, 1, 3, 2,
4415
3, 2, 3, 3, 4, 1, 0, 3, 1, 1,
4416
3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4417
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4418
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4419
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4420
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4421
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4422
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4423
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4424
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4425
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4426
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4427
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4428
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4429
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4430
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4431
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4432
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4433
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4434
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4435
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4436
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4437
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4438
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4439
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4440
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4441
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4442
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4443
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4444
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4445
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4446
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4447
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4448
1, 1, 1, 1, 0, 6, 0, 5, 1, 2,
4449
3, 4, 1, 3, 1, 2, 1, 3, 4, 2,
4450
1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
4451
1, 1, 1, 2, 2, 0, 0, 5, 1, 1,
4452
0, 2, 0, 2, 2, 3, 1, 2, 1, 2,
4453
1, 2, 5, 3, 1, 1, 4, 1, 2, 0,
4454
8, 0, 1, 3, 2, 1, 2, 0, 6, 0,
4455
8, 0, 7, 1, 1, 1, 0, 2, 3, 2,
4456
2, 2, 3, 2, 2, 2, 2, 1, 2, 1,
4457
1, 1, 0, 3, 5, 1, 3, 1, 4, 1,
4458
3, 5, 5, 1, 3, 1, 3, 4, 6, 6,
4459
8, 6, 8, 1, 3, 1, 1, 1, 1, 1,
4460
1, 3, 4, 6, 4, 6, 6, 8, 6, 8,
4461
6, 8, 1, 3, 1, 1, 1, 1, 1, 3,
4462
1, 1, 1, 1, 1, 1, 3, 6, 8, 4,
4463
6, 1, 3, 1, 1, 4, 6, 1, 3, 3,
4464
3
4465
};
4466
4467
4468
enum { YYENOMEM = -2 };
4469
4470
#define yyerrok (yyerrstatus = 0)
4471
#define yyclearin (yychar = YYEMPTY)
4472
4473
#define YYACCEPT goto yyacceptlab
4474
#define YYABORT goto yyabortlab
4475
#define YYERROR goto yyerrorlab
4476
#define YYNOMEM goto yyexhaustedlab
4477
4478
4479
#define YYRECOVERING() (!!yyerrstatus)
4480
4481
#define YYBACKUP(Token, Value) \
4482
do \
4483
if (yychar == YYEMPTY) \
4484
{ \
4485
yychar = (Token); \
4486
yylval = (Value); \
4487
YYPOPSTACK (yylen); \
4488
yystate = *yyssp; \
4489
goto yybackup; \
4490
} \
4491
else \
4492
{ \
4493
yyerror (pParseContext, YY_("syntax error: cannot back up")); \
4494
YYERROR; \
4495
} \
4496
while (0)
4497
4498
/* Backward compatibility with an undocumented macro.
4499
Use YYerror or YYUNDEF. */
4500
#define YYERRCODE YYUNDEF
4501
4502
4503
/* Enable debugging if requested. */
4504
#if YYDEBUG
4505
4506
# ifndef YYFPRINTF
4507
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
4508
# define YYFPRINTF fprintf
4509
# endif
4510
4511
# define YYDPRINTF(Args) \
4512
do { \
4513
if (yydebug) \
4514
YYFPRINTF Args; \
4515
} while (0)
4516
4517
4518
4519
4520
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
4521
do { \
4522
if (yydebug) \
4523
{ \
4524
YYFPRINTF (stderr, "%s ", Title); \
4525
yy_symbol_print (stderr, \
4526
Kind, Value, pParseContext); \
4527
YYFPRINTF (stderr, "\n"); \
4528
} \
4529
} while (0)
4530
4531
4532
/*-----------------------------------.
4533
| Print this symbol's value on YYO. |
4534
`-----------------------------------*/
4535
4536
static void
4537
yy_symbol_value_print (FILE *yyo,
4538
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4539
{
4540
FILE *yyoutput = yyo;
4541
YY_USE (yyoutput);
4542
YY_USE (pParseContext);
4543
if (!yyvaluep)
4544
return;
4545
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4546
YY_USE (yykind);
4547
YY_IGNORE_MAYBE_UNINITIALIZED_END
4548
}
4549
4550
4551
/*---------------------------.
4552
| Print this symbol on YYO. |
4553
`---------------------------*/
4554
4555
static void
4556
yy_symbol_print (FILE *yyo,
4557
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4558
{
4559
YYFPRINTF (yyo, "%s %s (",
4560
yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
4561
4562
yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
4563
YYFPRINTF (yyo, ")");
4564
}
4565
4566
/*------------------------------------------------------------------.
4567
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
4568
| TOP (included). |
4569
`------------------------------------------------------------------*/
4570
4571
static void
4572
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
4573
{
4574
YYFPRINTF (stderr, "Stack now");
4575
for (; yybottom <= yytop; yybottom++)
4576
{
4577
int yybot = *yybottom;
4578
YYFPRINTF (stderr, " %d", yybot);
4579
}
4580
YYFPRINTF (stderr, "\n");
4581
}
4582
4583
# define YY_STACK_PRINT(Bottom, Top) \
4584
do { \
4585
if (yydebug) \
4586
yy_stack_print ((Bottom), (Top)); \
4587
} while (0)
4588
4589
4590
/*------------------------------------------------.
4591
| Report that the YYRULE is going to be reduced. |
4592
`------------------------------------------------*/
4593
4594
static void
4595
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
4596
int yyrule, glslang::TParseContext* pParseContext)
4597
{
4598
int yylno = yyrline[yyrule];
4599
int yynrhs = yyr2[yyrule];
4600
int yyi;
4601
YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
4602
yyrule - 1, yylno);
4603
/* The symbols being reduced. */
4604
for (yyi = 0; yyi < yynrhs; yyi++)
4605
{
4606
YYFPRINTF (stderr, " $%d = ", yyi + 1);
4607
yy_symbol_print (stderr,
4608
YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
4609
&yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
4610
YYFPRINTF (stderr, "\n");
4611
}
4612
}
4613
4614
# define YY_REDUCE_PRINT(Rule) \
4615
do { \
4616
if (yydebug) \
4617
yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
4618
} while (0)
4619
4620
/* Nonzero means print parse trace. It is left uninitialized so that
4621
multiple parsers can coexist. */
4622
int yydebug;
4623
#else /* !YYDEBUG */
4624
# define YYDPRINTF(Args) ((void) 0)
4625
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
4626
# define YY_STACK_PRINT(Bottom, Top)
4627
# define YY_REDUCE_PRINT(Rule)
4628
#endif /* !YYDEBUG */
4629
4630
4631
/* YYINITDEPTH -- initial size of the parser's stacks. */
4632
#ifndef YYINITDEPTH
4633
# define YYINITDEPTH 200
4634
#endif
4635
4636
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4637
if the built-in stack extension method is used).
4638
4639
Do not make this value too large; the results are undefined if
4640
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4641
evaluated with infinite-precision integer arithmetic. */
4642
4643
#ifndef YYMAXDEPTH
4644
# define YYMAXDEPTH 10000
4645
#endif
4646
4647
4648
/* Context of a parse error. */
4649
typedef struct
4650
{
4651
yy_state_t *yyssp;
4652
yysymbol_kind_t yytoken;
4653
} yypcontext_t;
4654
4655
/* Put in YYARG at most YYARGN of the expected tokens given the
4656
current YYCTX, and return the number of tokens stored in YYARG. If
4657
YYARG is null, return the number of expected tokens (guaranteed to
4658
be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
4659
Return 0 if there are more than YYARGN expected tokens, yet fill
4660
YYARG up to YYARGN. */
4661
static int
4662
yypcontext_expected_tokens (const yypcontext_t *yyctx,
4663
yysymbol_kind_t yyarg[], int yyargn)
4664
{
4665
/* Actual size of YYARG. */
4666
int yycount = 0;
4667
int yyn = yypact[+*yyctx->yyssp];
4668
if (!yypact_value_is_default (yyn))
4669
{
4670
/* Start YYX at -YYN if negative to avoid negative indexes in
4671
YYCHECK. In other words, skip the first -YYN actions for
4672
this state because they are default actions. */
4673
int yyxbegin = yyn < 0 ? -yyn : 0;
4674
/* Stay within bounds of both yycheck and yytname. */
4675
int yychecklim = YYLAST - yyn + 1;
4676
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4677
int yyx;
4678
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4679
if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
4680
&& !yytable_value_is_error (yytable[yyx + yyn]))
4681
{
4682
if (!yyarg)
4683
++yycount;
4684
else if (yycount == yyargn)
4685
return 0;
4686
else
4687
yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
4688
}
4689
}
4690
if (yyarg && yycount == 0 && 0 < yyargn)
4691
yyarg[0] = YYSYMBOL_YYEMPTY;
4692
return yycount;
4693
}
4694
4695
4696
4697
4698
#ifndef yystrlen
4699
# if defined __GLIBC__ && defined _STRING_H
4700
# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
4701
# else
4702
/* Return the length of YYSTR. */
4703
static YYPTRDIFF_T
4704
yystrlen (const char *yystr)
4705
{
4706
YYPTRDIFF_T yylen;
4707
for (yylen = 0; yystr[yylen]; yylen++)
4708
continue;
4709
return yylen;
4710
}
4711
# endif
4712
#endif
4713
4714
#ifndef yystpcpy
4715
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4716
# define yystpcpy stpcpy
4717
# else
4718
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4719
YYDEST. */
4720
static char *
4721
yystpcpy (char *yydest, const char *yysrc)
4722
{
4723
char *yyd = yydest;
4724
const char *yys = yysrc;
4725
4726
while ((*yyd++ = *yys++) != '\0')
4727
continue;
4728
4729
return yyd - 1;
4730
}
4731
# endif
4732
#endif
4733
4734
#ifndef yytnamerr
4735
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4736
quotes and backslashes, so that it's suitable for yyerror. The
4737
heuristic is that double-quoting is unnecessary unless the string
4738
contains an apostrophe, a comma, or backslash (other than
4739
backslash-backslash). YYSTR is taken from yytname. If YYRES is
4740
null, do not copy; instead, return the length of what the result
4741
would have been. */
4742
static YYPTRDIFF_T
4743
yytnamerr (char *yyres, const char *yystr)
4744
{
4745
if (*yystr == '"')
4746
{
4747
YYPTRDIFF_T yyn = 0;
4748
char const *yyp = yystr;
4749
for (;;)
4750
switch (*++yyp)
4751
{
4752
case '\'':
4753
case ',':
4754
goto do_not_strip_quotes;
4755
4756
case '\\':
4757
if (*++yyp != '\\')
4758
goto do_not_strip_quotes;
4759
else
4760
goto append;
4761
4762
append:
4763
default:
4764
if (yyres)
4765
yyres[yyn] = *yyp;
4766
yyn++;
4767
break;
4768
4769
case '"':
4770
if (yyres)
4771
yyres[yyn] = '\0';
4772
return yyn;
4773
}
4774
do_not_strip_quotes: ;
4775
}
4776
4777
if (yyres)
4778
return yystpcpy (yyres, yystr) - yyres;
4779
else
4780
return yystrlen (yystr);
4781
}
4782
#endif
4783
4784
4785
static int
4786
yy_syntax_error_arguments (const yypcontext_t *yyctx,
4787
yysymbol_kind_t yyarg[], int yyargn)
4788
{
4789
/* Actual size of YYARG. */
4790
int yycount = 0;
4791
/* There are many possibilities here to consider:
4792
- If this state is a consistent state with a default action, then
4793
the only way this function was invoked is if the default action
4794
is an error action. In that case, don't check for expected
4795
tokens because there are none.
4796
- The only way there can be no lookahead present (in yychar) is if
4797
this state is a consistent state with a default action. Thus,
4798
detecting the absence of a lookahead is sufficient to determine
4799
that there is no unexpected or expected token to report. In that
4800
case, just report a simple "syntax error".
4801
- Don't assume there isn't a lookahead just because this state is a
4802
consistent state with a default action. There might have been a
4803
previous inconsistent state, consistent state with a non-default
4804
action, or user semantic action that manipulated yychar.
4805
- Of course, the expected token list depends on states to have
4806
correct lookahead information, and it depends on the parser not
4807
to perform extra reductions after fetching a lookahead from the
4808
scanner and before detecting a syntax error. Thus, state merging
4809
(from LALR or IELR) and default reductions corrupt the expected
4810
token list. However, the list is correct for canonical LR with
4811
one exception: it will still contain any token that will not be
4812
accepted due to an error action in a later state.
4813
*/
4814
if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
4815
{
4816
int yyn;
4817
if (yyarg)
4818
yyarg[yycount] = yyctx->yytoken;
4819
++yycount;
4820
yyn = yypcontext_expected_tokens (yyctx,
4821
yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4822
if (yyn == YYENOMEM)
4823
return YYENOMEM;
4824
else
4825
yycount += yyn;
4826
}
4827
return yycount;
4828
}
4829
4830
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
4831
about the unexpected token YYTOKEN for the state stack whose top is
4832
YYSSP.
4833
4834
Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
4835
not large enough to hold the message. In that case, also set
4836
*YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
4837
required number of bytes is too large to store. */
4838
static int
4839
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
4840
const yypcontext_t *yyctx)
4841
{
4842
enum { YYARGS_MAX = 5 };
4843
/* Internationalized format string. */
4844
const char *yyformat = YY_NULLPTR;
4845
/* Arguments of yyformat: reported tokens (one for the "unexpected",
4846
one per "expected"). */
4847
yysymbol_kind_t yyarg[YYARGS_MAX];
4848
/* Cumulated lengths of YYARG. */
4849
YYPTRDIFF_T yysize = 0;
4850
4851
/* Actual size of YYARG. */
4852
int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
4853
if (yycount == YYENOMEM)
4854
return YYENOMEM;
4855
4856
switch (yycount)
4857
{
4858
#define YYCASE_(N, S) \
4859
case N: \
4860
yyformat = S; \
4861
break
4862
default: /* Avoid compiler warnings. */
4863
YYCASE_(0, YY_("syntax error"));
4864
YYCASE_(1, YY_("syntax error, unexpected %s"));
4865
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
4866
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
4867
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
4868
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4869
#undef YYCASE_
4870
}
4871
4872
/* Compute error message size. Don't count the "%s"s, but reserve
4873
room for the terminator. */
4874
yysize = yystrlen (yyformat) - 2 * yycount + 1;
4875
{
4876
int yyi;
4877
for (yyi = 0; yyi < yycount; ++yyi)
4878
{
4879
YYPTRDIFF_T yysize1
4880
= yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
4881
if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
4882
yysize = yysize1;
4883
else
4884
return YYENOMEM;
4885
}
4886
}
4887
4888
if (*yymsg_alloc < yysize)
4889
{
4890
*yymsg_alloc = 2 * yysize;
4891
if (! (yysize <= *yymsg_alloc
4892
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
4893
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
4894
return -1;
4895
}
4896
4897
/* Avoid sprintf, as that infringes on the user's name space.
4898
Don't have undefined behavior even if the translation
4899
produced a string with the wrong number of "%s"s. */
4900
{
4901
char *yyp = *yymsg;
4902
int yyi = 0;
4903
while ((*yyp = *yyformat) != '\0')
4904
if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4905
{
4906
yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
4907
yyformat += 2;
4908
}
4909
else
4910
{
4911
++yyp;
4912
++yyformat;
4913
}
4914
}
4915
return 0;
4916
}
4917
4918
4919
/*-----------------------------------------------.
4920
| Release the memory associated to this symbol. |
4921
`-----------------------------------------------*/
4922
4923
static void
4924
yydestruct (const char *yymsg,
4925
yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
4926
{
4927
YY_USE (yyvaluep);
4928
YY_USE (pParseContext);
4929
if (!yymsg)
4930
yymsg = "Deleting";
4931
YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4932
4933
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4934
YY_USE (yykind);
4935
YY_IGNORE_MAYBE_UNINITIALIZED_END
4936
}
4937
4938
4939
4940
4941
4942
4943
/*----------.
4944
| yyparse. |
4945
`----------*/
4946
4947
int
4948
yyparse (glslang::TParseContext* pParseContext)
4949
{
4950
/* Lookahead token kind. */
4951
int yychar;
4952
4953
4954
/* The semantic value of the lookahead symbol. */
4955
/* Default value used for initialization, for pacifying older GCCs
4956
or non-GCC compilers. */
4957
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4958
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4959
4960
/* Number of syntax errors so far. */
4961
int yynerrs = 0;
4962
4963
yy_state_fast_t yystate = 0;
4964
/* Number of tokens to shift before error messages enabled. */
4965
int yyerrstatus = 0;
4966
4967
/* Refer to the stacks through separate pointers, to allow yyoverflow
4968
to reallocate them elsewhere. */
4969
4970
/* Their size. */
4971
YYPTRDIFF_T yystacksize = YYINITDEPTH;
4972
4973
/* The state stack: array, bottom, top. */
4974
yy_state_t yyssa[YYINITDEPTH];
4975
yy_state_t *yyss = yyssa;
4976
yy_state_t *yyssp = yyss;
4977
4978
/* The semantic value stack: array, bottom, top. */
4979
YYSTYPE yyvsa[YYINITDEPTH];
4980
YYSTYPE *yyvs = yyvsa;
4981
YYSTYPE *yyvsp = yyvs;
4982
4983
int yyn;
4984
/* The return value of yyparse. */
4985
int yyresult;
4986
/* Lookahead symbol kind. */
4987
yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4988
/* The variables used to return semantic value and location from the
4989
action routines. */
4990
YYSTYPE yyval;
4991
4992
/* Buffer for error messages, and its allocated size. */
4993
char yymsgbuf[128];
4994
char *yymsg = yymsgbuf;
4995
YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
4996
4997
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4998
4999
/* The number of symbols on the RHS of the reduced rule.
5000
Keep to zero when no symbol should be popped. */
5001
int yylen = 0;
5002
5003
YYDPRINTF ((stderr, "Starting parse\n"));
5004
5005
yychar = YYEMPTY; /* Cause a token to be read. */
5006
5007
goto yysetstate;
5008
5009
5010
/*------------------------------------------------------------.
5011
| yynewstate -- push a new state, which is found in yystate. |
5012
`------------------------------------------------------------*/
5013
yynewstate:
5014
/* In all cases, when you get here, the value and location stacks
5015
have just been pushed. So pushing a state here evens the stacks. */
5016
yyssp++;
5017
5018
5019
/*--------------------------------------------------------------------.
5020
| yysetstate -- set current state (the top of the stack) to yystate. |
5021
`--------------------------------------------------------------------*/
5022
yysetstate:
5023
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
5024
YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
5025
YY_IGNORE_USELESS_CAST_BEGIN
5026
*yyssp = YY_CAST (yy_state_t, yystate);
5027
YY_IGNORE_USELESS_CAST_END
5028
YY_STACK_PRINT (yyss, yyssp);
5029
5030
if (yyss + yystacksize - 1 <= yyssp)
5031
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
5032
YYNOMEM;
5033
#else
5034
{
5035
/* Get the current used size of the three stacks, in elements. */
5036
YYPTRDIFF_T yysize = yyssp - yyss + 1;
5037
5038
# if defined yyoverflow
5039
{
5040
/* Give user a chance to reallocate the stack. Use copies of
5041
these so that the &'s don't force the real ones into
5042
memory. */
5043
yy_state_t *yyss1 = yyss;
5044
YYSTYPE *yyvs1 = yyvs;
5045
5046
/* Each stack pointer address is followed by the size of the
5047
data in use in that stack, in bytes. This used to be a
5048
conditional around just the two extra args, but that might
5049
be undefined if yyoverflow is a macro. */
5050
yyoverflow (YY_("memory exhausted"),
5051
&yyss1, yysize * YYSIZEOF (*yyssp),
5052
&yyvs1, yysize * YYSIZEOF (*yyvsp),
5053
&yystacksize);
5054
yyss = yyss1;
5055
yyvs = yyvs1;
5056
}
5057
# else /* defined YYSTACK_RELOCATE */
5058
/* Extend the stack our own way. */
5059
if (YYMAXDEPTH <= yystacksize)
5060
YYNOMEM;
5061
yystacksize *= 2;
5062
if (YYMAXDEPTH < yystacksize)
5063
yystacksize = YYMAXDEPTH;
5064
5065
{
5066
yy_state_t *yyss1 = yyss;
5067
union yyalloc *yyptr =
5068
YY_CAST (union yyalloc *,
5069
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
5070
if (! yyptr)
5071
YYNOMEM;
5072
YYSTACK_RELOCATE (yyss_alloc, yyss);
5073
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
5074
# undef YYSTACK_RELOCATE
5075
if (yyss1 != yyssa)
5076
YYSTACK_FREE (yyss1);
5077
}
5078
# endif
5079
5080
yyssp = yyss + yysize - 1;
5081
yyvsp = yyvs + yysize - 1;
5082
5083
YY_IGNORE_USELESS_CAST_BEGIN
5084
YYDPRINTF ((stderr, "Stack size increased to %ld\n",
5085
YY_CAST (long, yystacksize)));
5086
YY_IGNORE_USELESS_CAST_END
5087
5088
if (yyss + yystacksize - 1 <= yyssp)
5089
YYABORT;
5090
}
5091
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
5092
5093
5094
if (yystate == YYFINAL)
5095
YYACCEPT;
5096
5097
goto yybackup;
5098
5099
5100
/*-----------.
5101
| yybackup. |
5102
`-----------*/
5103
yybackup:
5104
/* Do appropriate processing given the current state. Read a
5105
lookahead token if we need one and don't already have one. */
5106
5107
/* First try to decide what to do without reference to lookahead token. */
5108
yyn = yypact[yystate];
5109
if (yypact_value_is_default (yyn))
5110
goto yydefault;
5111
5112
/* Not known => get a lookahead token if don't already have one. */
5113
5114
/* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
5115
if (yychar == YYEMPTY)
5116
{
5117
YYDPRINTF ((stderr, "Reading a token\n"));
5118
yychar = yylex (&yylval, parseContext);
5119
}
5120
5121
if (yychar <= YYEOF)
5122
{
5123
yychar = YYEOF;
5124
yytoken = YYSYMBOL_YYEOF;
5125
YYDPRINTF ((stderr, "Now at end of input.\n"));
5126
}
5127
else if (yychar == YYerror)
5128
{
5129
/* The scanner already issued an error message, process directly
5130
to error recovery. But do not keep the error token as
5131
lookahead, it is too special and may lead us to an endless
5132
loop in error recovery. */
5133
yychar = YYUNDEF;
5134
yytoken = YYSYMBOL_YYerror;
5135
goto yyerrlab1;
5136
}
5137
else
5138
{
5139
yytoken = YYTRANSLATE (yychar);
5140
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5141
}
5142
5143
/* If the proper action on seeing token YYTOKEN is to reduce or to
5144
detect an error, take that action. */
5145
yyn += yytoken;
5146
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5147
goto yydefault;
5148
yyn = yytable[yyn];
5149
if (yyn <= 0)
5150
{
5151
if (yytable_value_is_error (yyn))
5152
goto yyerrlab;
5153
yyn = -yyn;
5154
goto yyreduce;
5155
}
5156
5157
/* Count tokens shifted since error; after three, turn off error
5158
status. */
5159
if (yyerrstatus)
5160
yyerrstatus--;
5161
5162
/* Shift the lookahead token. */
5163
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5164
yystate = yyn;
5165
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5166
*++yyvsp = yylval;
5167
YY_IGNORE_MAYBE_UNINITIALIZED_END
5168
5169
/* Discard the shifted token. */
5170
yychar = YYEMPTY;
5171
goto yynewstate;
5172
5173
5174
/*-----------------------------------------------------------.
5175
| yydefault -- do the default action for the current state. |
5176
`-----------------------------------------------------------*/
5177
yydefault:
5178
yyn = yydefact[yystate];
5179
if (yyn == 0)
5180
goto yyerrlab;
5181
goto yyreduce;
5182
5183
5184
/*-----------------------------.
5185
| yyreduce -- do a reduction. |
5186
`-----------------------------*/
5187
yyreduce:
5188
/* yyn is the number of a rule to reduce with. */
5189
yylen = yyr2[yyn];
5190
5191
/* If YYLEN is nonzero, implement the default value of the action:
5192
'$$ = $1'.
5193
5194
Otherwise, the following line sets YYVAL to garbage.
5195
This behavior is undocumented and Bison
5196
users should not rely upon it. Assigning to YYVAL
5197
unconditionally makes the parser a bit smaller, and it avoids a
5198
GCC warning that YYVAL may be used uninitialized. */
5199
yyval = yyvsp[1-yylen];
5200
5201
5202
YY_REDUCE_PRINT (yyn);
5203
switch (yyn)
5204
{
5205
case 2: /* variable_identifier: IDENTIFIER */
5206
#line 355 "MachineIndependent/glslang.y"
5207
{
5208
(yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
5209
}
5210
#line 5211 "MachineIndependent/glslang_tab.cpp"
5211
break;
5212
5213
case 3: /* primary_expression: variable_identifier */
5214
#line 361 "MachineIndependent/glslang.y"
5215
{
5216
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5217
}
5218
#line 5219 "MachineIndependent/glslang_tab.cpp"
5219
break;
5220
5221
case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
5222
#line 364 "MachineIndependent/glslang.y"
5223
{
5224
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
5225
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5226
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5227
}
5228
#line 5229 "MachineIndependent/glslang_tab.cpp"
5229
break;
5230
5231
case 5: /* primary_expression: FLOATCONSTANT */
5232
#line 369 "MachineIndependent/glslang.y"
5233
{
5234
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
5235
}
5236
#line 5237 "MachineIndependent/glslang_tab.cpp"
5237
break;
5238
5239
case 6: /* primary_expression: INTCONSTANT */
5240
#line 372 "MachineIndependent/glslang.y"
5241
{
5242
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5243
}
5244
#line 5245 "MachineIndependent/glslang_tab.cpp"
5245
break;
5246
5247
case 7: /* primary_expression: UINTCONSTANT */
5248
#line 375 "MachineIndependent/glslang.y"
5249
{
5250
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
5251
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5252
}
5253
#line 5254 "MachineIndependent/glslang_tab.cpp"
5254
break;
5255
5256
case 8: /* primary_expression: BOOLCONSTANT */
5257
#line 379 "MachineIndependent/glslang.y"
5258
{
5259
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
5260
}
5261
#line 5262 "MachineIndependent/glslang_tab.cpp"
5262
break;
5263
5264
case 9: /* primary_expression: STRING_LITERAL */
5265
#line 382 "MachineIndependent/glslang.y"
5266
{
5267
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
5268
}
5269
#line 5270 "MachineIndependent/glslang_tab.cpp"
5270
break;
5271
5272
case 10: /* primary_expression: INT32CONSTANT */
5273
#line 385 "MachineIndependent/glslang.y"
5274
{
5275
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5276
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5277
}
5278
#line 5279 "MachineIndependent/glslang_tab.cpp"
5279
break;
5280
5281
case 11: /* primary_expression: UINT32CONSTANT */
5282
#line 389 "MachineIndependent/glslang.y"
5283
{
5284
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5285
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5286
}
5287
#line 5288 "MachineIndependent/glslang_tab.cpp"
5288
break;
5289
5290
case 12: /* primary_expression: INT64CONSTANT */
5291
#line 393 "MachineIndependent/glslang.y"
5292
{
5293
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
5294
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
5295
}
5296
#line 5297 "MachineIndependent/glslang_tab.cpp"
5297
break;
5298
5299
case 13: /* primary_expression: UINT64CONSTANT */
5300
#line 397 "MachineIndependent/glslang.y"
5301
{
5302
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
5303
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
5304
}
5305
#line 5306 "MachineIndependent/glslang_tab.cpp"
5306
break;
5307
5308
case 14: /* primary_expression: INT16CONSTANT */
5309
#line 401 "MachineIndependent/glslang.y"
5310
{
5311
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
5312
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5313
}
5314
#line 5315 "MachineIndependent/glslang_tab.cpp"
5315
break;
5316
5317
case 15: /* primary_expression: UINT16CONSTANT */
5318
#line 405 "MachineIndependent/glslang.y"
5319
{
5320
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
5321
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5322
}
5323
#line 5324 "MachineIndependent/glslang_tab.cpp"
5324
break;
5325
5326
case 16: /* primary_expression: DOUBLECONSTANT */
5327
#line 409 "MachineIndependent/glslang.y"
5328
{
5329
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
5330
if (! parseContext.symbolTable.atBuiltInLevel())
5331
parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
5332
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
5333
}
5334
#line 5335 "MachineIndependent/glslang_tab.cpp"
5335
break;
5336
5337
case 17: /* primary_expression: FLOAT16CONSTANT */
5338
#line 415 "MachineIndependent/glslang.y"
5339
{
5340
parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
5341
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
5342
}
5343
#line 5344 "MachineIndependent/glslang_tab.cpp"
5344
break;
5345
5346
case 18: /* postfix_expression: primary_expression */
5347
#line 422 "MachineIndependent/glslang.y"
5348
{
5349
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5350
}
5351
#line 5352 "MachineIndependent/glslang_tab.cpp"
5352
break;
5353
5354
case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
5355
#line 425 "MachineIndependent/glslang.y"
5356
{
5357
(yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
5358
}
5359
#line 5360 "MachineIndependent/glslang_tab.cpp"
5360
break;
5361
5362
case 20: /* postfix_expression: function_call */
5363
#line 428 "MachineIndependent/glslang.y"
5364
{
5365
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5366
}
5367
#line 5368 "MachineIndependent/glslang_tab.cpp"
5368
break;
5369
5370
case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
5371
#line 431 "MachineIndependent/glslang.y"
5372
{
5373
(yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
5374
}
5375
#line 5376 "MachineIndependent/glslang_tab.cpp"
5376
break;
5377
5378
case 22: /* postfix_expression: postfix_expression INC_OP */
5379
#line 434 "MachineIndependent/glslang.y"
5380
{
5381
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5382
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
5383
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
5384
}
5385
#line 5386 "MachineIndependent/glslang_tab.cpp"
5386
break;
5387
5388
case 23: /* postfix_expression: postfix_expression DEC_OP */
5389
#line 439 "MachineIndependent/glslang.y"
5390
{
5391
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5392
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
5393
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
5394
}
5395
#line 5396 "MachineIndependent/glslang_tab.cpp"
5396
break;
5397
5398
case 24: /* integer_expression: expression */
5399
#line 447 "MachineIndependent/glslang.y"
5400
{
5401
parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
5402
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5403
}
5404
#line 5405 "MachineIndependent/glslang_tab.cpp"
5405
break;
5406
5407
case 25: /* function_call: function_call_or_method */
5408
#line 454 "MachineIndependent/glslang.y"
5409
{
5410
(yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
5411
delete (yyvsp[0].interm).function;
5412
}
5413
#line 5414 "MachineIndependent/glslang_tab.cpp"
5414
break;
5415
5416
case 26: /* function_call_or_method: function_call_generic */
5417
#line 461 "MachineIndependent/glslang.y"
5418
{
5419
(yyval.interm) = (yyvsp[0].interm);
5420
}
5421
#line 5422 "MachineIndependent/glslang_tab.cpp"
5422
break;
5423
5424
case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
5425
#line 467 "MachineIndependent/glslang.y"
5426
{
5427
(yyval.interm) = (yyvsp[-1].interm);
5428
(yyval.interm).loc = (yyvsp[0].lex).loc;
5429
}
5430
#line 5431 "MachineIndependent/glslang_tab.cpp"
5431
break;
5432
5433
case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
5434
#line 471 "MachineIndependent/glslang.y"
5435
{
5436
(yyval.interm) = (yyvsp[-1].interm);
5437
(yyval.interm).loc = (yyvsp[0].lex).loc;
5438
}
5439
#line 5440 "MachineIndependent/glslang_tab.cpp"
5440
break;
5441
5442
case 29: /* function_call_header_no_parameters: function_call_header VOID */
5443
#line 478 "MachineIndependent/glslang.y"
5444
{
5445
(yyval.interm) = (yyvsp[-1].interm);
5446
}
5447
#line 5448 "MachineIndependent/glslang_tab.cpp"
5448
break;
5449
5450
case 30: /* function_call_header_no_parameters: function_call_header */
5451
#line 481 "MachineIndependent/glslang.y"
5452
{
5453
(yyval.interm) = (yyvsp[0].interm);
5454
}
5455
#line 5456 "MachineIndependent/glslang_tab.cpp"
5456
break;
5457
5458
case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
5459
#line 487 "MachineIndependent/glslang.y"
5460
{
5461
if (parseContext.spvVersion.vulkan > 0
5462
&& parseContext.spvVersion.vulkanRelaxed
5463
&& (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
5464
{
5465
(yyval.interm).intermNode = parseContext.vkRelaxedRemapFunctionArgument((yyval.interm).loc, (yyvsp[-1].interm).function, (yyvsp[0].interm.intermTypedNode));
5466
(yyval.interm).function = (yyvsp[-1].interm).function;
5467
}
5468
else
5469
{
5470
TParameter param = { 0, new TType, {} };
5471
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5472
5473
(yyvsp[-1].interm).function->addParameter(param);
5474
(yyval.interm).function = (yyvsp[-1].interm).function;
5475
(yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
5476
}
5477
}
5478
#line 5479 "MachineIndependent/glslang_tab.cpp"
5479
break;
5480
5481
case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
5482
#line 505 "MachineIndependent/glslang.y"
5483
{
5484
if (parseContext.spvVersion.vulkan > 0
5485
&& parseContext.spvVersion.vulkanRelaxed
5486
&& (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
5487
{
5488
TIntermNode* remappedNode = parseContext.vkRelaxedRemapFunctionArgument((yyvsp[-1].lex).loc, (yyvsp[-2].interm).function, (yyvsp[0].interm.intermTypedNode));
5489
if (remappedNode == (yyvsp[0].interm.intermTypedNode))
5490
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5491
else
5492
(yyval.interm).intermNode = parseContext.intermediate.mergeAggregate((yyvsp[-2].interm).intermNode, remappedNode, (yyvsp[-1].lex).loc);
5493
(yyval.interm).function = (yyvsp[-2].interm).function;
5494
}
5495
else
5496
{
5497
TParameter param = { 0, new TType, {} };
5498
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5499
5500
(yyvsp[-2].interm).function->addParameter(param);
5501
(yyval.interm).function = (yyvsp[-2].interm).function;
5502
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5503
}
5504
}
5505
#line 5506 "MachineIndependent/glslang_tab.cpp"
5506
break;
5507
5508
case 33: /* function_call_header: function_identifier LEFT_PAREN */
5509
#line 530 "MachineIndependent/glslang.y"
5510
{
5511
(yyval.interm) = (yyvsp[-1].interm);
5512
}
5513
#line 5514 "MachineIndependent/glslang_tab.cpp"
5514
break;
5515
5516
case 34: /* function_identifier: type_specifier */
5517
#line 538 "MachineIndependent/glslang.y"
5518
{
5519
// Constructor
5520
(yyval.interm).intermNode = 0;
5521
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5522
}
5523
#line 5524 "MachineIndependent/glslang_tab.cpp"
5524
break;
5525
5526
case 35: /* function_identifier: postfix_expression */
5527
#line 543 "MachineIndependent/glslang.y"
5528
{
5529
//
5530
// Should be a method or subroutine call, but we haven't recognized the arguments yet.
5531
//
5532
(yyval.interm).function = 0;
5533
(yyval.interm).intermNode = 0;
5534
5535
TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
5536
if (method) {
5537
(yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
5538
(yyval.interm).intermNode = method->getObject();
5539
} else {
5540
TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
5541
if (symbol) {
5542
parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
5543
TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
5544
(yyval.interm).function = function;
5545
} else
5546
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
5547
}
5548
5549
if ((yyval.interm).function == 0) {
5550
// error recover
5551
TString* empty = NewPoolTString("");
5552
(yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
5553
}
5554
}
5555
#line 5556 "MachineIndependent/glslang_tab.cpp"
5556
break;
5557
5558
case 36: /* function_identifier: non_uniform_qualifier */
5559
#line 570 "MachineIndependent/glslang.y"
5560
{
5561
// Constructor
5562
(yyval.interm).intermNode = 0;
5563
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5564
}
5565
#line 5566 "MachineIndependent/glslang_tab.cpp"
5566
break;
5567
5568
case 37: /* unary_expression: postfix_expression */
5569
#line 578 "MachineIndependent/glslang.y"
5570
{
5571
parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
5572
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5573
if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
5574
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
5575
}
5576
#line 5577 "MachineIndependent/glslang_tab.cpp"
5577
break;
5578
5579
case 38: /* unary_expression: INC_OP unary_expression */
5580
#line 584 "MachineIndependent/glslang.y"
5581
{
5582
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
5583
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
5584
}
5585
#line 5586 "MachineIndependent/glslang_tab.cpp"
5586
break;
5587
5588
case 39: /* unary_expression: DEC_OP unary_expression */
5589
#line 588 "MachineIndependent/glslang.y"
5590
{
5591
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
5592
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
5593
}
5594
#line 5595 "MachineIndependent/glslang_tab.cpp"
5595
break;
5596
5597
case 40: /* unary_expression: unary_operator unary_expression */
5598
#line 592 "MachineIndependent/glslang.y"
5599
{
5600
if ((yyvsp[-1].interm).op != EOpNull) {
5601
char errorOp[2] = {0, 0};
5602
switch((yyvsp[-1].interm).op) {
5603
case EOpNegative: errorOp[0] = '-'; break;
5604
case EOpLogicalNot: errorOp[0] = '!'; break;
5605
case EOpBitwiseNot: errorOp[0] = '~'; break;
5606
default: break; // some compilers want this
5607
}
5608
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
5609
} else {
5610
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5611
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5612
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5613
}
5614
}
5615
#line 5616 "MachineIndependent/glslang_tab.cpp"
5616
break;
5617
5618
case 41: /* unary_operator: PLUS */
5619
#line 612 "MachineIndependent/glslang.y"
5620
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
5621
#line 5622 "MachineIndependent/glslang_tab.cpp"
5622
break;
5623
5624
case 42: /* unary_operator: DASH */
5625
#line 613 "MachineIndependent/glslang.y"
5626
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
5627
#line 5628 "MachineIndependent/glslang_tab.cpp"
5628
break;
5629
5630
case 43: /* unary_operator: BANG */
5631
#line 614 "MachineIndependent/glslang.y"
5632
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
5633
#line 5634 "MachineIndependent/glslang_tab.cpp"
5634
break;
5635
5636
case 44: /* unary_operator: TILDE */
5637
#line 615 "MachineIndependent/glslang.y"
5638
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
5639
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
5640
#line 5641 "MachineIndependent/glslang_tab.cpp"
5641
break;
5642
5643
case 45: /* multiplicative_expression: unary_expression */
5644
#line 621 "MachineIndependent/glslang.y"
5645
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5646
#line 5647 "MachineIndependent/glslang_tab.cpp"
5647
break;
5648
5649
case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
5650
#line 622 "MachineIndependent/glslang.y"
5651
{
5652
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5653
if ((yyval.interm.intermTypedNode) == 0)
5654
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5655
}
5656
#line 5657 "MachineIndependent/glslang_tab.cpp"
5657
break;
5658
5659
case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
5660
#line 627 "MachineIndependent/glslang.y"
5661
{
5662
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5663
if ((yyval.interm.intermTypedNode) == 0)
5664
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5665
}
5666
#line 5667 "MachineIndependent/glslang_tab.cpp"
5667
break;
5668
5669
case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
5670
#line 632 "MachineIndependent/glslang.y"
5671
{
5672
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
5673
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5674
if ((yyval.interm.intermTypedNode) == 0)
5675
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5676
}
5677
#line 5678 "MachineIndependent/glslang_tab.cpp"
5678
break;
5679
5680
case 49: /* additive_expression: multiplicative_expression */
5681
#line 641 "MachineIndependent/glslang.y"
5682
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5683
#line 5684 "MachineIndependent/glslang_tab.cpp"
5684
break;
5685
5686
case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
5687
#line 642 "MachineIndependent/glslang.y"
5688
{
5689
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5690
if ((yyval.interm.intermTypedNode) == 0)
5691
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5692
}
5693
#line 5694 "MachineIndependent/glslang_tab.cpp"
5694
break;
5695
5696
case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
5697
#line 647 "MachineIndependent/glslang.y"
5698
{
5699
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5700
if ((yyval.interm.intermTypedNode) == 0)
5701
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5702
}
5703
#line 5704 "MachineIndependent/glslang_tab.cpp"
5704
break;
5705
5706
case 52: /* shift_expression: additive_expression */
5707
#line 655 "MachineIndependent/glslang.y"
5708
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5709
#line 5710 "MachineIndependent/glslang_tab.cpp"
5710
break;
5711
5712
case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
5713
#line 656 "MachineIndependent/glslang.y"
5714
{
5715
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
5716
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5717
if ((yyval.interm.intermTypedNode) == 0)
5718
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5719
}
5720
#line 5721 "MachineIndependent/glslang_tab.cpp"
5721
break;
5722
5723
case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
5724
#line 662 "MachineIndependent/glslang.y"
5725
{
5726
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
5727
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5728
if ((yyval.interm.intermTypedNode) == 0)
5729
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5730
}
5731
#line 5732 "MachineIndependent/glslang_tab.cpp"
5732
break;
5733
5734
case 55: /* relational_expression: shift_expression */
5735
#line 671 "MachineIndependent/glslang.y"
5736
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5737
#line 5738 "MachineIndependent/glslang_tab.cpp"
5738
break;
5739
5740
case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
5741
#line 672 "MachineIndependent/glslang.y"
5742
{
5743
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5744
if ((yyval.interm.intermTypedNode) == 0)
5745
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5746
}
5747
#line 5748 "MachineIndependent/glslang_tab.cpp"
5748
break;
5749
5750
case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
5751
#line 677 "MachineIndependent/glslang.y"
5752
{
5753
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5754
if ((yyval.interm.intermTypedNode) == 0)
5755
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5756
}
5757
#line 5758 "MachineIndependent/glslang_tab.cpp"
5758
break;
5759
5760
case 58: /* relational_expression: relational_expression LE_OP shift_expression */
5761
#line 682 "MachineIndependent/glslang.y"
5762
{
5763
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5764
if ((yyval.interm.intermTypedNode) == 0)
5765
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5766
}
5767
#line 5768 "MachineIndependent/glslang_tab.cpp"
5768
break;
5769
5770
case 59: /* relational_expression: relational_expression GE_OP shift_expression */
5771
#line 687 "MachineIndependent/glslang.y"
5772
{
5773
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5774
if ((yyval.interm.intermTypedNode) == 0)
5775
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5776
}
5777
#line 5778 "MachineIndependent/glslang_tab.cpp"
5778
break;
5779
5780
case 60: /* equality_expression: relational_expression */
5781
#line 695 "MachineIndependent/glslang.y"
5782
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5783
#line 5784 "MachineIndependent/glslang_tab.cpp"
5784
break;
5785
5786
case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
5787
#line 696 "MachineIndependent/glslang.y"
5788
{
5789
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5790
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5791
parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5792
parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5793
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5794
if ((yyval.interm.intermTypedNode) == 0)
5795
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5796
}
5797
#line 5798 "MachineIndependent/glslang_tab.cpp"
5798
break;
5799
5800
case 62: /* equality_expression: equality_expression NE_OP relational_expression */
5801
#line 705 "MachineIndependent/glslang.y"
5802
{
5803
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5804
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5805
parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5806
parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5807
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5808
if ((yyval.interm.intermTypedNode) == 0)
5809
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5810
}
5811
#line 5812 "MachineIndependent/glslang_tab.cpp"
5812
break;
5813
5814
case 63: /* and_expression: equality_expression */
5815
#line 717 "MachineIndependent/glslang.y"
5816
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5817
#line 5818 "MachineIndependent/glslang_tab.cpp"
5818
break;
5819
5820
case 64: /* and_expression: and_expression AMPERSAND equality_expression */
5821
#line 718 "MachineIndependent/glslang.y"
5822
{
5823
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
5824
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5825
if ((yyval.interm.intermTypedNode) == 0)
5826
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5827
}
5828
#line 5829 "MachineIndependent/glslang_tab.cpp"
5829
break;
5830
5831
case 65: /* exclusive_or_expression: and_expression */
5832
#line 727 "MachineIndependent/glslang.y"
5833
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5834
#line 5835 "MachineIndependent/glslang_tab.cpp"
5835
break;
5836
5837
case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
5838
#line 728 "MachineIndependent/glslang.y"
5839
{
5840
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
5841
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5842
if ((yyval.interm.intermTypedNode) == 0)
5843
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5844
}
5845
#line 5846 "MachineIndependent/glslang_tab.cpp"
5846
break;
5847
5848
case 67: /* inclusive_or_expression: exclusive_or_expression */
5849
#line 737 "MachineIndependent/glslang.y"
5850
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5851
#line 5852 "MachineIndependent/glslang_tab.cpp"
5852
break;
5853
5854
case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
5855
#line 738 "MachineIndependent/glslang.y"
5856
{
5857
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
5858
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5859
if ((yyval.interm.intermTypedNode) == 0)
5860
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5861
}
5862
#line 5863 "MachineIndependent/glslang_tab.cpp"
5863
break;
5864
5865
case 69: /* logical_and_expression: inclusive_or_expression */
5866
#line 747 "MachineIndependent/glslang.y"
5867
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5868
#line 5869 "MachineIndependent/glslang_tab.cpp"
5869
break;
5870
5871
case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
5872
#line 748 "MachineIndependent/glslang.y"
5873
{
5874
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5875
if ((yyval.interm.intermTypedNode) == 0)
5876
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5877
}
5878
#line 5879 "MachineIndependent/glslang_tab.cpp"
5879
break;
5880
5881
case 71: /* logical_xor_expression: logical_and_expression */
5882
#line 756 "MachineIndependent/glslang.y"
5883
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5884
#line 5885 "MachineIndependent/glslang_tab.cpp"
5885
break;
5886
5887
case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
5888
#line 757 "MachineIndependent/glslang.y"
5889
{
5890
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5891
if ((yyval.interm.intermTypedNode) == 0)
5892
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5893
}
5894
#line 5895 "MachineIndependent/glslang_tab.cpp"
5895
break;
5896
5897
case 73: /* logical_or_expression: logical_xor_expression */
5898
#line 765 "MachineIndependent/glslang.y"
5899
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5900
#line 5901 "MachineIndependent/glslang_tab.cpp"
5901
break;
5902
5903
case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
5904
#line 766 "MachineIndependent/glslang.y"
5905
{
5906
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5907
if ((yyval.interm.intermTypedNode) == 0)
5908
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5909
}
5910
#line 5911 "MachineIndependent/glslang_tab.cpp"
5911
break;
5912
5913
case 75: /* conditional_expression: logical_or_expression */
5914
#line 774 "MachineIndependent/glslang.y"
5915
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5916
#line 5917 "MachineIndependent/glslang_tab.cpp"
5917
break;
5918
5919
case 76: /* $@1: %empty */
5920
#line 775 "MachineIndependent/glslang.y"
5921
{
5922
++parseContext.controlFlowNestingLevel;
5923
}
5924
#line 5925 "MachineIndependent/glslang_tab.cpp"
5925
break;
5926
5927
case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
5928
#line 778 "MachineIndependent/glslang.y"
5929
{
5930
--parseContext.controlFlowNestingLevel;
5931
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
5932
parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
5933
parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
5934
parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
5935
(yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
5936
if ((yyval.interm.intermTypedNode) == 0) {
5937
parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
5938
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5939
}
5940
}
5941
#line 5942 "MachineIndependent/glslang_tab.cpp"
5942
break;
5943
5944
case 78: /* assignment_expression: conditional_expression */
5945
#line 793 "MachineIndependent/glslang.y"
5946
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5947
#line 5948 "MachineIndependent/glslang_tab.cpp"
5948
break;
5949
5950
case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
5951
#line 794 "MachineIndependent/glslang.y"
5952
{
5953
parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
5954
parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5955
parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5956
parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5957
parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
5958
parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
5959
(yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5960
if ((yyval.interm.intermTypedNode) == 0) {
5961
parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
5962
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5963
}
5964
}
5965
#line 5966 "MachineIndependent/glslang_tab.cpp"
5966
break;
5967
5968
case 80: /* assignment_operator: EQUAL */
5969
#line 810 "MachineIndependent/glslang.y"
5970
{
5971
(yyval.interm).loc = (yyvsp[0].lex).loc;
5972
(yyval.interm).op = EOpAssign;
5973
}
5974
#line 5975 "MachineIndependent/glslang_tab.cpp"
5975
break;
5976
5977
case 81: /* assignment_operator: MUL_ASSIGN */
5978
#line 814 "MachineIndependent/glslang.y"
5979
{
5980
(yyval.interm).loc = (yyvsp[0].lex).loc;
5981
(yyval.interm).op = EOpMulAssign;
5982
}
5983
#line 5984 "MachineIndependent/glslang_tab.cpp"
5984
break;
5985
5986
case 82: /* assignment_operator: DIV_ASSIGN */
5987
#line 818 "MachineIndependent/glslang.y"
5988
{
5989
(yyval.interm).loc = (yyvsp[0].lex).loc;
5990
(yyval.interm).op = EOpDivAssign;
5991
}
5992
#line 5993 "MachineIndependent/glslang_tab.cpp"
5993
break;
5994
5995
case 83: /* assignment_operator: MOD_ASSIGN */
5996
#line 822 "MachineIndependent/glslang.y"
5997
{
5998
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
5999
(yyval.interm).loc = (yyvsp[0].lex).loc;
6000
(yyval.interm).op = EOpModAssign;
6001
}
6002
#line 6003 "MachineIndependent/glslang_tab.cpp"
6003
break;
6004
6005
case 84: /* assignment_operator: ADD_ASSIGN */
6006
#line 827 "MachineIndependent/glslang.y"
6007
{
6008
(yyval.interm).loc = (yyvsp[0].lex).loc;
6009
(yyval.interm).op = EOpAddAssign;
6010
}
6011
#line 6012 "MachineIndependent/glslang_tab.cpp"
6012
break;
6013
6014
case 85: /* assignment_operator: SUB_ASSIGN */
6015
#line 831 "MachineIndependent/glslang.y"
6016
{
6017
(yyval.interm).loc = (yyvsp[0].lex).loc;
6018
(yyval.interm).op = EOpSubAssign;
6019
}
6020
#line 6021 "MachineIndependent/glslang_tab.cpp"
6021
break;
6022
6023
case 86: /* assignment_operator: LEFT_ASSIGN */
6024
#line 835 "MachineIndependent/glslang.y"
6025
{
6026
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
6027
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
6028
}
6029
#line 6030 "MachineIndependent/glslang_tab.cpp"
6030
break;
6031
6032
case 87: /* assignment_operator: RIGHT_ASSIGN */
6033
#line 839 "MachineIndependent/glslang.y"
6034
{
6035
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
6036
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
6037
}
6038
#line 6039 "MachineIndependent/glslang_tab.cpp"
6039
break;
6040
6041
case 88: /* assignment_operator: AND_ASSIGN */
6042
#line 843 "MachineIndependent/glslang.y"
6043
{
6044
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
6045
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
6046
}
6047
#line 6048 "MachineIndependent/glslang_tab.cpp"
6048
break;
6049
6050
case 89: /* assignment_operator: XOR_ASSIGN */
6051
#line 847 "MachineIndependent/glslang.y"
6052
{
6053
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
6054
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
6055
}
6056
#line 6057 "MachineIndependent/glslang_tab.cpp"
6057
break;
6058
6059
case 90: /* assignment_operator: OR_ASSIGN */
6060
#line 851 "MachineIndependent/glslang.y"
6061
{
6062
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
6063
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
6064
}
6065
#line 6066 "MachineIndependent/glslang_tab.cpp"
6066
break;
6067
6068
case 91: /* expression: assignment_expression */
6069
#line 858 "MachineIndependent/glslang.y"
6070
{
6071
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6072
}
6073
#line 6074 "MachineIndependent/glslang_tab.cpp"
6074
break;
6075
6076
case 92: /* expression: expression COMMA assignment_expression */
6077
#line 861 "MachineIndependent/glslang.y"
6078
{
6079
parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
6080
(yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6081
if ((yyval.interm.intermTypedNode) == 0) {
6082
parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
6083
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6084
}
6085
}
6086
#line 6087 "MachineIndependent/glslang_tab.cpp"
6087
break;
6088
6089
case 93: /* constant_expression: conditional_expression */
6090
#line 872 "MachineIndependent/glslang.y"
6091
{
6092
parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
6093
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6094
}
6095
#line 6096 "MachineIndependent/glslang_tab.cpp"
6096
break;
6097
6098
case 94: /* declaration: function_prototype SEMICOLON */
6099
#line 879 "MachineIndependent/glslang.y"
6100
{
6101
parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6102
(yyval.interm.intermNode) = 0;
6103
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6104
}
6105
#line 6106 "MachineIndependent/glslang_tab.cpp"
6106
break;
6107
6108
case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON */
6109
#line 884 "MachineIndependent/glslang.y"
6110
{
6111
parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
6112
(yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
6113
parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6114
(yyval.interm.intermNode) = 0;
6115
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6116
}
6117
#line 6118 "MachineIndependent/glslang_tab.cpp"
6118
break;
6119
6120
case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON */
6121
#line 891 "MachineIndependent/glslang.y"
6122
{
6123
parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
6124
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
6125
(yyval.interm.intermNode) = 0;
6126
}
6127
#line 6128 "MachineIndependent/glslang_tab.cpp"
6128
break;
6129
6130
case 97: /* declaration: init_declarator_list SEMICOLON */
6131
#line 896 "MachineIndependent/glslang.y"
6132
{
6133
if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
6134
(yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
6135
(yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
6136
}
6137
#line 6138 "MachineIndependent/glslang_tab.cpp"
6138
break;
6139
6140
case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
6141
#line 901 "MachineIndependent/glslang.y"
6142
{
6143
parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
6144
// lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
6145
parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
6146
parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
6147
(yyval.interm.intermNode) = 0;
6148
}
6149
#line 6150 "MachineIndependent/glslang_tab.cpp"
6150
break;
6151
6152
case 99: /* declaration: block_structure SEMICOLON */
6153
#line 908 "MachineIndependent/glslang.y"
6154
{
6155
parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
6156
(yyval.interm.intermNode) = 0;
6157
}
6158
#line 6159 "MachineIndependent/glslang_tab.cpp"
6159
break;
6160
6161
case 100: /* declaration: block_structure IDENTIFIER SEMICOLON */
6162
#line 912 "MachineIndependent/glslang.y"
6163
{
6164
parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
6165
(yyval.interm.intermNode) = 0;
6166
}
6167
#line 6168 "MachineIndependent/glslang_tab.cpp"
6168
break;
6169
6170
case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
6171
#line 916 "MachineIndependent/glslang.y"
6172
{
6173
parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
6174
(yyval.interm.intermNode) = 0;
6175
}
6176
#line 6177 "MachineIndependent/glslang_tab.cpp"
6177
break;
6178
6179
case 102: /* declaration: type_qualifier SEMICOLON */
6180
#line 920 "MachineIndependent/glslang.y"
6181
{
6182
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6183
parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
6184
(yyval.interm.intermNode) = 0;
6185
}
6186
#line 6187 "MachineIndependent/glslang_tab.cpp"
6187
break;
6188
6189
case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
6190
#line 925 "MachineIndependent/glslang.y"
6191
{
6192
parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
6193
parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
6194
(yyval.interm.intermNode) = 0;
6195
}
6196
#line 6197 "MachineIndependent/glslang_tab.cpp"
6197
break;
6198
6199
case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
6200
#line 930 "MachineIndependent/glslang.y"
6201
{
6202
parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
6203
(yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
6204
parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
6205
(yyval.interm.intermNode) = 0;
6206
}
6207
#line 6208 "MachineIndependent/glslang_tab.cpp"
6208
break;
6209
6210
case 105: /* $@2: %empty */
6211
#line 939 "MachineIndependent/glslang.y"
6212
{ parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
6213
#line 6214 "MachineIndependent/glslang_tab.cpp"
6214
break;
6215
6216
case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
6217
#line 939 "MachineIndependent/glslang.y"
6218
{
6219
--parseContext.blockNestingLevel;
6220
parseContext.blockName = (yyvsp[-4].lex).string;
6221
parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
6222
parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
6223
parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
6224
(yyval.interm).loc = (yyvsp[-5].interm.type).loc;
6225
(yyval.interm).typeList = (yyvsp[-1].interm.typeList);
6226
}
6227
#line 6228 "MachineIndependent/glslang_tab.cpp"
6228
break;
6229
6230
case 107: /* identifier_list: COMMA IDENTIFIER */
6231
#line 950 "MachineIndependent/glslang.y"
6232
{
6233
(yyval.interm.identifierList) = new TIdentifierList;
6234
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6235
}
6236
#line 6237 "MachineIndependent/glslang_tab.cpp"
6237
break;
6238
6239
case 108: /* identifier_list: identifier_list COMMA IDENTIFIER */
6240
#line 954 "MachineIndependent/glslang.y"
6241
{
6242
(yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
6243
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6244
}
6245
#line 6246 "MachineIndependent/glslang_tab.cpp"
6246
break;
6247
6248
case 109: /* function_prototype: function_declarator RIGHT_PAREN */
6249
#line 961 "MachineIndependent/glslang.y"
6250
{
6251
(yyval.interm).function = (yyvsp[-1].interm.function);
6252
if (parseContext.compileOnly) (yyval.interm).function->setExport();
6253
(yyval.interm).loc = (yyvsp[0].lex).loc;
6254
}
6255
#line 6256 "MachineIndependent/glslang_tab.cpp"
6256
break;
6257
6258
case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute */
6259
#line 966 "MachineIndependent/glslang.y"
6260
{
6261
(yyval.interm).function = (yyvsp[-2].interm.function);
6262
if (parseContext.compileOnly) (yyval.interm).function->setExport();
6263
(yyval.interm).loc = (yyvsp[-1].lex).loc;
6264
const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
6265
parseContext.requireExtensions((yyvsp[-1].lex).loc, 2, extensions, "attribute");
6266
parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6267
}
6268
#line 6269 "MachineIndependent/glslang_tab.cpp"
6269
break;
6270
6271
case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN */
6272
#line 974 "MachineIndependent/glslang.y"
6273
{
6274
(yyval.interm).function = (yyvsp[-1].interm.function);
6275
if (parseContext.compileOnly) (yyval.interm).function->setExport();
6276
(yyval.interm).loc = (yyvsp[0].lex).loc;
6277
const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
6278
parseContext.requireExtensions((yyvsp[0].lex).loc, 2, extensions, "attribute");
6279
parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes));
6280
}
6281
#line 6282 "MachineIndependent/glslang_tab.cpp"
6282
break;
6283
6284
case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute */
6285
#line 982 "MachineIndependent/glslang.y"
6286
{
6287
(yyval.interm).function = (yyvsp[-2].interm.function);
6288
if (parseContext.compileOnly) (yyval.interm).function->setExport();
6289
(yyval.interm).loc = (yyvsp[-1].lex).loc;
6290
const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
6291
parseContext.requireExtensions((yyvsp[-1].lex).loc, 2, extensions, "attribute");
6292
parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes));
6293
parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6294
}
6295
#line 6296 "MachineIndependent/glslang_tab.cpp"
6296
break;
6297
6298
case 113: /* function_declarator: function_header */
6299
#line 994 "MachineIndependent/glslang.y"
6300
{
6301
(yyval.interm.function) = (yyvsp[0].interm.function);
6302
}
6303
#line 6304 "MachineIndependent/glslang_tab.cpp"
6304
break;
6305
6306
case 114: /* function_declarator: function_header_with_parameters */
6307
#line 997 "MachineIndependent/glslang.y"
6308
{
6309
(yyval.interm.function) = (yyvsp[0].interm.function);
6310
}
6311
#line 6312 "MachineIndependent/glslang_tab.cpp"
6312
break;
6313
6314
case 115: /* function_header_with_parameters: function_header parameter_declaration */
6315
#line 1004 "MachineIndependent/glslang.y"
6316
{
6317
// Add the parameter
6318
(yyval.interm.function) = (yyvsp[-1].interm.function);
6319
if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
6320
{
6321
if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
6322
(yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
6323
else
6324
parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-1].interm.function), (yyvsp[0].interm).param);
6325
}
6326
else
6327
delete (yyvsp[0].interm).param.type;
6328
}
6329
#line 6330 "MachineIndependent/glslang_tab.cpp"
6330
break;
6331
6332
case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
6333
#line 1017 "MachineIndependent/glslang.y"
6334
{
6335
//
6336
// Only first parameter of one-parameter functions can be void
6337
// The check for named parameters not being void is done in parameter_declarator
6338
//
6339
if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
6340
//
6341
// This parameter > first is void
6342
//
6343
parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
6344
delete (yyvsp[0].interm).param.type;
6345
} else {
6346
// Add the parameter
6347
(yyval.interm.function) = (yyvsp[-2].interm.function);
6348
if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
6349
(yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
6350
else
6351
parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-2].interm.function), (yyvsp[0].interm).param);
6352
}
6353
}
6354
#line 6355 "MachineIndependent/glslang_tab.cpp"
6355
break;
6356
6357
case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
6358
#line 1040 "MachineIndependent/glslang.y"
6359
{
6360
if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
6361
parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
6362
GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
6363
}
6364
if ((yyvsp[-2].interm.type).arraySizes)
6365
parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6366
6367
// Add the function as a prototype after parsing it (we do not support recursion)
6368
TFunction *function;
6369
TType type((yyvsp[-2].interm.type));
6370
6371
// Potentially rename shader entry point function. No-op most of the time.
6372
parseContext.renameShaderFunction((yyvsp[-1].lex).string);
6373
6374
// Make the function
6375
function = new TFunction((yyvsp[-1].lex).string, type);
6376
(yyval.interm.function) = function;
6377
}
6378
#line 6379 "MachineIndependent/glslang_tab.cpp"
6379
break;
6380
6381
case 118: /* parameter_declarator: type_specifier IDENTIFIER */
6382
#line 1063 "MachineIndependent/glslang.y"
6383
{
6384
if ((yyvsp[-1].interm.type).arraySizes) {
6385
parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6386
parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6387
parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
6388
}
6389
if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
6390
parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
6391
}
6392
parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
6393
6394
TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type)), {}};
6395
(yyval.interm).loc = (yyvsp[0].lex).loc;
6396
(yyval.interm).param = param;
6397
}
6398
#line 6399 "MachineIndependent/glslang_tab.cpp"
6399
break;
6400
6401
case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
6402
#line 1078 "MachineIndependent/glslang.y"
6403
{
6404
if ((yyvsp[-2].interm.type).arraySizes) {
6405
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6406
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6407
parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6408
}
6409
TType* type = new TType((yyvsp[-2].interm.type));
6410
type->transferArraySizes((yyvsp[0].interm).arraySizes);
6411
type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
6412
6413
parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
6414
parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
6415
parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
6416
6417
TParameter param = { (yyvsp[-1].lex).string, type, {} };
6418
6419
(yyval.interm).loc = (yyvsp[-1].lex).loc;
6420
(yyval.interm).param = param;
6421
}
6422
#line 6423 "MachineIndependent/glslang_tab.cpp"
6423
break;
6424
6425
case 120: /* parameter_declaration: type_qualifier parameter_declarator */
6426
#line 1103 "MachineIndependent/glslang.y"
6427
{
6428
(yyval.interm) = (yyvsp[0].interm);
6429
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6430
(yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6431
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
6432
6433
parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6434
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6435
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6436
6437
}
6438
#line 6439 "MachineIndependent/glslang_tab.cpp"
6439
break;
6440
6441
case 121: /* parameter_declaration: parameter_declarator */
6442
#line 1114 "MachineIndependent/glslang.y"
6443
{
6444
(yyval.interm) = (yyvsp[0].interm);
6445
6446
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6447
parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6448
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
6449
}
6450
#line 6451 "MachineIndependent/glslang_tab.cpp"
6451
break;
6452
6453
case 122: /* parameter_declaration: type_qualifier parameter_type_specifier */
6454
#line 1124 "MachineIndependent/glslang.y"
6455
{
6456
(yyval.interm) = (yyvsp[0].interm);
6457
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6458
(yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6459
parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
6460
6461
parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6462
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6463
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6464
}
6465
#line 6466 "MachineIndependent/glslang_tab.cpp"
6466
break;
6467
6468
case 123: /* parameter_declaration: parameter_type_specifier */
6469
#line 1134 "MachineIndependent/glslang.y"
6470
{
6471
(yyval.interm) = (yyvsp[0].interm);
6472
6473
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6474
parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6475
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
6476
}
6477
#line 6478 "MachineIndependent/glslang_tab.cpp"
6478
break;
6479
6480
case 124: /* parameter_type_specifier: type_specifier */
6481
#line 1144 "MachineIndependent/glslang.y"
6482
{
6483
TParameter param = { 0, new TType((yyvsp[0].interm.type)), {} };
6484
(yyval.interm).param = param;
6485
if ((yyvsp[0].interm.type).arraySizes)
6486
parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
6487
}
6488
#line 6489 "MachineIndependent/glslang_tab.cpp"
6489
break;
6490
6491
case 125: /* init_declarator_list: single_declaration */
6492
#line 1153 "MachineIndependent/glslang.y"
6493
{
6494
(yyval.interm) = (yyvsp[0].interm);
6495
}
6496
#line 6497 "MachineIndependent/glslang_tab.cpp"
6497
break;
6498
6499
case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
6500
#line 1156 "MachineIndependent/glslang.y"
6501
{
6502
(yyval.interm) = (yyvsp[-2].interm);
6503
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
6504
}
6505
#line 6506 "MachineIndependent/glslang_tab.cpp"
6506
break;
6507
6508
case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
6509
#line 1160 "MachineIndependent/glslang.y"
6510
{
6511
(yyval.interm) = (yyvsp[-3].interm);
6512
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
6513
}
6514
#line 6515 "MachineIndependent/glslang_tab.cpp"
6515
break;
6516
6517
case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
6518
#line 1164 "MachineIndependent/glslang.y"
6519
{
6520
(yyval.interm).type = (yyvsp[-5].interm).type;
6521
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6522
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6523
}
6524
#line 6525 "MachineIndependent/glslang_tab.cpp"
6525
break;
6526
6527
case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
6528
#line 1169 "MachineIndependent/glslang.y"
6529
{
6530
(yyval.interm).type = (yyvsp[-4].interm).type;
6531
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
6532
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6533
}
6534
#line 6535 "MachineIndependent/glslang_tab.cpp"
6535
break;
6536
6537
case 130: /* single_declaration: fully_specified_type */
6538
#line 1177 "MachineIndependent/glslang.y"
6539
{
6540
(yyval.interm).type = (yyvsp[0].interm.type);
6541
(yyval.interm).intermNode = 0;
6542
parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
6543
}
6544
#line 6545 "MachineIndependent/glslang_tab.cpp"
6545
break;
6546
6547
case 131: /* single_declaration: fully_specified_type IDENTIFIER */
6548
#line 1182 "MachineIndependent/glslang.y"
6549
{
6550
(yyval.interm).type = (yyvsp[-1].interm.type);
6551
(yyval.interm).intermNode = 0;
6552
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
6553
}
6554
#line 6555 "MachineIndependent/glslang_tab.cpp"
6555
break;
6556
6557
case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
6558
#line 1187 "MachineIndependent/glslang.y"
6559
{
6560
(yyval.interm).type = (yyvsp[-2].interm.type);
6561
(yyval.interm).intermNode = 0;
6562
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
6563
}
6564
#line 6565 "MachineIndependent/glslang_tab.cpp"
6565
break;
6566
6567
case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
6568
#line 1192 "MachineIndependent/glslang.y"
6569
{
6570
(yyval.interm).type = (yyvsp[-4].interm.type);
6571
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6572
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6573
}
6574
#line 6575 "MachineIndependent/glslang_tab.cpp"
6575
break;
6576
6577
case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
6578
#line 1197 "MachineIndependent/glslang.y"
6579
{
6580
(yyval.interm).type = (yyvsp[-3].interm.type);
6581
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
6582
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6583
}
6584
#line 6585 "MachineIndependent/glslang_tab.cpp"
6585
break;
6586
6587
case 135: /* fully_specified_type: type_specifier */
6588
#line 1206 "MachineIndependent/glslang.y"
6589
{
6590
(yyval.interm.type) = (yyvsp[0].interm.type);
6591
6592
parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
6593
if ((yyvsp[0].interm.type).arraySizes) {
6594
parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6595
parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6596
}
6597
parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier, (yyval.interm.type).isCoopmat());
6598
}
6599
#line 6600 "MachineIndependent/glslang_tab.cpp"
6600
break;
6601
6602
case 136: /* fully_specified_type: type_qualifier type_specifier */
6603
#line 1216 "MachineIndependent/glslang.y"
6604
{
6605
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, false, &(yyvsp[0].interm.type));
6606
parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
6607
6608
if ((yyvsp[0].interm.type).arraySizes) {
6609
parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6610
parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6611
}
6612
6613
if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
6614
(yyvsp[0].interm.type).arraySizes = nullptr;
6615
6616
parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6617
(yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
6618
parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
6619
parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier, (yyvsp[0].interm.type).isCoopmat());
6620
6621
(yyval.interm.type) = (yyvsp[0].interm.type);
6622
6623
if (! (yyval.interm.type).qualifier.isInterpolation() &&
6624
((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
6625
(parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
6626
(yyval.interm.type).qualifier.smooth = true;
6627
}
6628
#line 6629 "MachineIndependent/glslang_tab.cpp"
6629
break;
6630
6631
case 137: /* invariant_qualifier: INVARIANT */
6632
#line 1243 "MachineIndependent/glslang.y"
6633
{
6634
parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
6635
parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
6636
(yyval.interm.type).init((yyvsp[0].lex).loc);
6637
(yyval.interm.type).qualifier.invariant = true;
6638
}
6639
#line 6640 "MachineIndependent/glslang_tab.cpp"
6640
break;
6641
6642
case 138: /* interpolation_qualifier: SMOOTH */
6643
#line 1252 "MachineIndependent/glslang.y"
6644
{
6645
parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
6646
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
6647
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
6648
(yyval.interm.type).init((yyvsp[0].lex).loc);
6649
(yyval.interm.type).qualifier.smooth = true;
6650
}
6651
#line 6652 "MachineIndependent/glslang_tab.cpp"
6652
break;
6653
6654
case 139: /* interpolation_qualifier: FLAT */
6655
#line 1259 "MachineIndependent/glslang.y"
6656
{
6657
parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
6658
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
6659
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
6660
(yyval.interm.type).init((yyvsp[0].lex).loc);
6661
(yyval.interm.type).qualifier.flat = true;
6662
}
6663
#line 6664 "MachineIndependent/glslang_tab.cpp"
6664
break;
6665
6666
case 140: /* interpolation_qualifier: NOPERSPECTIVE */
6667
#line 1266 "MachineIndependent/glslang.y"
6668
{
6669
parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
6670
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
6671
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
6672
(yyval.interm.type).init((yyvsp[0].lex).loc);
6673
(yyval.interm.type).qualifier.nopersp = true;
6674
}
6675
#line 6676 "MachineIndependent/glslang_tab.cpp"
6676
break;
6677
6678
case 141: /* interpolation_qualifier: EXPLICITINTERPAMD */
6679
#line 1273 "MachineIndependent/glslang.y"
6680
{
6681
parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
6682
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6683
parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6684
(yyval.interm.type).init((yyvsp[0].lex).loc);
6685
(yyval.interm.type).qualifier.explicitInterp = true;
6686
}
6687
#line 6688 "MachineIndependent/glslang_tab.cpp"
6688
break;
6689
6690
case 142: /* interpolation_qualifier: PERVERTEXNV */
6691
#line 1280 "MachineIndependent/glslang.y"
6692
{
6693
parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
6694
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6695
parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6696
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6697
(yyval.interm.type).init((yyvsp[0].lex).loc);
6698
(yyval.interm.type).qualifier.pervertexNV = true;
6699
}
6700
#line 6701 "MachineIndependent/glslang_tab.cpp"
6701
break;
6702
6703
case 143: /* interpolation_qualifier: PERVERTEXEXT */
6704
#line 1288 "MachineIndependent/glslang.y"
6705
{
6706
parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexEXT");
6707
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
6708
parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
6709
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
6710
(yyval.interm.type).init((yyvsp[0].lex).loc);
6711
(yyval.interm.type).qualifier.pervertexEXT = true;
6712
}
6713
#line 6714 "MachineIndependent/glslang_tab.cpp"
6714
break;
6715
6716
case 144: /* interpolation_qualifier: PERPRIMITIVENV */
6717
#line 1296 "MachineIndependent/glslang.y"
6718
{
6719
// No need for profile version or extension check. Shader stage already checks both.
6720
parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
6721
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveNV");
6722
// Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6723
if (parseContext.language == EShLangFragment)
6724
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
6725
(yyval.interm.type).init((yyvsp[0].lex).loc);
6726
(yyval.interm.type).qualifier.perPrimitiveNV = true;
6727
}
6728
#line 6729 "MachineIndependent/glslang_tab.cpp"
6729
break;
6730
6731
case 145: /* interpolation_qualifier: PERPRIMITIVEEXT */
6732
#line 1306 "MachineIndependent/glslang.y"
6733
{
6734
// No need for profile version or extension check. Shader stage already checks both.
6735
parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveEXT");
6736
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveEXT");
6737
// Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6738
if (parseContext.language == EShLangFragment)
6739
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_mesh_shader, "perprimitiveEXT");
6740
(yyval.interm.type).init((yyvsp[0].lex).loc);
6741
(yyval.interm.type).qualifier.perPrimitiveNV = true;
6742
}
6743
#line 6744 "MachineIndependent/glslang_tab.cpp"
6744
break;
6745
6746
case 146: /* interpolation_qualifier: PERVIEWNV */
6747
#line 1316 "MachineIndependent/glslang.y"
6748
{
6749
// No need for profile version or extension check. Shader stage already checks both.
6750
parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
6751
parseContext.requireStage((yyvsp[0].lex).loc, EShLangMesh, "perviewNV");
6752
(yyval.interm.type).init((yyvsp[0].lex).loc);
6753
(yyval.interm.type).qualifier.perViewNV = true;
6754
}
6755
#line 6756 "MachineIndependent/glslang_tab.cpp"
6756
break;
6757
6758
case 147: /* interpolation_qualifier: PERTASKNV */
6759
#line 1323 "MachineIndependent/glslang.y"
6760
{
6761
// No need for profile version or extension check. Shader stage already checks both.
6762
parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
6763
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskNV");
6764
(yyval.interm.type).init((yyvsp[0].lex).loc);
6765
(yyval.interm.type).qualifier.perTaskNV = true;
6766
}
6767
#line 6768 "MachineIndependent/glslang_tab.cpp"
6768
break;
6769
6770
case 148: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
6771
#line 1333 "MachineIndependent/glslang.y"
6772
{
6773
(yyval.interm.type) = (yyvsp[-1].interm.type);
6774
}
6775
#line 6776 "MachineIndependent/glslang_tab.cpp"
6776
break;
6777
6778
case 149: /* layout_qualifier_id_list: layout_qualifier_id */
6779
#line 1339 "MachineIndependent/glslang.y"
6780
{
6781
(yyval.interm.type) = (yyvsp[0].interm.type);
6782
}
6783
#line 6784 "MachineIndependent/glslang_tab.cpp"
6784
break;
6785
6786
case 150: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
6787
#line 1342 "MachineIndependent/glslang.y"
6788
{
6789
(yyval.interm.type) = (yyvsp[-2].interm.type);
6790
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6791
parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6792
}
6793
#line 6794 "MachineIndependent/glslang_tab.cpp"
6794
break;
6795
6796
case 151: /* layout_qualifier_id: IDENTIFIER */
6797
#line 1349 "MachineIndependent/glslang.y"
6798
{
6799
(yyval.interm.type).init((yyvsp[0].lex).loc);
6800
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
6801
}
6802
#line 6803 "MachineIndependent/glslang_tab.cpp"
6803
break;
6804
6805
case 152: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
6806
#line 1353 "MachineIndependent/glslang.y"
6807
{
6808
(yyval.interm.type).init((yyvsp[-2].lex).loc);
6809
parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
6810
}
6811
#line 6812 "MachineIndependent/glslang_tab.cpp"
6812
break;
6813
6814
case 153: /* layout_qualifier_id: SHARED */
6815
#line 1357 "MachineIndependent/glslang.y"
6816
{ // because "shared" is both an identifier and a keyword
6817
(yyval.interm.type).init((yyvsp[0].lex).loc);
6818
TString strShared("shared");
6819
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
6820
}
6821
#line 6822 "MachineIndependent/glslang_tab.cpp"
6822
break;
6823
6824
case 154: /* precise_qualifier: PRECISE */
6825
#line 1365 "MachineIndependent/glslang.y"
6826
{
6827
parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
6828
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
6829
(yyval.interm.type).init((yyvsp[0].lex).loc);
6830
(yyval.interm.type).qualifier.noContraction = true;
6831
}
6832
#line 6833 "MachineIndependent/glslang_tab.cpp"
6833
break;
6834
6835
case 155: /* type_qualifier: single_type_qualifier */
6836
#line 1374 "MachineIndependent/glslang.y"
6837
{
6838
(yyval.interm.type) = (yyvsp[0].interm.type);
6839
}
6840
#line 6841 "MachineIndependent/glslang_tab.cpp"
6841
break;
6842
6843
case 156: /* type_qualifier: type_qualifier single_type_qualifier */
6844
#line 1377 "MachineIndependent/glslang.y"
6845
{
6846
(yyval.interm.type) = (yyvsp[-1].interm.type);
6847
if ((yyval.interm.type).basicType == EbtVoid)
6848
(yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
6849
6850
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6851
parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6852
}
6853
#line 6854 "MachineIndependent/glslang_tab.cpp"
6854
break;
6855
6856
case 157: /* single_type_qualifier: storage_qualifier */
6857
#line 1388 "MachineIndependent/glslang.y"
6858
{
6859
(yyval.interm.type) = (yyvsp[0].interm.type);
6860
}
6861
#line 6862 "MachineIndependent/glslang_tab.cpp"
6862
break;
6863
6864
case 158: /* single_type_qualifier: layout_qualifier */
6865
#line 1391 "MachineIndependent/glslang.y"
6866
{
6867
(yyval.interm.type) = (yyvsp[0].interm.type);
6868
}
6869
#line 6870 "MachineIndependent/glslang_tab.cpp"
6870
break;
6871
6872
case 159: /* single_type_qualifier: precision_qualifier */
6873
#line 1394 "MachineIndependent/glslang.y"
6874
{
6875
parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
6876
(yyval.interm.type) = (yyvsp[0].interm.type);
6877
}
6878
#line 6879 "MachineIndependent/glslang_tab.cpp"
6879
break;
6880
6881
case 160: /* single_type_qualifier: interpolation_qualifier */
6882
#line 1398 "MachineIndependent/glslang.y"
6883
{
6884
// allow inheritance of storage qualifier from block declaration
6885
(yyval.interm.type) = (yyvsp[0].interm.type);
6886
}
6887
#line 6888 "MachineIndependent/glslang_tab.cpp"
6888
break;
6889
6890
case 161: /* single_type_qualifier: invariant_qualifier */
6891
#line 1402 "MachineIndependent/glslang.y"
6892
{
6893
// allow inheritance of storage qualifier from block declaration
6894
(yyval.interm.type) = (yyvsp[0].interm.type);
6895
}
6896
#line 6897 "MachineIndependent/glslang_tab.cpp"
6897
break;
6898
6899
case 162: /* single_type_qualifier: precise_qualifier */
6900
#line 1406 "MachineIndependent/glslang.y"
6901
{
6902
// allow inheritance of storage qualifier from block declaration
6903
(yyval.interm.type) = (yyvsp[0].interm.type);
6904
}
6905
#line 6906 "MachineIndependent/glslang_tab.cpp"
6906
break;
6907
6908
case 163: /* single_type_qualifier: non_uniform_qualifier */
6909
#line 1410 "MachineIndependent/glslang.y"
6910
{
6911
(yyval.interm.type) = (yyvsp[0].interm.type);
6912
}
6913
#line 6914 "MachineIndependent/glslang_tab.cpp"
6914
break;
6915
6916
case 164: /* single_type_qualifier: spirv_storage_class_qualifier */
6917
#line 1413 "MachineIndependent/glslang.y"
6918
{
6919
parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
6920
parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
6921
(yyval.interm.type) = (yyvsp[0].interm.type);
6922
}
6923
#line 6924 "MachineIndependent/glslang_tab.cpp"
6924
break;
6925
6926
case 165: /* single_type_qualifier: spirv_decorate_qualifier */
6927
#line 1418 "MachineIndependent/glslang.y"
6928
{
6929
parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
6930
(yyval.interm.type) = (yyvsp[0].interm.type);
6931
}
6932
#line 6933 "MachineIndependent/glslang_tab.cpp"
6933
break;
6934
6935
case 166: /* single_type_qualifier: SPIRV_BY_REFERENCE */
6936
#line 1422 "MachineIndependent/glslang.y"
6937
{
6938
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
6939
(yyval.interm.type).init((yyvsp[0].lex).loc);
6940
(yyval.interm.type).qualifier.setSpirvByReference();
6941
}
6942
#line 6943 "MachineIndependent/glslang_tab.cpp"
6943
break;
6944
6945
case 167: /* single_type_qualifier: SPIRV_LITERAL */
6946
#line 1427 "MachineIndependent/glslang.y"
6947
{
6948
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
6949
(yyval.interm.type).init((yyvsp[0].lex).loc);
6950
(yyval.interm.type).qualifier.setSpirvLiteral();
6951
}
6952
#line 6953 "MachineIndependent/glslang_tab.cpp"
6953
break;
6954
6955
case 168: /* storage_qualifier: CONST */
6956
#line 1435 "MachineIndependent/glslang.y"
6957
{
6958
(yyval.interm.type).init((yyvsp[0].lex).loc);
6959
(yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
6960
}
6961
#line 6962 "MachineIndependent/glslang_tab.cpp"
6962
break;
6963
6964
case 169: /* storage_qualifier: INOUT */
6965
#line 1439 "MachineIndependent/glslang.y"
6966
{
6967
parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
6968
(yyval.interm.type).init((yyvsp[0].lex).loc);
6969
(yyval.interm.type).qualifier.storage = EvqInOut;
6970
}
6971
#line 6972 "MachineIndependent/glslang_tab.cpp"
6972
break;
6973
6974
case 170: /* storage_qualifier: IN */
6975
#line 1444 "MachineIndependent/glslang.y"
6976
{
6977
parseContext.globalCheck((yyvsp[0].lex).loc, "in");
6978
(yyval.interm.type).init((yyvsp[0].lex).loc);
6979
// whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
6980
(yyval.interm.type).qualifier.storage = EvqIn;
6981
}
6982
#line 6983 "MachineIndependent/glslang_tab.cpp"
6983
break;
6984
6985
case 171: /* storage_qualifier: OUT */
6986
#line 1450 "MachineIndependent/glslang.y"
6987
{
6988
parseContext.globalCheck((yyvsp[0].lex).loc, "out");
6989
(yyval.interm.type).init((yyvsp[0].lex).loc);
6990
// whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
6991
(yyval.interm.type).qualifier.storage = EvqOut;
6992
}
6993
#line 6994 "MachineIndependent/glslang_tab.cpp"
6994
break;
6995
6996
case 172: /* storage_qualifier: CENTROID */
6997
#line 1456 "MachineIndependent/glslang.y"
6998
{
6999
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
7000
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
7001
parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
7002
(yyval.interm.type).init((yyvsp[0].lex).loc);
7003
(yyval.interm.type).qualifier.centroid = true;
7004
}
7005
#line 7006 "MachineIndependent/glslang_tab.cpp"
7006
break;
7007
7008
case 173: /* storage_qualifier: UNIFORM */
7009
#line 1463 "MachineIndependent/glslang.y"
7010
{
7011
parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
7012
(yyval.interm.type).init((yyvsp[0].lex).loc);
7013
(yyval.interm.type).qualifier.storage = EvqUniform;
7014
}
7015
#line 7016 "MachineIndependent/glslang_tab.cpp"
7016
break;
7017
7018
case 174: /* storage_qualifier: TILEIMAGEEXT */
7019
#line 1468 "MachineIndependent/glslang.y"
7020
{
7021
parseContext.globalCheck((yyvsp[0].lex).loc, "tileImageEXT");
7022
(yyval.interm.type).init((yyvsp[0].lex).loc);
7023
(yyval.interm.type).qualifier.storage = EvqTileImageEXT;
7024
}
7025
#line 7026 "MachineIndependent/glslang_tab.cpp"
7026
break;
7027
7028
case 175: /* storage_qualifier: SHARED */
7029
#line 1473 "MachineIndependent/glslang.y"
7030
{
7031
parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
7032
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
7033
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
7034
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshMask | EShLangTaskMask), "shared");
7035
(yyval.interm.type).init((yyvsp[0].lex).loc);
7036
(yyval.interm.type).qualifier.storage = EvqShared;
7037
}
7038
#line 7039 "MachineIndependent/glslang_tab.cpp"
7039
break;
7040
7041
case 176: /* storage_qualifier: BUFFER */
7042
#line 1481 "MachineIndependent/glslang.y"
7043
{
7044
parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
7045
(yyval.interm.type).init((yyvsp[0].lex).loc);
7046
(yyval.interm.type).qualifier.storage = EvqBuffer;
7047
}
7048
#line 7049 "MachineIndependent/glslang_tab.cpp"
7049
break;
7050
7051
case 177: /* storage_qualifier: ATTRIBUTE */
7052
#line 1486 "MachineIndependent/glslang.y"
7053
{
7054
parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
7055
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
7056
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
7057
parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
7058
parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
7059
7060
parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
7061
7062
(yyval.interm.type).init((yyvsp[0].lex).loc);
7063
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
7064
}
7065
#line 7066 "MachineIndependent/glslang_tab.cpp"
7066
break;
7067
7068
case 178: /* storage_qualifier: VARYING */
7069
#line 1498 "MachineIndependent/glslang.y"
7070
{
7071
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
7072
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
7073
parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
7074
parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
7075
7076
parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
7077
7078
(yyval.interm.type).init((yyvsp[0].lex).loc);
7079
if (parseContext.language == EShLangVertex)
7080
(yyval.interm.type).qualifier.storage = EvqVaryingOut;
7081
else
7082
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
7083
}
7084
#line 7085 "MachineIndependent/glslang_tab.cpp"
7085
break;
7086
7087
case 179: /* storage_qualifier: PATCH */
7088
#line 1512 "MachineIndependent/glslang.y"
7089
{
7090
parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
7091
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
7092
(yyval.interm.type).init((yyvsp[0].lex).loc);
7093
(yyval.interm.type).qualifier.patch = true;
7094
}
7095
#line 7096 "MachineIndependent/glslang_tab.cpp"
7096
break;
7097
7098
case 180: /* storage_qualifier: SAMPLE */
7099
#line 1518 "MachineIndependent/glslang.y"
7100
{
7101
parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
7102
(yyval.interm.type).init((yyvsp[0].lex).loc);
7103
(yyval.interm.type).qualifier.sample = true;
7104
}
7105
#line 7106 "MachineIndependent/glslang_tab.cpp"
7106
break;
7107
7108
case 181: /* storage_qualifier: HITATTRNV */
7109
#line 1523 "MachineIndependent/glslang.y"
7110
{
7111
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7112
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7113
| EShLangAnyHitMask), "hitAttributeNV");
7114
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
7115
(yyval.interm.type).init((yyvsp[0].lex).loc);
7116
(yyval.interm.type).qualifier.storage = EvqHitAttr;
7117
}
7118
#line 7119 "MachineIndependent/glslang_tab.cpp"
7119
break;
7120
7121
case 182: /* storage_qualifier: HITOBJECTATTRNV */
7122
#line 1531 "MachineIndependent/glslang.y"
7123
{
7124
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7125
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
7126
| EShLangMissMask), "hitObjectAttributeNV");
7127
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV");
7128
(yyval.interm.type).init((yyvsp[0].lex).loc);
7129
(yyval.interm.type).qualifier.storage = EvqHitObjectAttrNV;
7130
}
7131
#line 7132 "MachineIndependent/glslang_tab.cpp"
7132
break;
7133
7134
case 183: /* storage_qualifier: HITATTREXT */
7135
#line 1539 "MachineIndependent/glslang.y"
7136
{
7137
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
7138
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7139
| EShLangAnyHitMask), "hitAttributeEXT");
7140
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
7141
(yyval.interm.type).init((yyvsp[0].lex).loc);
7142
(yyval.interm.type).qualifier.storage = EvqHitAttr;
7143
}
7144
#line 7145 "MachineIndependent/glslang_tab.cpp"
7145
break;
7146
7147
case 184: /* storage_qualifier: PAYLOADNV */
7148
#line 1547 "MachineIndependent/glslang.y"
7149
{
7150
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
7151
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7152
EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
7153
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
7154
(yyval.interm.type).init((yyvsp[0].lex).loc);
7155
(yyval.interm.type).qualifier.storage = EvqPayload;
7156
}
7157
#line 7158 "MachineIndependent/glslang_tab.cpp"
7158
break;
7159
7160
case 185: /* storage_qualifier: PAYLOADEXT */
7161
#line 1555 "MachineIndependent/glslang.y"
7162
{
7163
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
7164
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7165
EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
7166
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
7167
(yyval.interm.type).init((yyvsp[0].lex).loc);
7168
(yyval.interm.type).qualifier.storage = EvqPayload;
7169
}
7170
#line 7171 "MachineIndependent/glslang_tab.cpp"
7171
break;
7172
7173
case 186: /* storage_qualifier: PAYLOADINNV */
7174
#line 1563 "MachineIndependent/glslang.y"
7175
{
7176
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
7177
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7178
EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
7179
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
7180
(yyval.interm.type).init((yyvsp[0].lex).loc);
7181
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
7182
}
7183
#line 7184 "MachineIndependent/glslang_tab.cpp"
7184
break;
7185
7186
case 187: /* storage_qualifier: PAYLOADINEXT */
7187
#line 1571 "MachineIndependent/glslang.y"
7188
{
7189
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
7190
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7191
EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
7192
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
7193
(yyval.interm.type).init((yyvsp[0].lex).loc);
7194
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
7195
}
7196
#line 7197 "MachineIndependent/glslang_tab.cpp"
7197
break;
7198
7199
case 188: /* storage_qualifier: CALLDATANV */
7200
#line 1579 "MachineIndependent/glslang.y"
7201
{
7202
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
7203
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7204
EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
7205
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
7206
(yyval.interm.type).init((yyvsp[0].lex).loc);
7207
(yyval.interm.type).qualifier.storage = EvqCallableData;
7208
}
7209
#line 7210 "MachineIndependent/glslang_tab.cpp"
7210
break;
7211
7212
case 189: /* storage_qualifier: CALLDATAEXT */
7213
#line 1587 "MachineIndependent/glslang.y"
7214
{
7215
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
7216
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7217
EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
7218
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
7219
(yyval.interm.type).init((yyvsp[0].lex).loc);
7220
(yyval.interm.type).qualifier.storage = EvqCallableData;
7221
}
7222
#line 7223 "MachineIndependent/glslang_tab.cpp"
7223
break;
7224
7225
case 190: /* storage_qualifier: CALLDATAINNV */
7226
#line 1595 "MachineIndependent/glslang.y"
7227
{
7228
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
7229
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
7230
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
7231
(yyval.interm.type).init((yyvsp[0].lex).loc);
7232
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7233
}
7234
#line 7235 "MachineIndependent/glslang_tab.cpp"
7235
break;
7236
7237
case 191: /* storage_qualifier: CALLDATAINEXT */
7238
#line 1602 "MachineIndependent/glslang.y"
7239
{
7240
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
7241
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
7242
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
7243
(yyval.interm.type).init((yyvsp[0].lex).loc);
7244
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7245
}
7246
#line 7247 "MachineIndependent/glslang_tab.cpp"
7247
break;
7248
7249
case 192: /* storage_qualifier: COHERENT */
7250
#line 1609 "MachineIndependent/glslang.y"
7251
{
7252
(yyval.interm.type).init((yyvsp[0].lex).loc);
7253
(yyval.interm.type).qualifier.coherent = true;
7254
}
7255
#line 7256 "MachineIndependent/glslang_tab.cpp"
7256
break;
7257
7258
case 193: /* storage_qualifier: DEVICECOHERENT */
7259
#line 1613 "MachineIndependent/glslang.y"
7260
{
7261
(yyval.interm.type).init((yyvsp[0].lex).loc);
7262
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
7263
(yyval.interm.type).qualifier.devicecoherent = true;
7264
}
7265
#line 7266 "MachineIndependent/glslang_tab.cpp"
7266
break;
7267
7268
case 194: /* storage_qualifier: QUEUEFAMILYCOHERENT */
7269
#line 1618 "MachineIndependent/glslang.y"
7270
{
7271
(yyval.interm.type).init((yyvsp[0].lex).loc);
7272
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
7273
(yyval.interm.type).qualifier.queuefamilycoherent = true;
7274
}
7275
#line 7276 "MachineIndependent/glslang_tab.cpp"
7276
break;
7277
7278
case 195: /* storage_qualifier: WORKGROUPCOHERENT */
7279
#line 1623 "MachineIndependent/glslang.y"
7280
{
7281
(yyval.interm.type).init((yyvsp[0].lex).loc);
7282
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
7283
(yyval.interm.type).qualifier.workgroupcoherent = true;
7284
}
7285
#line 7286 "MachineIndependent/glslang_tab.cpp"
7286
break;
7287
7288
case 196: /* storage_qualifier: SUBGROUPCOHERENT */
7289
#line 1628 "MachineIndependent/glslang.y"
7290
{
7291
(yyval.interm.type).init((yyvsp[0].lex).loc);
7292
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
7293
(yyval.interm.type).qualifier.subgroupcoherent = true;
7294
}
7295
#line 7296 "MachineIndependent/glslang_tab.cpp"
7296
break;
7297
7298
case 197: /* storage_qualifier: NONPRIVATE */
7299
#line 1633 "MachineIndependent/glslang.y"
7300
{
7301
(yyval.interm.type).init((yyvsp[0].lex).loc);
7302
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
7303
(yyval.interm.type).qualifier.nonprivate = true;
7304
}
7305
#line 7306 "MachineIndependent/glslang_tab.cpp"
7306
break;
7307
7308
case 198: /* storage_qualifier: SHADERCALLCOHERENT */
7309
#line 1638 "MachineIndependent/glslang.y"
7310
{
7311
(yyval.interm.type).init((yyvsp[0].lex).loc);
7312
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
7313
(yyval.interm.type).qualifier.shadercallcoherent = true;
7314
}
7315
#line 7316 "MachineIndependent/glslang_tab.cpp"
7316
break;
7317
7318
case 199: /* storage_qualifier: VOLATILE */
7319
#line 1643 "MachineIndependent/glslang.y"
7320
{
7321
(yyval.interm.type).init((yyvsp[0].lex).loc);
7322
(yyval.interm.type).qualifier.volatil = true;
7323
}
7324
#line 7325 "MachineIndependent/glslang_tab.cpp"
7325
break;
7326
7327
case 200: /* storage_qualifier: RESTRICT */
7328
#line 1647 "MachineIndependent/glslang.y"
7329
{
7330
(yyval.interm.type).init((yyvsp[0].lex).loc);
7331
(yyval.interm.type).qualifier.restrict = true;
7332
}
7333
#line 7334 "MachineIndependent/glslang_tab.cpp"
7334
break;
7335
7336
case 201: /* storage_qualifier: READONLY */
7337
#line 1651 "MachineIndependent/glslang.y"
7338
{
7339
(yyval.interm.type).init((yyvsp[0].lex).loc);
7340
(yyval.interm.type).qualifier.readonly = true;
7341
}
7342
#line 7343 "MachineIndependent/glslang_tab.cpp"
7343
break;
7344
7345
case 202: /* storage_qualifier: WRITEONLY */
7346
#line 1655 "MachineIndependent/glslang.y"
7347
{
7348
(yyval.interm.type).init((yyvsp[0].lex).loc);
7349
(yyval.interm.type).qualifier.writeonly = true;
7350
}
7351
#line 7352 "MachineIndependent/glslang_tab.cpp"
7352
break;
7353
7354
case 203: /* storage_qualifier: SUBROUTINE */
7355
#line 1659 "MachineIndependent/glslang.y"
7356
{
7357
parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
7358
parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
7359
parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
7360
(yyval.interm.type).init((yyvsp[0].lex).loc);
7361
}
7362
#line 7363 "MachineIndependent/glslang_tab.cpp"
7363
break;
7364
7365
case 204: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
7366
#line 1665 "MachineIndependent/glslang.y"
7367
{
7368
parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
7369
parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
7370
parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
7371
(yyval.interm.type).init((yyvsp[-3].lex).loc);
7372
}
7373
#line 7374 "MachineIndependent/glslang_tab.cpp"
7374
break;
7375
7376
case 205: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT */
7377
#line 1671 "MachineIndependent/glslang.y"
7378
{
7379
// No need for profile version or extension check. Shader stage already checks both.
7380
parseContext.globalCheck((yyvsp[0].lex).loc, "taskPayloadSharedEXT");
7381
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskPayloadSharedEXT ");
7382
(yyval.interm.type).init((yyvsp[0].lex).loc);
7383
(yyval.interm.type).qualifier.storage = EvqtaskPayloadSharedEXT;
7384
}
7385
#line 7386 "MachineIndependent/glslang_tab.cpp"
7386
break;
7387
7388
case 206: /* non_uniform_qualifier: NONUNIFORM */
7389
#line 1681 "MachineIndependent/glslang.y"
7390
{
7391
(yyval.interm.type).init((yyvsp[0].lex).loc);
7392
(yyval.interm.type).qualifier.nonUniform = true;
7393
}
7394
#line 7395 "MachineIndependent/glslang_tab.cpp"
7395
break;
7396
7397
case 207: /* type_name_list: IDENTIFIER */
7398
#line 1688 "MachineIndependent/glslang.y"
7399
{
7400
// TODO
7401
}
7402
#line 7403 "MachineIndependent/glslang_tab.cpp"
7403
break;
7404
7405
case 208: /* type_name_list: type_name_list COMMA IDENTIFIER */
7406
#line 1691 "MachineIndependent/glslang.y"
7407
{
7408
// TODO: 4.0 semantics: subroutines
7409
// 1) make sure each identifier is a type declared earlier with SUBROUTINE
7410
// 2) save all of the identifiers for future comparison with the declared function
7411
}
7412
#line 7413 "MachineIndependent/glslang_tab.cpp"
7413
break;
7414
7415
case 209: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
7416
#line 1699 "MachineIndependent/glslang.y"
7417
{
7418
(yyval.interm.type) = (yyvsp[-1].interm.type);
7419
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7420
(yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
7421
parseContext.coopMatTypeParametersCheck((yyvsp[-1].interm.type).loc, (yyval.interm.type));
7422
7423
}
7424
#line 7425 "MachineIndependent/glslang_tab.cpp"
7425
break;
7426
7427
case 210: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
7428
#line 1706 "MachineIndependent/glslang.y"
7429
{
7430
parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
7431
(yyval.interm.type) = (yyvsp[-2].interm.type);
7432
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7433
(yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
7434
(yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
7435
parseContext.coopMatTypeParametersCheck((yyvsp[-2].interm.type).loc, (yyval.interm.type));
7436
}
7437
#line 7438 "MachineIndependent/glslang_tab.cpp"
7438
break;
7439
7440
case 211: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
7441
#line 1717 "MachineIndependent/glslang.y"
7442
{
7443
(yyval.interm).loc = (yyvsp[-1].lex).loc;
7444
(yyval.interm).arraySizes = new TArraySizes;
7445
(yyval.interm).arraySizes->addInnerSize();
7446
}
7447
#line 7448 "MachineIndependent/glslang_tab.cpp"
7448
break;
7449
7450
case 212: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
7451
#line 1722 "MachineIndependent/glslang.y"
7452
{
7453
(yyval.interm).loc = (yyvsp[-2].lex).loc;
7454
(yyval.interm).arraySizes = new TArraySizes;
7455
7456
TArraySize size;
7457
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7458
(yyval.interm).arraySizes->addInnerSize(size);
7459
}
7460
#line 7461 "MachineIndependent/glslang_tab.cpp"
7461
break;
7462
7463
case 213: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
7464
#line 1730 "MachineIndependent/glslang.y"
7465
{
7466
(yyval.interm) = (yyvsp[-2].interm);
7467
(yyval.interm).arraySizes->addInnerSize();
7468
}
7469
#line 7470 "MachineIndependent/glslang_tab.cpp"
7470
break;
7471
7472
case 214: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
7473
#line 1734 "MachineIndependent/glslang.y"
7474
{
7475
(yyval.interm) = (yyvsp[-3].interm);
7476
7477
TArraySize size;
7478
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7479
(yyval.interm).arraySizes->addInnerSize(size);
7480
}
7481
#line 7482 "MachineIndependent/glslang_tab.cpp"
7482
break;
7483
7484
case 215: /* type_parameter_specifier_opt: type_parameter_specifier */
7485
#line 1744 "MachineIndependent/glslang.y"
7486
{
7487
(yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
7488
}
7489
#line 7490 "MachineIndependent/glslang_tab.cpp"
7490
break;
7491
7492
case 216: /* type_parameter_specifier_opt: %empty */
7493
#line 1747 "MachineIndependent/glslang.y"
7494
{
7495
(yyval.interm.typeParameters) = 0;
7496
}
7497
#line 7498 "MachineIndependent/glslang_tab.cpp"
7498
break;
7499
7500
case 217: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
7501
#line 1753 "MachineIndependent/glslang.y"
7502
{
7503
(yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
7504
}
7505
#line 7506 "MachineIndependent/glslang_tab.cpp"
7506
break;
7507
7508
case 218: /* type_parameter_specifier_list: type_specifier */
7509
#line 1759 "MachineIndependent/glslang.y"
7510
{
7511
(yyval.interm.typeParameters) = new TTypeParameters;
7512
(yyval.interm.typeParameters)->arraySizes = new TArraySizes;
7513
(yyval.interm.typeParameters)->spirvType = (yyvsp[0].interm.type).spirvType;
7514
(yyval.interm.typeParameters)->basicType = (yyvsp[0].interm.type).basicType;
7515
}
7516
#line 7517 "MachineIndependent/glslang_tab.cpp"
7517
break;
7518
7519
case 219: /* type_parameter_specifier_list: unary_expression */
7520
#line 1765 "MachineIndependent/glslang.y"
7521
{
7522
(yyval.interm.typeParameters) = new TTypeParameters;
7523
(yyval.interm.typeParameters)->arraySizes = new TArraySizes;
7524
7525
TArraySize size;
7526
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
7527
(yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
7528
}
7529
#line 7530 "MachineIndependent/glslang_tab.cpp"
7530
break;
7531
7532
case 220: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
7533
#line 1773 "MachineIndependent/glslang.y"
7534
{
7535
(yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
7536
7537
TArraySize size;
7538
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
7539
(yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
7540
}
7541
#line 7542 "MachineIndependent/glslang_tab.cpp"
7542
break;
7543
7544
case 221: /* type_specifier_nonarray: VOID */
7545
#line 1783 "MachineIndependent/glslang.y"
7546
{
7547
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7548
(yyval.interm.type).basicType = EbtVoid;
7549
}
7550
#line 7551 "MachineIndependent/glslang_tab.cpp"
7551
break;
7552
7553
case 222: /* type_specifier_nonarray: FLOAT */
7554
#line 1787 "MachineIndependent/glslang.y"
7555
{
7556
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7557
(yyval.interm.type).basicType = EbtFloat;
7558
}
7559
#line 7560 "MachineIndependent/glslang_tab.cpp"
7560
break;
7561
7562
case 223: /* type_specifier_nonarray: INT */
7563
#line 1791 "MachineIndependent/glslang.y"
7564
{
7565
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7566
(yyval.interm.type).basicType = EbtInt;
7567
}
7568
#line 7569 "MachineIndependent/glslang_tab.cpp"
7569
break;
7570
7571
case 224: /* type_specifier_nonarray: UINT */
7572
#line 1795 "MachineIndependent/glslang.y"
7573
{
7574
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
7575
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7576
(yyval.interm.type).basicType = EbtUint;
7577
}
7578
#line 7579 "MachineIndependent/glslang_tab.cpp"
7579
break;
7580
7581
case 225: /* type_specifier_nonarray: BOOL */
7582
#line 1800 "MachineIndependent/glslang.y"
7583
{
7584
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7585
(yyval.interm.type).basicType = EbtBool;
7586
}
7587
#line 7588 "MachineIndependent/glslang_tab.cpp"
7588
break;
7589
7590
case 226: /* type_specifier_nonarray: VEC2 */
7591
#line 1804 "MachineIndependent/glslang.y"
7592
{
7593
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7594
(yyval.interm.type).basicType = EbtFloat;
7595
(yyval.interm.type).setVector(2);
7596
}
7597
#line 7598 "MachineIndependent/glslang_tab.cpp"
7598
break;
7599
7600
case 227: /* type_specifier_nonarray: VEC3 */
7601
#line 1809 "MachineIndependent/glslang.y"
7602
{
7603
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7604
(yyval.interm.type).basicType = EbtFloat;
7605
(yyval.interm.type).setVector(3);
7606
}
7607
#line 7608 "MachineIndependent/glslang_tab.cpp"
7608
break;
7609
7610
case 228: /* type_specifier_nonarray: VEC4 */
7611
#line 1814 "MachineIndependent/glslang.y"
7612
{
7613
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7614
(yyval.interm.type).basicType = EbtFloat;
7615
(yyval.interm.type).setVector(4);
7616
}
7617
#line 7618 "MachineIndependent/glslang_tab.cpp"
7618
break;
7619
7620
case 229: /* type_specifier_nonarray: BVEC2 */
7621
#line 1819 "MachineIndependent/glslang.y"
7622
{
7623
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7624
(yyval.interm.type).basicType = EbtBool;
7625
(yyval.interm.type).setVector(2);
7626
}
7627
#line 7628 "MachineIndependent/glslang_tab.cpp"
7628
break;
7629
7630
case 230: /* type_specifier_nonarray: BVEC3 */
7631
#line 1824 "MachineIndependent/glslang.y"
7632
{
7633
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7634
(yyval.interm.type).basicType = EbtBool;
7635
(yyval.interm.type).setVector(3);
7636
}
7637
#line 7638 "MachineIndependent/glslang_tab.cpp"
7638
break;
7639
7640
case 231: /* type_specifier_nonarray: BVEC4 */
7641
#line 1829 "MachineIndependent/glslang.y"
7642
{
7643
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7644
(yyval.interm.type).basicType = EbtBool;
7645
(yyval.interm.type).setVector(4);
7646
}
7647
#line 7648 "MachineIndependent/glslang_tab.cpp"
7648
break;
7649
7650
case 232: /* type_specifier_nonarray: IVEC2 */
7651
#line 1834 "MachineIndependent/glslang.y"
7652
{
7653
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7654
(yyval.interm.type).basicType = EbtInt;
7655
(yyval.interm.type).setVector(2);
7656
}
7657
#line 7658 "MachineIndependent/glslang_tab.cpp"
7658
break;
7659
7660
case 233: /* type_specifier_nonarray: IVEC3 */
7661
#line 1839 "MachineIndependent/glslang.y"
7662
{
7663
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7664
(yyval.interm.type).basicType = EbtInt;
7665
(yyval.interm.type).setVector(3);
7666
}
7667
#line 7668 "MachineIndependent/glslang_tab.cpp"
7668
break;
7669
7670
case 234: /* type_specifier_nonarray: IVEC4 */
7671
#line 1844 "MachineIndependent/glslang.y"
7672
{
7673
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7674
(yyval.interm.type).basicType = EbtInt;
7675
(yyval.interm.type).setVector(4);
7676
}
7677
#line 7678 "MachineIndependent/glslang_tab.cpp"
7678
break;
7679
7680
case 235: /* type_specifier_nonarray: UVEC2 */
7681
#line 1849 "MachineIndependent/glslang.y"
7682
{
7683
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7684
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7685
(yyval.interm.type).basicType = EbtUint;
7686
(yyval.interm.type).setVector(2);
7687
}
7688
#line 7689 "MachineIndependent/glslang_tab.cpp"
7689
break;
7690
7691
case 236: /* type_specifier_nonarray: UVEC3 */
7692
#line 1855 "MachineIndependent/glslang.y"
7693
{
7694
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7695
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7696
(yyval.interm.type).basicType = EbtUint;
7697
(yyval.interm.type).setVector(3);
7698
}
7699
#line 7700 "MachineIndependent/glslang_tab.cpp"
7700
break;
7701
7702
case 237: /* type_specifier_nonarray: UVEC4 */
7703
#line 1861 "MachineIndependent/glslang.y"
7704
{
7705
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7706
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7707
(yyval.interm.type).basicType = EbtUint;
7708
(yyval.interm.type).setVector(4);
7709
}
7710
#line 7711 "MachineIndependent/glslang_tab.cpp"
7711
break;
7712
7713
case 238: /* type_specifier_nonarray: MAT2 */
7714
#line 1867 "MachineIndependent/glslang.y"
7715
{
7716
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7717
(yyval.interm.type).basicType = EbtFloat;
7718
(yyval.interm.type).setMatrix(2, 2);
7719
}
7720
#line 7721 "MachineIndependent/glslang_tab.cpp"
7721
break;
7722
7723
case 239: /* type_specifier_nonarray: MAT3 */
7724
#line 1872 "MachineIndependent/glslang.y"
7725
{
7726
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7727
(yyval.interm.type).basicType = EbtFloat;
7728
(yyval.interm.type).setMatrix(3, 3);
7729
}
7730
#line 7731 "MachineIndependent/glslang_tab.cpp"
7731
break;
7732
7733
case 240: /* type_specifier_nonarray: MAT4 */
7734
#line 1877 "MachineIndependent/glslang.y"
7735
{
7736
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7737
(yyval.interm.type).basicType = EbtFloat;
7738
(yyval.interm.type).setMatrix(4, 4);
7739
}
7740
#line 7741 "MachineIndependent/glslang_tab.cpp"
7741
break;
7742
7743
case 241: /* type_specifier_nonarray: MAT2X2 */
7744
#line 1882 "MachineIndependent/glslang.y"
7745
{
7746
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7747
(yyval.interm.type).basicType = EbtFloat;
7748
(yyval.interm.type).setMatrix(2, 2);
7749
}
7750
#line 7751 "MachineIndependent/glslang_tab.cpp"
7751
break;
7752
7753
case 242: /* type_specifier_nonarray: MAT2X3 */
7754
#line 1887 "MachineIndependent/glslang.y"
7755
{
7756
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7757
(yyval.interm.type).basicType = EbtFloat;
7758
(yyval.interm.type).setMatrix(2, 3);
7759
}
7760
#line 7761 "MachineIndependent/glslang_tab.cpp"
7761
break;
7762
7763
case 243: /* type_specifier_nonarray: MAT2X4 */
7764
#line 1892 "MachineIndependent/glslang.y"
7765
{
7766
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7767
(yyval.interm.type).basicType = EbtFloat;
7768
(yyval.interm.type).setMatrix(2, 4);
7769
}
7770
#line 7771 "MachineIndependent/glslang_tab.cpp"
7771
break;
7772
7773
case 244: /* type_specifier_nonarray: MAT3X2 */
7774
#line 1897 "MachineIndependent/glslang.y"
7775
{
7776
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7777
(yyval.interm.type).basicType = EbtFloat;
7778
(yyval.interm.type).setMatrix(3, 2);
7779
}
7780
#line 7781 "MachineIndependent/glslang_tab.cpp"
7781
break;
7782
7783
case 245: /* type_specifier_nonarray: MAT3X3 */
7784
#line 1902 "MachineIndependent/glslang.y"
7785
{
7786
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7787
(yyval.interm.type).basicType = EbtFloat;
7788
(yyval.interm.type).setMatrix(3, 3);
7789
}
7790
#line 7791 "MachineIndependent/glslang_tab.cpp"
7791
break;
7792
7793
case 246: /* type_specifier_nonarray: MAT3X4 */
7794
#line 1907 "MachineIndependent/glslang.y"
7795
{
7796
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7797
(yyval.interm.type).basicType = EbtFloat;
7798
(yyval.interm.type).setMatrix(3, 4);
7799
}
7800
#line 7801 "MachineIndependent/glslang_tab.cpp"
7801
break;
7802
7803
case 247: /* type_specifier_nonarray: MAT4X2 */
7804
#line 1912 "MachineIndependent/glslang.y"
7805
{
7806
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7807
(yyval.interm.type).basicType = EbtFloat;
7808
(yyval.interm.type).setMatrix(4, 2);
7809
}
7810
#line 7811 "MachineIndependent/glslang_tab.cpp"
7811
break;
7812
7813
case 248: /* type_specifier_nonarray: MAT4X3 */
7814
#line 1917 "MachineIndependent/glslang.y"
7815
{
7816
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7817
(yyval.interm.type).basicType = EbtFloat;
7818
(yyval.interm.type).setMatrix(4, 3);
7819
}
7820
#line 7821 "MachineIndependent/glslang_tab.cpp"
7821
break;
7822
7823
case 249: /* type_specifier_nonarray: MAT4X4 */
7824
#line 1922 "MachineIndependent/glslang.y"
7825
{
7826
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7827
(yyval.interm.type).basicType = EbtFloat;
7828
(yyval.interm.type).setMatrix(4, 4);
7829
}
7830
#line 7831 "MachineIndependent/glslang_tab.cpp"
7831
break;
7832
7833
case 250: /* type_specifier_nonarray: DOUBLE */
7834
#line 1927 "MachineIndependent/glslang.y"
7835
{
7836
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
7837
if (! parseContext.symbolTable.atBuiltInLevel())
7838
parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
7839
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7840
(yyval.interm.type).basicType = EbtDouble;
7841
}
7842
#line 7843 "MachineIndependent/glslang_tab.cpp"
7843
break;
7844
7845
case 251: /* type_specifier_nonarray: FLOAT16_T */
7846
#line 1934 "MachineIndependent/glslang.y"
7847
{
7848
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
7849
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7850
(yyval.interm.type).basicType = EbtFloat16;
7851
}
7852
#line 7853 "MachineIndependent/glslang_tab.cpp"
7853
break;
7854
7855
case 252: /* type_specifier_nonarray: FLOAT32_T */
7856
#line 1939 "MachineIndependent/glslang.y"
7857
{
7858
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
7859
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7860
(yyval.interm.type).basicType = EbtFloat;
7861
}
7862
#line 7863 "MachineIndependent/glslang_tab.cpp"
7863
break;
7864
7865
case 253: /* type_specifier_nonarray: FLOAT64_T */
7866
#line 1944 "MachineIndependent/glslang.y"
7867
{
7868
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
7869
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7870
(yyval.interm.type).basicType = EbtDouble;
7871
}
7872
#line 7873 "MachineIndependent/glslang_tab.cpp"
7873
break;
7874
7875
case 254: /* type_specifier_nonarray: INT8_T */
7876
#line 1949 "MachineIndependent/glslang.y"
7877
{
7878
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7879
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7880
(yyval.interm.type).basicType = EbtInt8;
7881
}
7882
#line 7883 "MachineIndependent/glslang_tab.cpp"
7883
break;
7884
7885
case 255: /* type_specifier_nonarray: UINT8_T */
7886
#line 1954 "MachineIndependent/glslang.y"
7887
{
7888
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7889
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7890
(yyval.interm.type).basicType = EbtUint8;
7891
}
7892
#line 7893 "MachineIndependent/glslang_tab.cpp"
7893
break;
7894
7895
case 256: /* type_specifier_nonarray: INT16_T */
7896
#line 1959 "MachineIndependent/glslang.y"
7897
{
7898
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7899
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7900
(yyval.interm.type).basicType = EbtInt16;
7901
}
7902
#line 7903 "MachineIndependent/glslang_tab.cpp"
7903
break;
7904
7905
case 257: /* type_specifier_nonarray: UINT16_T */
7906
#line 1964 "MachineIndependent/glslang.y"
7907
{
7908
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7909
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7910
(yyval.interm.type).basicType = EbtUint16;
7911
}
7912
#line 7913 "MachineIndependent/glslang_tab.cpp"
7913
break;
7914
7915
case 258: /* type_specifier_nonarray: INT32_T */
7916
#line 1969 "MachineIndependent/glslang.y"
7917
{
7918
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7919
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7920
(yyval.interm.type).basicType = EbtInt;
7921
}
7922
#line 7923 "MachineIndependent/glslang_tab.cpp"
7923
break;
7924
7925
case 259: /* type_specifier_nonarray: UINT32_T */
7926
#line 1974 "MachineIndependent/glslang.y"
7927
{
7928
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7929
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7930
(yyval.interm.type).basicType = EbtUint;
7931
}
7932
#line 7933 "MachineIndependent/glslang_tab.cpp"
7933
break;
7934
7935
case 260: /* type_specifier_nonarray: INT64_T */
7936
#line 1979 "MachineIndependent/glslang.y"
7937
{
7938
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
7939
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7940
(yyval.interm.type).basicType = EbtInt64;
7941
}
7942
#line 7943 "MachineIndependent/glslang_tab.cpp"
7943
break;
7944
7945
case 261: /* type_specifier_nonarray: UINT64_T */
7946
#line 1984 "MachineIndependent/glslang.y"
7947
{
7948
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7949
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7950
(yyval.interm.type).basicType = EbtUint64;
7951
}
7952
#line 7953 "MachineIndependent/glslang_tab.cpp"
7953
break;
7954
7955
case 262: /* type_specifier_nonarray: DVEC2 */
7956
#line 1989 "MachineIndependent/glslang.y"
7957
{
7958
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7959
if (! parseContext.symbolTable.atBuiltInLevel())
7960
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7961
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7962
(yyval.interm.type).basicType = EbtDouble;
7963
(yyval.interm.type).setVector(2);
7964
}
7965
#line 7966 "MachineIndependent/glslang_tab.cpp"
7966
break;
7967
7968
case 263: /* type_specifier_nonarray: DVEC3 */
7969
#line 1997 "MachineIndependent/glslang.y"
7970
{
7971
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7972
if (! parseContext.symbolTable.atBuiltInLevel())
7973
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7974
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7975
(yyval.interm.type).basicType = EbtDouble;
7976
(yyval.interm.type).setVector(3);
7977
}
7978
#line 7979 "MachineIndependent/glslang_tab.cpp"
7979
break;
7980
7981
case 264: /* type_specifier_nonarray: DVEC4 */
7982
#line 2005 "MachineIndependent/glslang.y"
7983
{
7984
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7985
if (! parseContext.symbolTable.atBuiltInLevel())
7986
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7987
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7988
(yyval.interm.type).basicType = EbtDouble;
7989
(yyval.interm.type).setVector(4);
7990
}
7991
#line 7992 "MachineIndependent/glslang_tab.cpp"
7992
break;
7993
7994
case 265: /* type_specifier_nonarray: F16VEC2 */
7995
#line 2013 "MachineIndependent/glslang.y"
7996
{
7997
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7998
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7999
(yyval.interm.type).basicType = EbtFloat16;
8000
(yyval.interm.type).setVector(2);
8001
}
8002
#line 8003 "MachineIndependent/glslang_tab.cpp"
8003
break;
8004
8005
case 266: /* type_specifier_nonarray: F16VEC3 */
8006
#line 2019 "MachineIndependent/glslang.y"
8007
{
8008
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
8009
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8010
(yyval.interm.type).basicType = EbtFloat16;
8011
(yyval.interm.type).setVector(3);
8012
}
8013
#line 8014 "MachineIndependent/glslang_tab.cpp"
8014
break;
8015
8016
case 267: /* type_specifier_nonarray: F16VEC4 */
8017
#line 2025 "MachineIndependent/glslang.y"
8018
{
8019
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
8020
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8021
(yyval.interm.type).basicType = EbtFloat16;
8022
(yyval.interm.type).setVector(4);
8023
}
8024
#line 8025 "MachineIndependent/glslang_tab.cpp"
8025
break;
8026
8027
case 268: /* type_specifier_nonarray: F32VEC2 */
8028
#line 2031 "MachineIndependent/glslang.y"
8029
{
8030
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
8031
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8032
(yyval.interm.type).basicType = EbtFloat;
8033
(yyval.interm.type).setVector(2);
8034
}
8035
#line 8036 "MachineIndependent/glslang_tab.cpp"
8036
break;
8037
8038
case 269: /* type_specifier_nonarray: F32VEC3 */
8039
#line 2037 "MachineIndependent/glslang.y"
8040
{
8041
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
8042
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8043
(yyval.interm.type).basicType = EbtFloat;
8044
(yyval.interm.type).setVector(3);
8045
}
8046
#line 8047 "MachineIndependent/glslang_tab.cpp"
8047
break;
8048
8049
case 270: /* type_specifier_nonarray: F32VEC4 */
8050
#line 2043 "MachineIndependent/glslang.y"
8051
{
8052
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
8053
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8054
(yyval.interm.type).basicType = EbtFloat;
8055
(yyval.interm.type).setVector(4);
8056
}
8057
#line 8058 "MachineIndependent/glslang_tab.cpp"
8058
break;
8059
8060
case 271: /* type_specifier_nonarray: F64VEC2 */
8061
#line 2049 "MachineIndependent/glslang.y"
8062
{
8063
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
8064
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8065
(yyval.interm.type).basicType = EbtDouble;
8066
(yyval.interm.type).setVector(2);
8067
}
8068
#line 8069 "MachineIndependent/glslang_tab.cpp"
8069
break;
8070
8071
case 272: /* type_specifier_nonarray: F64VEC3 */
8072
#line 2055 "MachineIndependent/glslang.y"
8073
{
8074
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
8075
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8076
(yyval.interm.type).basicType = EbtDouble;
8077
(yyval.interm.type).setVector(3);
8078
}
8079
#line 8080 "MachineIndependent/glslang_tab.cpp"
8080
break;
8081
8082
case 273: /* type_specifier_nonarray: F64VEC4 */
8083
#line 2061 "MachineIndependent/glslang.y"
8084
{
8085
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
8086
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8087
(yyval.interm.type).basicType = EbtDouble;
8088
(yyval.interm.type).setVector(4);
8089
}
8090
#line 8091 "MachineIndependent/glslang_tab.cpp"
8091
break;
8092
8093
case 274: /* type_specifier_nonarray: I8VEC2 */
8094
#line 2067 "MachineIndependent/glslang.y"
8095
{
8096
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8097
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8098
(yyval.interm.type).basicType = EbtInt8;
8099
(yyval.interm.type).setVector(2);
8100
}
8101
#line 8102 "MachineIndependent/glslang_tab.cpp"
8102
break;
8103
8104
case 275: /* type_specifier_nonarray: I8VEC3 */
8105
#line 2073 "MachineIndependent/glslang.y"
8106
{
8107
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8108
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8109
(yyval.interm.type).basicType = EbtInt8;
8110
(yyval.interm.type).setVector(3);
8111
}
8112
#line 8113 "MachineIndependent/glslang_tab.cpp"
8113
break;
8114
8115
case 276: /* type_specifier_nonarray: I8VEC4 */
8116
#line 2079 "MachineIndependent/glslang.y"
8117
{
8118
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8119
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8120
(yyval.interm.type).basicType = EbtInt8;
8121
(yyval.interm.type).setVector(4);
8122
}
8123
#line 8124 "MachineIndependent/glslang_tab.cpp"
8124
break;
8125
8126
case 277: /* type_specifier_nonarray: I16VEC2 */
8127
#line 2085 "MachineIndependent/glslang.y"
8128
{
8129
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8130
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8131
(yyval.interm.type).basicType = EbtInt16;
8132
(yyval.interm.type).setVector(2);
8133
}
8134
#line 8135 "MachineIndependent/glslang_tab.cpp"
8135
break;
8136
8137
case 278: /* type_specifier_nonarray: I16VEC3 */
8138
#line 2091 "MachineIndependent/glslang.y"
8139
{
8140
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8141
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8142
(yyval.interm.type).basicType = EbtInt16;
8143
(yyval.interm.type).setVector(3);
8144
}
8145
#line 8146 "MachineIndependent/glslang_tab.cpp"
8146
break;
8147
8148
case 279: /* type_specifier_nonarray: I16VEC4 */
8149
#line 2097 "MachineIndependent/glslang.y"
8150
{
8151
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8152
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8153
(yyval.interm.type).basicType = EbtInt16;
8154
(yyval.interm.type).setVector(4);
8155
}
8156
#line 8157 "MachineIndependent/glslang_tab.cpp"
8157
break;
8158
8159
case 280: /* type_specifier_nonarray: I32VEC2 */
8160
#line 2103 "MachineIndependent/glslang.y"
8161
{
8162
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8163
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8164
(yyval.interm.type).basicType = EbtInt;
8165
(yyval.interm.type).setVector(2);
8166
}
8167
#line 8168 "MachineIndependent/glslang_tab.cpp"
8168
break;
8169
8170
case 281: /* type_specifier_nonarray: I32VEC3 */
8171
#line 2109 "MachineIndependent/glslang.y"
8172
{
8173
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8174
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8175
(yyval.interm.type).basicType = EbtInt;
8176
(yyval.interm.type).setVector(3);
8177
}
8178
#line 8179 "MachineIndependent/glslang_tab.cpp"
8179
break;
8180
8181
case 282: /* type_specifier_nonarray: I32VEC4 */
8182
#line 2115 "MachineIndependent/glslang.y"
8183
{
8184
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8185
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8186
(yyval.interm.type).basicType = EbtInt;
8187
(yyval.interm.type).setVector(4);
8188
}
8189
#line 8190 "MachineIndependent/glslang_tab.cpp"
8190
break;
8191
8192
case 283: /* type_specifier_nonarray: I64VEC2 */
8193
#line 2121 "MachineIndependent/glslang.y"
8194
{
8195
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8196
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8197
(yyval.interm.type).basicType = EbtInt64;
8198
(yyval.interm.type).setVector(2);
8199
}
8200
#line 8201 "MachineIndependent/glslang_tab.cpp"
8201
break;
8202
8203
case 284: /* type_specifier_nonarray: I64VEC3 */
8204
#line 2127 "MachineIndependent/glslang.y"
8205
{
8206
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8207
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8208
(yyval.interm.type).basicType = EbtInt64;
8209
(yyval.interm.type).setVector(3);
8210
}
8211
#line 8212 "MachineIndependent/glslang_tab.cpp"
8212
break;
8213
8214
case 285: /* type_specifier_nonarray: I64VEC4 */
8215
#line 2133 "MachineIndependent/glslang.y"
8216
{
8217
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8218
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8219
(yyval.interm.type).basicType = EbtInt64;
8220
(yyval.interm.type).setVector(4);
8221
}
8222
#line 8223 "MachineIndependent/glslang_tab.cpp"
8223
break;
8224
8225
case 286: /* type_specifier_nonarray: U8VEC2 */
8226
#line 2139 "MachineIndependent/glslang.y"
8227
{
8228
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8229
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8230
(yyval.interm.type).basicType = EbtUint8;
8231
(yyval.interm.type).setVector(2);
8232
}
8233
#line 8234 "MachineIndependent/glslang_tab.cpp"
8234
break;
8235
8236
case 287: /* type_specifier_nonarray: U8VEC3 */
8237
#line 2145 "MachineIndependent/glslang.y"
8238
{
8239
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8240
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8241
(yyval.interm.type).basicType = EbtUint8;
8242
(yyval.interm.type).setVector(3);
8243
}
8244
#line 8245 "MachineIndependent/glslang_tab.cpp"
8245
break;
8246
8247
case 288: /* type_specifier_nonarray: U8VEC4 */
8248
#line 2151 "MachineIndependent/glslang.y"
8249
{
8250
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8251
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8252
(yyval.interm.type).basicType = EbtUint8;
8253
(yyval.interm.type).setVector(4);
8254
}
8255
#line 8256 "MachineIndependent/glslang_tab.cpp"
8256
break;
8257
8258
case 289: /* type_specifier_nonarray: U16VEC2 */
8259
#line 2157 "MachineIndependent/glslang.y"
8260
{
8261
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8262
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8263
(yyval.interm.type).basicType = EbtUint16;
8264
(yyval.interm.type).setVector(2);
8265
}
8266
#line 8267 "MachineIndependent/glslang_tab.cpp"
8267
break;
8268
8269
case 290: /* type_specifier_nonarray: U16VEC3 */
8270
#line 2163 "MachineIndependent/glslang.y"
8271
{
8272
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8273
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8274
(yyval.interm.type).basicType = EbtUint16;
8275
(yyval.interm.type).setVector(3);
8276
}
8277
#line 8278 "MachineIndependent/glslang_tab.cpp"
8278
break;
8279
8280
case 291: /* type_specifier_nonarray: U16VEC4 */
8281
#line 2169 "MachineIndependent/glslang.y"
8282
{
8283
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8284
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8285
(yyval.interm.type).basicType = EbtUint16;
8286
(yyval.interm.type).setVector(4);
8287
}
8288
#line 8289 "MachineIndependent/glslang_tab.cpp"
8289
break;
8290
8291
case 292: /* type_specifier_nonarray: U32VEC2 */
8292
#line 2175 "MachineIndependent/glslang.y"
8293
{
8294
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8295
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8296
(yyval.interm.type).basicType = EbtUint;
8297
(yyval.interm.type).setVector(2);
8298
}
8299
#line 8300 "MachineIndependent/glslang_tab.cpp"
8300
break;
8301
8302
case 293: /* type_specifier_nonarray: U32VEC3 */
8303
#line 2181 "MachineIndependent/glslang.y"
8304
{
8305
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8306
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8307
(yyval.interm.type).basicType = EbtUint;
8308
(yyval.interm.type).setVector(3);
8309
}
8310
#line 8311 "MachineIndependent/glslang_tab.cpp"
8311
break;
8312
8313
case 294: /* type_specifier_nonarray: U32VEC4 */
8314
#line 2187 "MachineIndependent/glslang.y"
8315
{
8316
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8317
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8318
(yyval.interm.type).basicType = EbtUint;
8319
(yyval.interm.type).setVector(4);
8320
}
8321
#line 8322 "MachineIndependent/glslang_tab.cpp"
8322
break;
8323
8324
case 295: /* type_specifier_nonarray: U64VEC2 */
8325
#line 2193 "MachineIndependent/glslang.y"
8326
{
8327
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8328
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8329
(yyval.interm.type).basicType = EbtUint64;
8330
(yyval.interm.type).setVector(2);
8331
}
8332
#line 8333 "MachineIndependent/glslang_tab.cpp"
8333
break;
8334
8335
case 296: /* type_specifier_nonarray: U64VEC3 */
8336
#line 2199 "MachineIndependent/glslang.y"
8337
{
8338
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8339
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8340
(yyval.interm.type).basicType = EbtUint64;
8341
(yyval.interm.type).setVector(3);
8342
}
8343
#line 8344 "MachineIndependent/glslang_tab.cpp"
8344
break;
8345
8346
case 297: /* type_specifier_nonarray: U64VEC4 */
8347
#line 2205 "MachineIndependent/glslang.y"
8348
{
8349
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8350
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8351
(yyval.interm.type).basicType = EbtUint64;
8352
(yyval.interm.type).setVector(4);
8353
}
8354
#line 8355 "MachineIndependent/glslang_tab.cpp"
8355
break;
8356
8357
case 298: /* type_specifier_nonarray: DMAT2 */
8358
#line 2211 "MachineIndependent/glslang.y"
8359
{
8360
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8361
if (! parseContext.symbolTable.atBuiltInLevel())
8362
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8363
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8364
(yyval.interm.type).basicType = EbtDouble;
8365
(yyval.interm.type).setMatrix(2, 2);
8366
}
8367
#line 8368 "MachineIndependent/glslang_tab.cpp"
8368
break;
8369
8370
case 299: /* type_specifier_nonarray: DMAT3 */
8371
#line 2219 "MachineIndependent/glslang.y"
8372
{
8373
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8374
if (! parseContext.symbolTable.atBuiltInLevel())
8375
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8376
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8377
(yyval.interm.type).basicType = EbtDouble;
8378
(yyval.interm.type).setMatrix(3, 3);
8379
}
8380
#line 8381 "MachineIndependent/glslang_tab.cpp"
8381
break;
8382
8383
case 300: /* type_specifier_nonarray: DMAT4 */
8384
#line 2227 "MachineIndependent/glslang.y"
8385
{
8386
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8387
if (! parseContext.symbolTable.atBuiltInLevel())
8388
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8389
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8390
(yyval.interm.type).basicType = EbtDouble;
8391
(yyval.interm.type).setMatrix(4, 4);
8392
}
8393
#line 8394 "MachineIndependent/glslang_tab.cpp"
8394
break;
8395
8396
case 301: /* type_specifier_nonarray: DMAT2X2 */
8397
#line 2235 "MachineIndependent/glslang.y"
8398
{
8399
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8400
if (! parseContext.symbolTable.atBuiltInLevel())
8401
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8402
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8403
(yyval.interm.type).basicType = EbtDouble;
8404
(yyval.interm.type).setMatrix(2, 2);
8405
}
8406
#line 8407 "MachineIndependent/glslang_tab.cpp"
8407
break;
8408
8409
case 302: /* type_specifier_nonarray: DMAT2X3 */
8410
#line 2243 "MachineIndependent/glslang.y"
8411
{
8412
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8413
if (! parseContext.symbolTable.atBuiltInLevel())
8414
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8415
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8416
(yyval.interm.type).basicType = EbtDouble;
8417
(yyval.interm.type).setMatrix(2, 3);
8418
}
8419
#line 8420 "MachineIndependent/glslang_tab.cpp"
8420
break;
8421
8422
case 303: /* type_specifier_nonarray: DMAT2X4 */
8423
#line 2251 "MachineIndependent/glslang.y"
8424
{
8425
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8426
if (! parseContext.symbolTable.atBuiltInLevel())
8427
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8428
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8429
(yyval.interm.type).basicType = EbtDouble;
8430
(yyval.interm.type).setMatrix(2, 4);
8431
}
8432
#line 8433 "MachineIndependent/glslang_tab.cpp"
8433
break;
8434
8435
case 304: /* type_specifier_nonarray: DMAT3X2 */
8436
#line 2259 "MachineIndependent/glslang.y"
8437
{
8438
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8439
if (! parseContext.symbolTable.atBuiltInLevel())
8440
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8441
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8442
(yyval.interm.type).basicType = EbtDouble;
8443
(yyval.interm.type).setMatrix(3, 2);
8444
}
8445
#line 8446 "MachineIndependent/glslang_tab.cpp"
8446
break;
8447
8448
case 305: /* type_specifier_nonarray: DMAT3X3 */
8449
#line 2267 "MachineIndependent/glslang.y"
8450
{
8451
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8452
if (! parseContext.symbolTable.atBuiltInLevel())
8453
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8454
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8455
(yyval.interm.type).basicType = EbtDouble;
8456
(yyval.interm.type).setMatrix(3, 3);
8457
}
8458
#line 8459 "MachineIndependent/glslang_tab.cpp"
8459
break;
8460
8461
case 306: /* type_specifier_nonarray: DMAT3X4 */
8462
#line 2275 "MachineIndependent/glslang.y"
8463
{
8464
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8465
if (! parseContext.symbolTable.atBuiltInLevel())
8466
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8467
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8468
(yyval.interm.type).basicType = EbtDouble;
8469
(yyval.interm.type).setMatrix(3, 4);
8470
}
8471
#line 8472 "MachineIndependent/glslang_tab.cpp"
8472
break;
8473
8474
case 307: /* type_specifier_nonarray: DMAT4X2 */
8475
#line 2283 "MachineIndependent/glslang.y"
8476
{
8477
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8478
if (! parseContext.symbolTable.atBuiltInLevel())
8479
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8480
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8481
(yyval.interm.type).basicType = EbtDouble;
8482
(yyval.interm.type).setMatrix(4, 2);
8483
}
8484
#line 8485 "MachineIndependent/glslang_tab.cpp"
8485
break;
8486
8487
case 308: /* type_specifier_nonarray: DMAT4X3 */
8488
#line 2291 "MachineIndependent/glslang.y"
8489
{
8490
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8491
if (! parseContext.symbolTable.atBuiltInLevel())
8492
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8493
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8494
(yyval.interm.type).basicType = EbtDouble;
8495
(yyval.interm.type).setMatrix(4, 3);
8496
}
8497
#line 8498 "MachineIndependent/glslang_tab.cpp"
8498
break;
8499
8500
case 309: /* type_specifier_nonarray: DMAT4X4 */
8501
#line 2299 "MachineIndependent/glslang.y"
8502
{
8503
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8504
if (! parseContext.symbolTable.atBuiltInLevel())
8505
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8506
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8507
(yyval.interm.type).basicType = EbtDouble;
8508
(yyval.interm.type).setMatrix(4, 4);
8509
}
8510
#line 8511 "MachineIndependent/glslang_tab.cpp"
8511
break;
8512
8513
case 310: /* type_specifier_nonarray: F16MAT2 */
8514
#line 2307 "MachineIndependent/glslang.y"
8515
{
8516
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8517
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8518
(yyval.interm.type).basicType = EbtFloat16;
8519
(yyval.interm.type).setMatrix(2, 2);
8520
}
8521
#line 8522 "MachineIndependent/glslang_tab.cpp"
8522
break;
8523
8524
case 311: /* type_specifier_nonarray: F16MAT3 */
8525
#line 2313 "MachineIndependent/glslang.y"
8526
{
8527
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8528
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8529
(yyval.interm.type).basicType = EbtFloat16;
8530
(yyval.interm.type).setMatrix(3, 3);
8531
}
8532
#line 8533 "MachineIndependent/glslang_tab.cpp"
8533
break;
8534
8535
case 312: /* type_specifier_nonarray: F16MAT4 */
8536
#line 2319 "MachineIndependent/glslang.y"
8537
{
8538
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8539
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8540
(yyval.interm.type).basicType = EbtFloat16;
8541
(yyval.interm.type).setMatrix(4, 4);
8542
}
8543
#line 8544 "MachineIndependent/glslang_tab.cpp"
8544
break;
8545
8546
case 313: /* type_specifier_nonarray: F16MAT2X2 */
8547
#line 2325 "MachineIndependent/glslang.y"
8548
{
8549
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8550
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8551
(yyval.interm.type).basicType = EbtFloat16;
8552
(yyval.interm.type).setMatrix(2, 2);
8553
}
8554
#line 8555 "MachineIndependent/glslang_tab.cpp"
8555
break;
8556
8557
case 314: /* type_specifier_nonarray: F16MAT2X3 */
8558
#line 2331 "MachineIndependent/glslang.y"
8559
{
8560
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8561
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8562
(yyval.interm.type).basicType = EbtFloat16;
8563
(yyval.interm.type).setMatrix(2, 3);
8564
}
8565
#line 8566 "MachineIndependent/glslang_tab.cpp"
8566
break;
8567
8568
case 315: /* type_specifier_nonarray: F16MAT2X4 */
8569
#line 2337 "MachineIndependent/glslang.y"
8570
{
8571
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8572
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8573
(yyval.interm.type).basicType = EbtFloat16;
8574
(yyval.interm.type).setMatrix(2, 4);
8575
}
8576
#line 8577 "MachineIndependent/glslang_tab.cpp"
8577
break;
8578
8579
case 316: /* type_specifier_nonarray: F16MAT3X2 */
8580
#line 2343 "MachineIndependent/glslang.y"
8581
{
8582
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8583
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8584
(yyval.interm.type).basicType = EbtFloat16;
8585
(yyval.interm.type).setMatrix(3, 2);
8586
}
8587
#line 8588 "MachineIndependent/glslang_tab.cpp"
8588
break;
8589
8590
case 317: /* type_specifier_nonarray: F16MAT3X3 */
8591
#line 2349 "MachineIndependent/glslang.y"
8592
{
8593
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8594
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8595
(yyval.interm.type).basicType = EbtFloat16;
8596
(yyval.interm.type).setMatrix(3, 3);
8597
}
8598
#line 8599 "MachineIndependent/glslang_tab.cpp"
8599
break;
8600
8601
case 318: /* type_specifier_nonarray: F16MAT3X4 */
8602
#line 2355 "MachineIndependent/glslang.y"
8603
{
8604
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8605
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8606
(yyval.interm.type).basicType = EbtFloat16;
8607
(yyval.interm.type).setMatrix(3, 4);
8608
}
8609
#line 8610 "MachineIndependent/glslang_tab.cpp"
8610
break;
8611
8612
case 319: /* type_specifier_nonarray: F16MAT4X2 */
8613
#line 2361 "MachineIndependent/glslang.y"
8614
{
8615
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8616
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8617
(yyval.interm.type).basicType = EbtFloat16;
8618
(yyval.interm.type).setMatrix(4, 2);
8619
}
8620
#line 8621 "MachineIndependent/glslang_tab.cpp"
8621
break;
8622
8623
case 320: /* type_specifier_nonarray: F16MAT4X3 */
8624
#line 2367 "MachineIndependent/glslang.y"
8625
{
8626
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8627
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8628
(yyval.interm.type).basicType = EbtFloat16;
8629
(yyval.interm.type).setMatrix(4, 3);
8630
}
8631
#line 8632 "MachineIndependent/glslang_tab.cpp"
8632
break;
8633
8634
case 321: /* type_specifier_nonarray: F16MAT4X4 */
8635
#line 2373 "MachineIndependent/glslang.y"
8636
{
8637
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8638
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8639
(yyval.interm.type).basicType = EbtFloat16;
8640
(yyval.interm.type).setMatrix(4, 4);
8641
}
8642
#line 8643 "MachineIndependent/glslang_tab.cpp"
8643
break;
8644
8645
case 322: /* type_specifier_nonarray: F32MAT2 */
8646
#line 2379 "MachineIndependent/glslang.y"
8647
{
8648
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8649
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8650
(yyval.interm.type).basicType = EbtFloat;
8651
(yyval.interm.type).setMatrix(2, 2);
8652
}
8653
#line 8654 "MachineIndependent/glslang_tab.cpp"
8654
break;
8655
8656
case 323: /* type_specifier_nonarray: F32MAT3 */
8657
#line 2385 "MachineIndependent/glslang.y"
8658
{
8659
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8660
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8661
(yyval.interm.type).basicType = EbtFloat;
8662
(yyval.interm.type).setMatrix(3, 3);
8663
}
8664
#line 8665 "MachineIndependent/glslang_tab.cpp"
8665
break;
8666
8667
case 324: /* type_specifier_nonarray: F32MAT4 */
8668
#line 2391 "MachineIndependent/glslang.y"
8669
{
8670
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8671
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8672
(yyval.interm.type).basicType = EbtFloat;
8673
(yyval.interm.type).setMatrix(4, 4);
8674
}
8675
#line 8676 "MachineIndependent/glslang_tab.cpp"
8676
break;
8677
8678
case 325: /* type_specifier_nonarray: F32MAT2X2 */
8679
#line 2397 "MachineIndependent/glslang.y"
8680
{
8681
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8682
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8683
(yyval.interm.type).basicType = EbtFloat;
8684
(yyval.interm.type).setMatrix(2, 2);
8685
}
8686
#line 8687 "MachineIndependent/glslang_tab.cpp"
8687
break;
8688
8689
case 326: /* type_specifier_nonarray: F32MAT2X3 */
8690
#line 2403 "MachineIndependent/glslang.y"
8691
{
8692
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8693
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8694
(yyval.interm.type).basicType = EbtFloat;
8695
(yyval.interm.type).setMatrix(2, 3);
8696
}
8697
#line 8698 "MachineIndependent/glslang_tab.cpp"
8698
break;
8699
8700
case 327: /* type_specifier_nonarray: F32MAT2X4 */
8701
#line 2409 "MachineIndependent/glslang.y"
8702
{
8703
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8704
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8705
(yyval.interm.type).basicType = EbtFloat;
8706
(yyval.interm.type).setMatrix(2, 4);
8707
}
8708
#line 8709 "MachineIndependent/glslang_tab.cpp"
8709
break;
8710
8711
case 328: /* type_specifier_nonarray: F32MAT3X2 */
8712
#line 2415 "MachineIndependent/glslang.y"
8713
{
8714
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8715
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8716
(yyval.interm.type).basicType = EbtFloat;
8717
(yyval.interm.type).setMatrix(3, 2);
8718
}
8719
#line 8720 "MachineIndependent/glslang_tab.cpp"
8720
break;
8721
8722
case 329: /* type_specifier_nonarray: F32MAT3X3 */
8723
#line 2421 "MachineIndependent/glslang.y"
8724
{
8725
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8726
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8727
(yyval.interm.type).basicType = EbtFloat;
8728
(yyval.interm.type).setMatrix(3, 3);
8729
}
8730
#line 8731 "MachineIndependent/glslang_tab.cpp"
8731
break;
8732
8733
case 330: /* type_specifier_nonarray: F32MAT3X4 */
8734
#line 2427 "MachineIndependent/glslang.y"
8735
{
8736
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8737
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8738
(yyval.interm.type).basicType = EbtFloat;
8739
(yyval.interm.type).setMatrix(3, 4);
8740
}
8741
#line 8742 "MachineIndependent/glslang_tab.cpp"
8742
break;
8743
8744
case 331: /* type_specifier_nonarray: F32MAT4X2 */
8745
#line 2433 "MachineIndependent/glslang.y"
8746
{
8747
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8748
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8749
(yyval.interm.type).basicType = EbtFloat;
8750
(yyval.interm.type).setMatrix(4, 2);
8751
}
8752
#line 8753 "MachineIndependent/glslang_tab.cpp"
8753
break;
8754
8755
case 332: /* type_specifier_nonarray: F32MAT4X3 */
8756
#line 2439 "MachineIndependent/glslang.y"
8757
{
8758
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8759
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8760
(yyval.interm.type).basicType = EbtFloat;
8761
(yyval.interm.type).setMatrix(4, 3);
8762
}
8763
#line 8764 "MachineIndependent/glslang_tab.cpp"
8764
break;
8765
8766
case 333: /* type_specifier_nonarray: F32MAT4X4 */
8767
#line 2445 "MachineIndependent/glslang.y"
8768
{
8769
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8770
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8771
(yyval.interm.type).basicType = EbtFloat;
8772
(yyval.interm.type).setMatrix(4, 4);
8773
}
8774
#line 8775 "MachineIndependent/glslang_tab.cpp"
8775
break;
8776
8777
case 334: /* type_specifier_nonarray: F64MAT2 */
8778
#line 2451 "MachineIndependent/glslang.y"
8779
{
8780
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8781
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8782
(yyval.interm.type).basicType = EbtDouble;
8783
(yyval.interm.type).setMatrix(2, 2);
8784
}
8785
#line 8786 "MachineIndependent/glslang_tab.cpp"
8786
break;
8787
8788
case 335: /* type_specifier_nonarray: F64MAT3 */
8789
#line 2457 "MachineIndependent/glslang.y"
8790
{
8791
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8792
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8793
(yyval.interm.type).basicType = EbtDouble;
8794
(yyval.interm.type).setMatrix(3, 3);
8795
}
8796
#line 8797 "MachineIndependent/glslang_tab.cpp"
8797
break;
8798
8799
case 336: /* type_specifier_nonarray: F64MAT4 */
8800
#line 2463 "MachineIndependent/glslang.y"
8801
{
8802
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8803
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8804
(yyval.interm.type).basicType = EbtDouble;
8805
(yyval.interm.type).setMatrix(4, 4);
8806
}
8807
#line 8808 "MachineIndependent/glslang_tab.cpp"
8808
break;
8809
8810
case 337: /* type_specifier_nonarray: F64MAT2X2 */
8811
#line 2469 "MachineIndependent/glslang.y"
8812
{
8813
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8814
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8815
(yyval.interm.type).basicType = EbtDouble;
8816
(yyval.interm.type).setMatrix(2, 2);
8817
}
8818
#line 8819 "MachineIndependent/glslang_tab.cpp"
8819
break;
8820
8821
case 338: /* type_specifier_nonarray: F64MAT2X3 */
8822
#line 2475 "MachineIndependent/glslang.y"
8823
{
8824
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8825
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8826
(yyval.interm.type).basicType = EbtDouble;
8827
(yyval.interm.type).setMatrix(2, 3);
8828
}
8829
#line 8830 "MachineIndependent/glslang_tab.cpp"
8830
break;
8831
8832
case 339: /* type_specifier_nonarray: F64MAT2X4 */
8833
#line 2481 "MachineIndependent/glslang.y"
8834
{
8835
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8836
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8837
(yyval.interm.type).basicType = EbtDouble;
8838
(yyval.interm.type).setMatrix(2, 4);
8839
}
8840
#line 8841 "MachineIndependent/glslang_tab.cpp"
8841
break;
8842
8843
case 340: /* type_specifier_nonarray: F64MAT3X2 */
8844
#line 2487 "MachineIndependent/glslang.y"
8845
{
8846
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8847
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8848
(yyval.interm.type).basicType = EbtDouble;
8849
(yyval.interm.type).setMatrix(3, 2);
8850
}
8851
#line 8852 "MachineIndependent/glslang_tab.cpp"
8852
break;
8853
8854
case 341: /* type_specifier_nonarray: F64MAT3X3 */
8855
#line 2493 "MachineIndependent/glslang.y"
8856
{
8857
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8858
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8859
(yyval.interm.type).basicType = EbtDouble;
8860
(yyval.interm.type).setMatrix(3, 3);
8861
}
8862
#line 8863 "MachineIndependent/glslang_tab.cpp"
8863
break;
8864
8865
case 342: /* type_specifier_nonarray: F64MAT3X4 */
8866
#line 2499 "MachineIndependent/glslang.y"
8867
{
8868
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8869
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8870
(yyval.interm.type).basicType = EbtDouble;
8871
(yyval.interm.type).setMatrix(3, 4);
8872
}
8873
#line 8874 "MachineIndependent/glslang_tab.cpp"
8874
break;
8875
8876
case 343: /* type_specifier_nonarray: F64MAT4X2 */
8877
#line 2505 "MachineIndependent/glslang.y"
8878
{
8879
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8880
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881
(yyval.interm.type).basicType = EbtDouble;
8882
(yyval.interm.type).setMatrix(4, 2);
8883
}
8884
#line 8885 "MachineIndependent/glslang_tab.cpp"
8885
break;
8886
8887
case 344: /* type_specifier_nonarray: F64MAT4X3 */
8888
#line 2511 "MachineIndependent/glslang.y"
8889
{
8890
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8891
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8892
(yyval.interm.type).basicType = EbtDouble;
8893
(yyval.interm.type).setMatrix(4, 3);
8894
}
8895
#line 8896 "MachineIndependent/glslang_tab.cpp"
8896
break;
8897
8898
case 345: /* type_specifier_nonarray: F64MAT4X4 */
8899
#line 2517 "MachineIndependent/glslang.y"
8900
{
8901
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8902
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8903
(yyval.interm.type).basicType = EbtDouble;
8904
(yyval.interm.type).setMatrix(4, 4);
8905
}
8906
#line 8907 "MachineIndependent/glslang_tab.cpp"
8907
break;
8908
8909
case 346: /* type_specifier_nonarray: ACCSTRUCTNV */
8910
#line 2523 "MachineIndependent/glslang.y"
8911
{
8912
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8913
(yyval.interm.type).basicType = EbtAccStruct;
8914
}
8915
#line 8916 "MachineIndependent/glslang_tab.cpp"
8916
break;
8917
8918
case 347: /* type_specifier_nonarray: ACCSTRUCTEXT */
8919
#line 2527 "MachineIndependent/glslang.y"
8920
{
8921
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8922
(yyval.interm.type).basicType = EbtAccStruct;
8923
}
8924
#line 8925 "MachineIndependent/glslang_tab.cpp"
8925
break;
8926
8927
case 348: /* type_specifier_nonarray: RAYQUERYEXT */
8928
#line 2531 "MachineIndependent/glslang.y"
8929
{
8930
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8931
(yyval.interm.type).basicType = EbtRayQuery;
8932
}
8933
#line 8934 "MachineIndependent/glslang_tab.cpp"
8934
break;
8935
8936
case 349: /* type_specifier_nonarray: ATOMIC_UINT */
8937
#line 2535 "MachineIndependent/glslang.y"
8938
{
8939
parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
8940
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8941
(yyval.interm.type).basicType = EbtAtomicUint;
8942
}
8943
#line 8944 "MachineIndependent/glslang_tab.cpp"
8944
break;
8945
8946
case 350: /* type_specifier_nonarray: SAMPLER1D */
8947
#line 2540 "MachineIndependent/glslang.y"
8948
{
8949
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8950
(yyval.interm.type).basicType = EbtSampler;
8951
(yyval.interm.type).sampler.set(EbtFloat, Esd1D);
8952
}
8953
#line 8954 "MachineIndependent/glslang_tab.cpp"
8954
break;
8955
8956
case 351: /* type_specifier_nonarray: SAMPLER2D */
8957
#line 2545 "MachineIndependent/glslang.y"
8958
{
8959
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8960
(yyval.interm.type).basicType = EbtSampler;
8961
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
8962
}
8963
#line 8964 "MachineIndependent/glslang_tab.cpp"
8964
break;
8965
8966
case 352: /* type_specifier_nonarray: SAMPLER3D */
8967
#line 2550 "MachineIndependent/glslang.y"
8968
{
8969
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8970
(yyval.interm.type).basicType = EbtSampler;
8971
(yyval.interm.type).sampler.set(EbtFloat, Esd3D);
8972
}
8973
#line 8974 "MachineIndependent/glslang_tab.cpp"
8974
break;
8975
8976
case 353: /* type_specifier_nonarray: SAMPLERCUBE */
8977
#line 2555 "MachineIndependent/glslang.y"
8978
{
8979
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8980
(yyval.interm.type).basicType = EbtSampler;
8981
(yyval.interm.type).sampler.set(EbtFloat, EsdCube);
8982
}
8983
#line 8984 "MachineIndependent/glslang_tab.cpp"
8984
break;
8985
8986
case 354: /* type_specifier_nonarray: SAMPLER2DSHADOW */
8987
#line 2560 "MachineIndependent/glslang.y"
8988
{
8989
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8990
(yyval.interm.type).basicType = EbtSampler;
8991
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
8992
}
8993
#line 8994 "MachineIndependent/glslang_tab.cpp"
8994
break;
8995
8996
case 355: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
8997
#line 2565 "MachineIndependent/glslang.y"
8998
{
8999
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000
(yyval.interm.type).basicType = EbtSampler;
9001
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
9002
}
9003
#line 9004 "MachineIndependent/glslang_tab.cpp"
9004
break;
9005
9006
case 356: /* type_specifier_nonarray: SAMPLER2DARRAY */
9007
#line 2570 "MachineIndependent/glslang.y"
9008
{
9009
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9010
(yyval.interm.type).basicType = EbtSampler;
9011
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
9012
}
9013
#line 9014 "MachineIndependent/glslang_tab.cpp"
9014
break;
9015
9016
case 357: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
9017
#line 2575 "MachineIndependent/glslang.y"
9018
{
9019
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9020
(yyval.interm.type).basicType = EbtSampler;
9021
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
9022
}
9023
#line 9024 "MachineIndependent/glslang_tab.cpp"
9024
break;
9025
9026
case 358: /* type_specifier_nonarray: SAMPLER1DSHADOW */
9027
#line 2580 "MachineIndependent/glslang.y"
9028
{
9029
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9030
(yyval.interm.type).basicType = EbtSampler;
9031
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
9032
}
9033
#line 9034 "MachineIndependent/glslang_tab.cpp"
9034
break;
9035
9036
case 359: /* type_specifier_nonarray: SAMPLER1DARRAY */
9037
#line 2585 "MachineIndependent/glslang.y"
9038
{
9039
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9040
(yyval.interm.type).basicType = EbtSampler;
9041
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
9042
}
9043
#line 9044 "MachineIndependent/glslang_tab.cpp"
9044
break;
9045
9046
case 360: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
9047
#line 2590 "MachineIndependent/glslang.y"
9048
{
9049
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9050
(yyval.interm.type).basicType = EbtSampler;
9051
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
9052
}
9053
#line 9054 "MachineIndependent/glslang_tab.cpp"
9054
break;
9055
9056
case 361: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
9057
#line 2595 "MachineIndependent/glslang.y"
9058
{
9059
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9060
(yyval.interm.type).basicType = EbtSampler;
9061
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
9062
}
9063
#line 9064 "MachineIndependent/glslang_tab.cpp"
9064
break;
9065
9066
case 362: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
9067
#line 2600 "MachineIndependent/glslang.y"
9068
{
9069
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9070
(yyval.interm.type).basicType = EbtSampler;
9071
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
9072
}
9073
#line 9074 "MachineIndependent/glslang_tab.cpp"
9074
break;
9075
9076
case 363: /* type_specifier_nonarray: F16SAMPLER1D */
9077
#line 2605 "MachineIndependent/glslang.y"
9078
{
9079
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9080
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9081
(yyval.interm.type).basicType = EbtSampler;
9082
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
9083
}
9084
#line 9085 "MachineIndependent/glslang_tab.cpp"
9085
break;
9086
9087
case 364: /* type_specifier_nonarray: F16SAMPLER2D */
9088
#line 2611 "MachineIndependent/glslang.y"
9089
{
9090
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9091
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9092
(yyval.interm.type).basicType = EbtSampler;
9093
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
9094
}
9095
#line 9096 "MachineIndependent/glslang_tab.cpp"
9096
break;
9097
9098
case 365: /* type_specifier_nonarray: F16SAMPLER3D */
9099
#line 2617 "MachineIndependent/glslang.y"
9100
{
9101
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9102
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9103
(yyval.interm.type).basicType = EbtSampler;
9104
(yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
9105
}
9106
#line 9107 "MachineIndependent/glslang_tab.cpp"
9107
break;
9108
9109
case 366: /* type_specifier_nonarray: F16SAMPLERCUBE */
9110
#line 2623 "MachineIndependent/glslang.y"
9111
{
9112
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9113
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9114
(yyval.interm.type).basicType = EbtSampler;
9115
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
9116
}
9117
#line 9118 "MachineIndependent/glslang_tab.cpp"
9118
break;
9119
9120
case 367: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
9121
#line 2629 "MachineIndependent/glslang.y"
9122
{
9123
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9124
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9125
(yyval.interm.type).basicType = EbtSampler;
9126
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
9127
}
9128
#line 9129 "MachineIndependent/glslang_tab.cpp"
9129
break;
9130
9131
case 368: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
9132
#line 2635 "MachineIndependent/glslang.y"
9133
{
9134
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9135
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9136
(yyval.interm.type).basicType = EbtSampler;
9137
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
9138
}
9139
#line 9140 "MachineIndependent/glslang_tab.cpp"
9140
break;
9141
9142
case 369: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
9143
#line 2641 "MachineIndependent/glslang.y"
9144
{
9145
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9146
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9147
(yyval.interm.type).basicType = EbtSampler;
9148
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
9149
}
9150
#line 9151 "MachineIndependent/glslang_tab.cpp"
9151
break;
9152
9153
case 370: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
9154
#line 2647 "MachineIndependent/glslang.y"
9155
{
9156
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9157
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9158
(yyval.interm.type).basicType = EbtSampler;
9159
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
9160
}
9161
#line 9162 "MachineIndependent/glslang_tab.cpp"
9162
break;
9163
9164
case 371: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
9165
#line 2653 "MachineIndependent/glslang.y"
9166
{
9167
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9168
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9169
(yyval.interm.type).basicType = EbtSampler;
9170
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
9171
}
9172
#line 9173 "MachineIndependent/glslang_tab.cpp"
9173
break;
9174
9175
case 372: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
9176
#line 2659 "MachineIndependent/glslang.y"
9177
{
9178
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9179
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9180
(yyval.interm.type).basicType = EbtSampler;
9181
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
9182
}
9183
#line 9184 "MachineIndependent/glslang_tab.cpp"
9184
break;
9185
9186
case 373: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
9187
#line 2665 "MachineIndependent/glslang.y"
9188
{
9189
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9190
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9191
(yyval.interm.type).basicType = EbtSampler;
9192
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
9193
}
9194
#line 9195 "MachineIndependent/glslang_tab.cpp"
9195
break;
9196
9197
case 374: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
9198
#line 2671 "MachineIndependent/glslang.y"
9199
{
9200
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9201
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9202
(yyval.interm.type).basicType = EbtSampler;
9203
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
9204
}
9205
#line 9206 "MachineIndependent/glslang_tab.cpp"
9206
break;
9207
9208
case 375: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
9209
#line 2677 "MachineIndependent/glslang.y"
9210
{
9211
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9212
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9213
(yyval.interm.type).basicType = EbtSampler;
9214
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
9215
}
9216
#line 9217 "MachineIndependent/glslang_tab.cpp"
9217
break;
9218
9219
case 376: /* type_specifier_nonarray: ISAMPLER1D */
9220
#line 2683 "MachineIndependent/glslang.y"
9221
{
9222
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9223
(yyval.interm.type).basicType = EbtSampler;
9224
(yyval.interm.type).sampler.set(EbtInt, Esd1D);
9225
}
9226
#line 9227 "MachineIndependent/glslang_tab.cpp"
9227
break;
9228
9229
case 377: /* type_specifier_nonarray: ISAMPLER2D */
9230
#line 2688 "MachineIndependent/glslang.y"
9231
{
9232
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9233
(yyval.interm.type).basicType = EbtSampler;
9234
(yyval.interm.type).sampler.set(EbtInt, Esd2D);
9235
}
9236
#line 9237 "MachineIndependent/glslang_tab.cpp"
9237
break;
9238
9239
case 378: /* type_specifier_nonarray: ISAMPLER3D */
9240
#line 2693 "MachineIndependent/glslang.y"
9241
{
9242
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9243
(yyval.interm.type).basicType = EbtSampler;
9244
(yyval.interm.type).sampler.set(EbtInt, Esd3D);
9245
}
9246
#line 9247 "MachineIndependent/glslang_tab.cpp"
9247
break;
9248
9249
case 379: /* type_specifier_nonarray: ISAMPLERCUBE */
9250
#line 2698 "MachineIndependent/glslang.y"
9251
{
9252
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9253
(yyval.interm.type).basicType = EbtSampler;
9254
(yyval.interm.type).sampler.set(EbtInt, EsdCube);
9255
}
9256
#line 9257 "MachineIndependent/glslang_tab.cpp"
9257
break;
9258
9259
case 380: /* type_specifier_nonarray: ISAMPLER2DARRAY */
9260
#line 2703 "MachineIndependent/glslang.y"
9261
{
9262
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9263
(yyval.interm.type).basicType = EbtSampler;
9264
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
9265
}
9266
#line 9267 "MachineIndependent/glslang_tab.cpp"
9267
break;
9268
9269
case 381: /* type_specifier_nonarray: USAMPLER2D */
9270
#line 2708 "MachineIndependent/glslang.y"
9271
{
9272
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9273
(yyval.interm.type).basicType = EbtSampler;
9274
(yyval.interm.type).sampler.set(EbtUint, Esd2D);
9275
}
9276
#line 9277 "MachineIndependent/glslang_tab.cpp"
9277
break;
9278
9279
case 382: /* type_specifier_nonarray: USAMPLER3D */
9280
#line 2713 "MachineIndependent/glslang.y"
9281
{
9282
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9283
(yyval.interm.type).basicType = EbtSampler;
9284
(yyval.interm.type).sampler.set(EbtUint, Esd3D);
9285
}
9286
#line 9287 "MachineIndependent/glslang_tab.cpp"
9287
break;
9288
9289
case 383: /* type_specifier_nonarray: USAMPLERCUBE */
9290
#line 2718 "MachineIndependent/glslang.y"
9291
{
9292
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9293
(yyval.interm.type).basicType = EbtSampler;
9294
(yyval.interm.type).sampler.set(EbtUint, EsdCube);
9295
}
9296
#line 9297 "MachineIndependent/glslang_tab.cpp"
9297
break;
9298
9299
case 384: /* type_specifier_nonarray: ISAMPLER1DARRAY */
9300
#line 2723 "MachineIndependent/glslang.y"
9301
{
9302
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9303
(yyval.interm.type).basicType = EbtSampler;
9304
(yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
9305
}
9306
#line 9307 "MachineIndependent/glslang_tab.cpp"
9307
break;
9308
9309
case 385: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
9310
#line 2728 "MachineIndependent/glslang.y"
9311
{
9312
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9313
(yyval.interm.type).basicType = EbtSampler;
9314
(yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
9315
}
9316
#line 9317 "MachineIndependent/glslang_tab.cpp"
9317
break;
9318
9319
case 386: /* type_specifier_nonarray: USAMPLER1D */
9320
#line 2733 "MachineIndependent/glslang.y"
9321
{
9322
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9323
(yyval.interm.type).basicType = EbtSampler;
9324
(yyval.interm.type).sampler.set(EbtUint, Esd1D);
9325
}
9326
#line 9327 "MachineIndependent/glslang_tab.cpp"
9327
break;
9328
9329
case 387: /* type_specifier_nonarray: USAMPLER1DARRAY */
9330
#line 2738 "MachineIndependent/glslang.y"
9331
{
9332
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9333
(yyval.interm.type).basicType = EbtSampler;
9334
(yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
9335
}
9336
#line 9337 "MachineIndependent/glslang_tab.cpp"
9337
break;
9338
9339
case 388: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
9340
#line 2743 "MachineIndependent/glslang.y"
9341
{
9342
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9343
(yyval.interm.type).basicType = EbtSampler;
9344
(yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
9345
}
9346
#line 9347 "MachineIndependent/glslang_tab.cpp"
9347
break;
9348
9349
case 389: /* type_specifier_nonarray: TEXTURECUBEARRAY */
9350
#line 2748 "MachineIndependent/glslang.y"
9351
{
9352
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9353
(yyval.interm.type).basicType = EbtSampler;
9354
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
9355
}
9356
#line 9357 "MachineIndependent/glslang_tab.cpp"
9357
break;
9358
9359
case 390: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
9360
#line 2753 "MachineIndependent/glslang.y"
9361
{
9362
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9363
(yyval.interm.type).basicType = EbtSampler;
9364
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
9365
}
9366
#line 9367 "MachineIndependent/glslang_tab.cpp"
9367
break;
9368
9369
case 391: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
9370
#line 2758 "MachineIndependent/glslang.y"
9371
{
9372
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9373
(yyval.interm.type).basicType = EbtSampler;
9374
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
9375
}
9376
#line 9377 "MachineIndependent/glslang_tab.cpp"
9377
break;
9378
9379
case 392: /* type_specifier_nonarray: USAMPLER2DARRAY */
9380
#line 2763 "MachineIndependent/glslang.y"
9381
{
9382
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9383
(yyval.interm.type).basicType = EbtSampler;
9384
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
9385
}
9386
#line 9387 "MachineIndependent/glslang_tab.cpp"
9387
break;
9388
9389
case 393: /* type_specifier_nonarray: TEXTURE2D */
9390
#line 2768 "MachineIndependent/glslang.y"
9391
{
9392
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9393
(yyval.interm.type).basicType = EbtSampler;
9394
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
9395
}
9396
#line 9397 "MachineIndependent/glslang_tab.cpp"
9397
break;
9398
9399
case 394: /* type_specifier_nonarray: TEXTURE3D */
9400
#line 2773 "MachineIndependent/glslang.y"
9401
{
9402
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9403
(yyval.interm.type).basicType = EbtSampler;
9404
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
9405
}
9406
#line 9407 "MachineIndependent/glslang_tab.cpp"
9407
break;
9408
9409
case 395: /* type_specifier_nonarray: TEXTURE2DARRAY */
9410
#line 2778 "MachineIndependent/glslang.y"
9411
{
9412
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9413
(yyval.interm.type).basicType = EbtSampler;
9414
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
9415
}
9416
#line 9417 "MachineIndependent/glslang_tab.cpp"
9417
break;
9418
9419
case 396: /* type_specifier_nonarray: TEXTURECUBE */
9420
#line 2783 "MachineIndependent/glslang.y"
9421
{
9422
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9423
(yyval.interm.type).basicType = EbtSampler;
9424
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
9425
}
9426
#line 9427 "MachineIndependent/glslang_tab.cpp"
9427
break;
9428
9429
case 397: /* type_specifier_nonarray: ITEXTURE2D */
9430
#line 2788 "MachineIndependent/glslang.y"
9431
{
9432
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9433
(yyval.interm.type).basicType = EbtSampler;
9434
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
9435
}
9436
#line 9437 "MachineIndependent/glslang_tab.cpp"
9437
break;
9438
9439
case 398: /* type_specifier_nonarray: ITEXTURE3D */
9440
#line 2793 "MachineIndependent/glslang.y"
9441
{
9442
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9443
(yyval.interm.type).basicType = EbtSampler;
9444
(yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
9445
}
9446
#line 9447 "MachineIndependent/glslang_tab.cpp"
9447
break;
9448
9449
case 399: /* type_specifier_nonarray: ITEXTURECUBE */
9450
#line 2798 "MachineIndependent/glslang.y"
9451
{
9452
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9453
(yyval.interm.type).basicType = EbtSampler;
9454
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
9455
}
9456
#line 9457 "MachineIndependent/glslang_tab.cpp"
9457
break;
9458
9459
case 400: /* type_specifier_nonarray: ITEXTURE2DARRAY */
9460
#line 2803 "MachineIndependent/glslang.y"
9461
{
9462
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9463
(yyval.interm.type).basicType = EbtSampler;
9464
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
9465
}
9466
#line 9467 "MachineIndependent/glslang_tab.cpp"
9467
break;
9468
9469
case 401: /* type_specifier_nonarray: UTEXTURE2D */
9470
#line 2808 "MachineIndependent/glslang.y"
9471
{
9472
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9473
(yyval.interm.type).basicType = EbtSampler;
9474
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
9475
}
9476
#line 9477 "MachineIndependent/glslang_tab.cpp"
9477
break;
9478
9479
case 402: /* type_specifier_nonarray: UTEXTURE3D */
9480
#line 2813 "MachineIndependent/glslang.y"
9481
{
9482
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9483
(yyval.interm.type).basicType = EbtSampler;
9484
(yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
9485
}
9486
#line 9487 "MachineIndependent/glslang_tab.cpp"
9487
break;
9488
9489
case 403: /* type_specifier_nonarray: UTEXTURECUBE */
9490
#line 2818 "MachineIndependent/glslang.y"
9491
{
9492
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9493
(yyval.interm.type).basicType = EbtSampler;
9494
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
9495
}
9496
#line 9497 "MachineIndependent/glslang_tab.cpp"
9497
break;
9498
9499
case 404: /* type_specifier_nonarray: UTEXTURE2DARRAY */
9500
#line 2823 "MachineIndependent/glslang.y"
9501
{
9502
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9503
(yyval.interm.type).basicType = EbtSampler;
9504
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
9505
}
9506
#line 9507 "MachineIndependent/glslang_tab.cpp"
9507
break;
9508
9509
case 405: /* type_specifier_nonarray: SAMPLER */
9510
#line 2828 "MachineIndependent/glslang.y"
9511
{
9512
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9513
(yyval.interm.type).basicType = EbtSampler;
9514
(yyval.interm.type).sampler.setPureSampler(false);
9515
}
9516
#line 9517 "MachineIndependent/glslang_tab.cpp"
9517
break;
9518
9519
case 406: /* type_specifier_nonarray: SAMPLERSHADOW */
9520
#line 2833 "MachineIndependent/glslang.y"
9521
{
9522
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9523
(yyval.interm.type).basicType = EbtSampler;
9524
(yyval.interm.type).sampler.setPureSampler(true);
9525
}
9526
#line 9527 "MachineIndependent/glslang_tab.cpp"
9527
break;
9528
9529
case 407: /* type_specifier_nonarray: SAMPLER2DRECT */
9530
#line 2838 "MachineIndependent/glslang.y"
9531
{
9532
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9533
(yyval.interm.type).basicType = EbtSampler;
9534
(yyval.interm.type).sampler.set(EbtFloat, EsdRect);
9535
}
9536
#line 9537 "MachineIndependent/glslang_tab.cpp"
9537
break;
9538
9539
case 408: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
9540
#line 2843 "MachineIndependent/glslang.y"
9541
{
9542
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9543
(yyval.interm.type).basicType = EbtSampler;
9544
(yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
9545
}
9546
#line 9547 "MachineIndependent/glslang_tab.cpp"
9547
break;
9548
9549
case 409: /* type_specifier_nonarray: F16SAMPLER2DRECT */
9550
#line 2848 "MachineIndependent/glslang.y"
9551
{
9552
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9553
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9554
(yyval.interm.type).basicType = EbtSampler;
9555
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
9556
}
9557
#line 9558 "MachineIndependent/glslang_tab.cpp"
9558
break;
9559
9560
case 410: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
9561
#line 2854 "MachineIndependent/glslang.y"
9562
{
9563
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9564
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9565
(yyval.interm.type).basicType = EbtSampler;
9566
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
9567
}
9568
#line 9569 "MachineIndependent/glslang_tab.cpp"
9569
break;
9570
9571
case 411: /* type_specifier_nonarray: ISAMPLER2DRECT */
9572
#line 2860 "MachineIndependent/glslang.y"
9573
{
9574
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9575
(yyval.interm.type).basicType = EbtSampler;
9576
(yyval.interm.type).sampler.set(EbtInt, EsdRect);
9577
}
9578
#line 9579 "MachineIndependent/glslang_tab.cpp"
9579
break;
9580
9581
case 412: /* type_specifier_nonarray: USAMPLER2DRECT */
9582
#line 2865 "MachineIndependent/glslang.y"
9583
{
9584
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9585
(yyval.interm.type).basicType = EbtSampler;
9586
(yyval.interm.type).sampler.set(EbtUint, EsdRect);
9587
}
9588
#line 9589 "MachineIndependent/glslang_tab.cpp"
9589
break;
9590
9591
case 413: /* type_specifier_nonarray: SAMPLERBUFFER */
9592
#line 2870 "MachineIndependent/glslang.y"
9593
{
9594
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9595
(yyval.interm.type).basicType = EbtSampler;
9596
(yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
9597
}
9598
#line 9599 "MachineIndependent/glslang_tab.cpp"
9599
break;
9600
9601
case 414: /* type_specifier_nonarray: F16SAMPLERBUFFER */
9602
#line 2875 "MachineIndependent/glslang.y"
9603
{
9604
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9605
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9606
(yyval.interm.type).basicType = EbtSampler;
9607
(yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
9608
}
9609
#line 9610 "MachineIndependent/glslang_tab.cpp"
9610
break;
9611
9612
case 415: /* type_specifier_nonarray: ISAMPLERBUFFER */
9613
#line 2881 "MachineIndependent/glslang.y"
9614
{
9615
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9616
(yyval.interm.type).basicType = EbtSampler;
9617
(yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
9618
}
9619
#line 9620 "MachineIndependent/glslang_tab.cpp"
9620
break;
9621
9622
case 416: /* type_specifier_nonarray: USAMPLERBUFFER */
9623
#line 2886 "MachineIndependent/glslang.y"
9624
{
9625
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9626
(yyval.interm.type).basicType = EbtSampler;
9627
(yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
9628
}
9629
#line 9630 "MachineIndependent/glslang_tab.cpp"
9630
break;
9631
9632
case 417: /* type_specifier_nonarray: SAMPLER2DMS */
9633
#line 2891 "MachineIndependent/glslang.y"
9634
{
9635
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9636
(yyval.interm.type).basicType = EbtSampler;
9637
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
9638
}
9639
#line 9640 "MachineIndependent/glslang_tab.cpp"
9640
break;
9641
9642
case 418: /* type_specifier_nonarray: F16SAMPLER2DMS */
9643
#line 2896 "MachineIndependent/glslang.y"
9644
{
9645
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9646
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9647
(yyval.interm.type).basicType = EbtSampler;
9648
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
9649
}
9650
#line 9651 "MachineIndependent/glslang_tab.cpp"
9651
break;
9652
9653
case 419: /* type_specifier_nonarray: ISAMPLER2DMS */
9654
#line 2902 "MachineIndependent/glslang.y"
9655
{
9656
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9657
(yyval.interm.type).basicType = EbtSampler;
9658
(yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
9659
}
9660
#line 9661 "MachineIndependent/glslang_tab.cpp"
9661
break;
9662
9663
case 420: /* type_specifier_nonarray: USAMPLER2DMS */
9664
#line 2907 "MachineIndependent/glslang.y"
9665
{
9666
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9667
(yyval.interm.type).basicType = EbtSampler;
9668
(yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
9669
}
9670
#line 9671 "MachineIndependent/glslang_tab.cpp"
9671
break;
9672
9673
case 421: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
9674
#line 2912 "MachineIndependent/glslang.y"
9675
{
9676
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9677
(yyval.interm.type).basicType = EbtSampler;
9678
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
9679
}
9680
#line 9681 "MachineIndependent/glslang_tab.cpp"
9681
break;
9682
9683
case 422: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
9684
#line 2917 "MachineIndependent/glslang.y"
9685
{
9686
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9687
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9688
(yyval.interm.type).basicType = EbtSampler;
9689
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
9690
}
9691
#line 9692 "MachineIndependent/glslang_tab.cpp"
9692
break;
9693
9694
case 423: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
9695
#line 2923 "MachineIndependent/glslang.y"
9696
{
9697
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9698
(yyval.interm.type).basicType = EbtSampler;
9699
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
9700
}
9701
#line 9702 "MachineIndependent/glslang_tab.cpp"
9702
break;
9703
9704
case 424: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
9705
#line 2928 "MachineIndependent/glslang.y"
9706
{
9707
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9708
(yyval.interm.type).basicType = EbtSampler;
9709
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
9710
}
9711
#line 9712 "MachineIndependent/glslang_tab.cpp"
9712
break;
9713
9714
case 425: /* type_specifier_nonarray: TEXTURE1D */
9715
#line 2933 "MachineIndependent/glslang.y"
9716
{
9717
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9718
(yyval.interm.type).basicType = EbtSampler;
9719
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
9720
}
9721
#line 9722 "MachineIndependent/glslang_tab.cpp"
9722
break;
9723
9724
case 426: /* type_specifier_nonarray: F16TEXTURE1D */
9725
#line 2938 "MachineIndependent/glslang.y"
9726
{
9727
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9728
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9729
(yyval.interm.type).basicType = EbtSampler;
9730
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
9731
}
9732
#line 9733 "MachineIndependent/glslang_tab.cpp"
9733
break;
9734
9735
case 427: /* type_specifier_nonarray: F16TEXTURE2D */
9736
#line 2944 "MachineIndependent/glslang.y"
9737
{
9738
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9739
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9740
(yyval.interm.type).basicType = EbtSampler;
9741
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
9742
}
9743
#line 9744 "MachineIndependent/glslang_tab.cpp"
9744
break;
9745
9746
case 428: /* type_specifier_nonarray: F16TEXTURE3D */
9747
#line 2950 "MachineIndependent/glslang.y"
9748
{
9749
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9750
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9751
(yyval.interm.type).basicType = EbtSampler;
9752
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
9753
}
9754
#line 9755 "MachineIndependent/glslang_tab.cpp"
9755
break;
9756
9757
case 429: /* type_specifier_nonarray: F16TEXTURECUBE */
9758
#line 2956 "MachineIndependent/glslang.y"
9759
{
9760
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9761
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9762
(yyval.interm.type).basicType = EbtSampler;
9763
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
9764
}
9765
#line 9766 "MachineIndependent/glslang_tab.cpp"
9766
break;
9767
9768
case 430: /* type_specifier_nonarray: TEXTURE1DARRAY */
9769
#line 2962 "MachineIndependent/glslang.y"
9770
{
9771
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9772
(yyval.interm.type).basicType = EbtSampler;
9773
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
9774
}
9775
#line 9776 "MachineIndependent/glslang_tab.cpp"
9776
break;
9777
9778
case 431: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
9779
#line 2967 "MachineIndependent/glslang.y"
9780
{
9781
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9782
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9783
(yyval.interm.type).basicType = EbtSampler;
9784
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
9785
}
9786
#line 9787 "MachineIndependent/glslang_tab.cpp"
9787
break;
9788
9789
case 432: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
9790
#line 2973 "MachineIndependent/glslang.y"
9791
{
9792
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9793
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9794
(yyval.interm.type).basicType = EbtSampler;
9795
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
9796
}
9797
#line 9798 "MachineIndependent/glslang_tab.cpp"
9798
break;
9799
9800
case 433: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
9801
#line 2979 "MachineIndependent/glslang.y"
9802
{
9803
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9804
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9805
(yyval.interm.type).basicType = EbtSampler;
9806
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
9807
}
9808
#line 9809 "MachineIndependent/glslang_tab.cpp"
9809
break;
9810
9811
case 434: /* type_specifier_nonarray: ITEXTURE1D */
9812
#line 2985 "MachineIndependent/glslang.y"
9813
{
9814
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9815
(yyval.interm.type).basicType = EbtSampler;
9816
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
9817
}
9818
#line 9819 "MachineIndependent/glslang_tab.cpp"
9819
break;
9820
9821
case 435: /* type_specifier_nonarray: ITEXTURE1DARRAY */
9822
#line 2990 "MachineIndependent/glslang.y"
9823
{
9824
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9825
(yyval.interm.type).basicType = EbtSampler;
9826
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
9827
}
9828
#line 9829 "MachineIndependent/glslang_tab.cpp"
9829
break;
9830
9831
case 436: /* type_specifier_nonarray: UTEXTURE1D */
9832
#line 2995 "MachineIndependent/glslang.y"
9833
{
9834
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9835
(yyval.interm.type).basicType = EbtSampler;
9836
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
9837
}
9838
#line 9839 "MachineIndependent/glslang_tab.cpp"
9839
break;
9840
9841
case 437: /* type_specifier_nonarray: UTEXTURE1DARRAY */
9842
#line 3000 "MachineIndependent/glslang.y"
9843
{
9844
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9845
(yyval.interm.type).basicType = EbtSampler;
9846
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
9847
}
9848
#line 9849 "MachineIndependent/glslang_tab.cpp"
9849
break;
9850
9851
case 438: /* type_specifier_nonarray: TEXTURE2DRECT */
9852
#line 3005 "MachineIndependent/glslang.y"
9853
{
9854
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9855
(yyval.interm.type).basicType = EbtSampler;
9856
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
9857
}
9858
#line 9859 "MachineIndependent/glslang_tab.cpp"
9859
break;
9860
9861
case 439: /* type_specifier_nonarray: F16TEXTURE2DRECT */
9862
#line 3010 "MachineIndependent/glslang.y"
9863
{
9864
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9865
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9866
(yyval.interm.type).basicType = EbtSampler;
9867
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
9868
}
9869
#line 9870 "MachineIndependent/glslang_tab.cpp"
9870
break;
9871
9872
case 440: /* type_specifier_nonarray: ITEXTURE2DRECT */
9873
#line 3016 "MachineIndependent/glslang.y"
9874
{
9875
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9876
(yyval.interm.type).basicType = EbtSampler;
9877
(yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
9878
}
9879
#line 9880 "MachineIndependent/glslang_tab.cpp"
9880
break;
9881
9882
case 441: /* type_specifier_nonarray: UTEXTURE2DRECT */
9883
#line 3021 "MachineIndependent/glslang.y"
9884
{
9885
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9886
(yyval.interm.type).basicType = EbtSampler;
9887
(yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
9888
}
9889
#line 9890 "MachineIndependent/glslang_tab.cpp"
9890
break;
9891
9892
case 442: /* type_specifier_nonarray: TEXTUREBUFFER */
9893
#line 3026 "MachineIndependent/glslang.y"
9894
{
9895
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9896
(yyval.interm.type).basicType = EbtSampler;
9897
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
9898
}
9899
#line 9900 "MachineIndependent/glslang_tab.cpp"
9900
break;
9901
9902
case 443: /* type_specifier_nonarray: F16TEXTUREBUFFER */
9903
#line 3031 "MachineIndependent/glslang.y"
9904
{
9905
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9906
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9907
(yyval.interm.type).basicType = EbtSampler;
9908
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
9909
}
9910
#line 9911 "MachineIndependent/glslang_tab.cpp"
9911
break;
9912
9913
case 444: /* type_specifier_nonarray: ITEXTUREBUFFER */
9914
#line 3037 "MachineIndependent/glslang.y"
9915
{
9916
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9917
(yyval.interm.type).basicType = EbtSampler;
9918
(yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
9919
}
9920
#line 9921 "MachineIndependent/glslang_tab.cpp"
9921
break;
9922
9923
case 445: /* type_specifier_nonarray: UTEXTUREBUFFER */
9924
#line 3042 "MachineIndependent/glslang.y"
9925
{
9926
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9927
(yyval.interm.type).basicType = EbtSampler;
9928
(yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
9929
}
9930
#line 9931 "MachineIndependent/glslang_tab.cpp"
9931
break;
9932
9933
case 446: /* type_specifier_nonarray: TEXTURE2DMS */
9934
#line 3047 "MachineIndependent/glslang.y"
9935
{
9936
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9937
(yyval.interm.type).basicType = EbtSampler;
9938
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
9939
}
9940
#line 9941 "MachineIndependent/glslang_tab.cpp"
9941
break;
9942
9943
case 447: /* type_specifier_nonarray: F16TEXTURE2DMS */
9944
#line 3052 "MachineIndependent/glslang.y"
9945
{
9946
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9947
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9948
(yyval.interm.type).basicType = EbtSampler;
9949
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
9950
}
9951
#line 9952 "MachineIndependent/glslang_tab.cpp"
9952
break;
9953
9954
case 448: /* type_specifier_nonarray: ITEXTURE2DMS */
9955
#line 3058 "MachineIndependent/glslang.y"
9956
{
9957
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9958
(yyval.interm.type).basicType = EbtSampler;
9959
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
9960
}
9961
#line 9962 "MachineIndependent/glslang_tab.cpp"
9962
break;
9963
9964
case 449: /* type_specifier_nonarray: UTEXTURE2DMS */
9965
#line 3063 "MachineIndependent/glslang.y"
9966
{
9967
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9968
(yyval.interm.type).basicType = EbtSampler;
9969
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
9970
}
9971
#line 9972 "MachineIndependent/glslang_tab.cpp"
9972
break;
9973
9974
case 450: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
9975
#line 3068 "MachineIndependent/glslang.y"
9976
{
9977
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9978
(yyval.interm.type).basicType = EbtSampler;
9979
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
9980
}
9981
#line 9982 "MachineIndependent/glslang_tab.cpp"
9982
break;
9983
9984
case 451: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
9985
#line 3073 "MachineIndependent/glslang.y"
9986
{
9987
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9988
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9989
(yyval.interm.type).basicType = EbtSampler;
9990
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
9991
}
9992
#line 9993 "MachineIndependent/glslang_tab.cpp"
9993
break;
9994
9995
case 452: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
9996
#line 3079 "MachineIndependent/glslang.y"
9997
{
9998
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9999
(yyval.interm.type).basicType = EbtSampler;
10000
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
10001
}
10002
#line 10003 "MachineIndependent/glslang_tab.cpp"
10003
break;
10004
10005
case 453: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
10006
#line 3084 "MachineIndependent/glslang.y"
10007
{
10008
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10009
(yyval.interm.type).basicType = EbtSampler;
10010
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
10011
}
10012
#line 10013 "MachineIndependent/glslang_tab.cpp"
10013
break;
10014
10015
case 454: /* type_specifier_nonarray: IMAGE1D */
10016
#line 3089 "MachineIndependent/glslang.y"
10017
{
10018
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10019
(yyval.interm.type).basicType = EbtSampler;
10020
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
10021
}
10022
#line 10023 "MachineIndependent/glslang_tab.cpp"
10023
break;
10024
10025
case 455: /* type_specifier_nonarray: F16IMAGE1D */
10026
#line 3094 "MachineIndependent/glslang.y"
10027
{
10028
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10029
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10030
(yyval.interm.type).basicType = EbtSampler;
10031
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
10032
}
10033
#line 10034 "MachineIndependent/glslang_tab.cpp"
10034
break;
10035
10036
case 456: /* type_specifier_nonarray: IIMAGE1D */
10037
#line 3100 "MachineIndependent/glslang.y"
10038
{
10039
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10040
(yyval.interm.type).basicType = EbtSampler;
10041
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
10042
}
10043
#line 10044 "MachineIndependent/glslang_tab.cpp"
10044
break;
10045
10046
case 457: /* type_specifier_nonarray: UIMAGE1D */
10047
#line 3105 "MachineIndependent/glslang.y"
10048
{
10049
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10050
(yyval.interm.type).basicType = EbtSampler;
10051
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
10052
}
10053
#line 10054 "MachineIndependent/glslang_tab.cpp"
10054
break;
10055
10056
case 458: /* type_specifier_nonarray: IMAGE2D */
10057
#line 3110 "MachineIndependent/glslang.y"
10058
{
10059
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10060
(yyval.interm.type).basicType = EbtSampler;
10061
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
10062
}
10063
#line 10064 "MachineIndependent/glslang_tab.cpp"
10064
break;
10065
10066
case 459: /* type_specifier_nonarray: F16IMAGE2D */
10067
#line 3115 "MachineIndependent/glslang.y"
10068
{
10069
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10070
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10071
(yyval.interm.type).basicType = EbtSampler;
10072
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
10073
}
10074
#line 10075 "MachineIndependent/glslang_tab.cpp"
10075
break;
10076
10077
case 460: /* type_specifier_nonarray: IIMAGE2D */
10078
#line 3121 "MachineIndependent/glslang.y"
10079
{
10080
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10081
(yyval.interm.type).basicType = EbtSampler;
10082
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
10083
}
10084
#line 10085 "MachineIndependent/glslang_tab.cpp"
10085
break;
10086
10087
case 461: /* type_specifier_nonarray: UIMAGE2D */
10088
#line 3126 "MachineIndependent/glslang.y"
10089
{
10090
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10091
(yyval.interm.type).basicType = EbtSampler;
10092
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
10093
}
10094
#line 10095 "MachineIndependent/glslang_tab.cpp"
10095
break;
10096
10097
case 462: /* type_specifier_nonarray: IMAGE3D */
10098
#line 3131 "MachineIndependent/glslang.y"
10099
{
10100
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10101
(yyval.interm.type).basicType = EbtSampler;
10102
(yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
10103
}
10104
#line 10105 "MachineIndependent/glslang_tab.cpp"
10105
break;
10106
10107
case 463: /* type_specifier_nonarray: F16IMAGE3D */
10108
#line 3136 "MachineIndependent/glslang.y"
10109
{
10110
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10111
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10112
(yyval.interm.type).basicType = EbtSampler;
10113
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
10114
}
10115
#line 10116 "MachineIndependent/glslang_tab.cpp"
10116
break;
10117
10118
case 464: /* type_specifier_nonarray: IIMAGE3D */
10119
#line 3142 "MachineIndependent/glslang.y"
10120
{
10121
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10122
(yyval.interm.type).basicType = EbtSampler;
10123
(yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
10124
}
10125
#line 10126 "MachineIndependent/glslang_tab.cpp"
10126
break;
10127
10128
case 465: /* type_specifier_nonarray: UIMAGE3D */
10129
#line 3147 "MachineIndependent/glslang.y"
10130
{
10131
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10132
(yyval.interm.type).basicType = EbtSampler;
10133
(yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
10134
}
10135
#line 10136 "MachineIndependent/glslang_tab.cpp"
10136
break;
10137
10138
case 466: /* type_specifier_nonarray: IMAGE2DRECT */
10139
#line 3152 "MachineIndependent/glslang.y"
10140
{
10141
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10142
(yyval.interm.type).basicType = EbtSampler;
10143
(yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
10144
}
10145
#line 10146 "MachineIndependent/glslang_tab.cpp"
10146
break;
10147
10148
case 467: /* type_specifier_nonarray: F16IMAGE2DRECT */
10149
#line 3157 "MachineIndependent/glslang.y"
10150
{
10151
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10152
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10153
(yyval.interm.type).basicType = EbtSampler;
10154
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
10155
}
10156
#line 10157 "MachineIndependent/glslang_tab.cpp"
10157
break;
10158
10159
case 468: /* type_specifier_nonarray: IIMAGE2DRECT */
10160
#line 3163 "MachineIndependent/glslang.y"
10161
{
10162
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10163
(yyval.interm.type).basicType = EbtSampler;
10164
(yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
10165
}
10166
#line 10167 "MachineIndependent/glslang_tab.cpp"
10167
break;
10168
10169
case 469: /* type_specifier_nonarray: UIMAGE2DRECT */
10170
#line 3168 "MachineIndependent/glslang.y"
10171
{
10172
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10173
(yyval.interm.type).basicType = EbtSampler;
10174
(yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
10175
}
10176
#line 10177 "MachineIndependent/glslang_tab.cpp"
10177
break;
10178
10179
case 470: /* type_specifier_nonarray: IMAGECUBE */
10180
#line 3173 "MachineIndependent/glslang.y"
10181
{
10182
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10183
(yyval.interm.type).basicType = EbtSampler;
10184
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
10185
}
10186
#line 10187 "MachineIndependent/glslang_tab.cpp"
10187
break;
10188
10189
case 471: /* type_specifier_nonarray: F16IMAGECUBE */
10190
#line 3178 "MachineIndependent/glslang.y"
10191
{
10192
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10193
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10194
(yyval.interm.type).basicType = EbtSampler;
10195
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
10196
}
10197
#line 10198 "MachineIndependent/glslang_tab.cpp"
10198
break;
10199
10200
case 472: /* type_specifier_nonarray: IIMAGECUBE */
10201
#line 3184 "MachineIndependent/glslang.y"
10202
{
10203
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10204
(yyval.interm.type).basicType = EbtSampler;
10205
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
10206
}
10207
#line 10208 "MachineIndependent/glslang_tab.cpp"
10208
break;
10209
10210
case 473: /* type_specifier_nonarray: UIMAGECUBE */
10211
#line 3189 "MachineIndependent/glslang.y"
10212
{
10213
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10214
(yyval.interm.type).basicType = EbtSampler;
10215
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
10216
}
10217
#line 10218 "MachineIndependent/glslang_tab.cpp"
10218
break;
10219
10220
case 474: /* type_specifier_nonarray: IMAGEBUFFER */
10221
#line 3194 "MachineIndependent/glslang.y"
10222
{
10223
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10224
(yyval.interm.type).basicType = EbtSampler;
10225
(yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
10226
}
10227
#line 10228 "MachineIndependent/glslang_tab.cpp"
10228
break;
10229
10230
case 475: /* type_specifier_nonarray: F16IMAGEBUFFER */
10231
#line 3199 "MachineIndependent/glslang.y"
10232
{
10233
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10234
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10235
(yyval.interm.type).basicType = EbtSampler;
10236
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
10237
}
10238
#line 10239 "MachineIndependent/glslang_tab.cpp"
10239
break;
10240
10241
case 476: /* type_specifier_nonarray: IIMAGEBUFFER */
10242
#line 3205 "MachineIndependent/glslang.y"
10243
{
10244
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10245
(yyval.interm.type).basicType = EbtSampler;
10246
(yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
10247
}
10248
#line 10249 "MachineIndependent/glslang_tab.cpp"
10249
break;
10250
10251
case 477: /* type_specifier_nonarray: UIMAGEBUFFER */
10252
#line 3210 "MachineIndependent/glslang.y"
10253
{
10254
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10255
(yyval.interm.type).basicType = EbtSampler;
10256
(yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
10257
}
10258
#line 10259 "MachineIndependent/glslang_tab.cpp"
10259
break;
10260
10261
case 478: /* type_specifier_nonarray: IMAGE1DARRAY */
10262
#line 3215 "MachineIndependent/glslang.y"
10263
{
10264
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10265
(yyval.interm.type).basicType = EbtSampler;
10266
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
10267
}
10268
#line 10269 "MachineIndependent/glslang_tab.cpp"
10269
break;
10270
10271
case 479: /* type_specifier_nonarray: F16IMAGE1DARRAY */
10272
#line 3220 "MachineIndependent/glslang.y"
10273
{
10274
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10275
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10276
(yyval.interm.type).basicType = EbtSampler;
10277
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
10278
}
10279
#line 10280 "MachineIndependent/glslang_tab.cpp"
10280
break;
10281
10282
case 480: /* type_specifier_nonarray: IIMAGE1DARRAY */
10283
#line 3226 "MachineIndependent/glslang.y"
10284
{
10285
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10286
(yyval.interm.type).basicType = EbtSampler;
10287
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
10288
}
10289
#line 10290 "MachineIndependent/glslang_tab.cpp"
10290
break;
10291
10292
case 481: /* type_specifier_nonarray: UIMAGE1DARRAY */
10293
#line 3231 "MachineIndependent/glslang.y"
10294
{
10295
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10296
(yyval.interm.type).basicType = EbtSampler;
10297
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
10298
}
10299
#line 10300 "MachineIndependent/glslang_tab.cpp"
10300
break;
10301
10302
case 482: /* type_specifier_nonarray: IMAGE2DARRAY */
10303
#line 3236 "MachineIndependent/glslang.y"
10304
{
10305
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10306
(yyval.interm.type).basicType = EbtSampler;
10307
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
10308
}
10309
#line 10310 "MachineIndependent/glslang_tab.cpp"
10310
break;
10311
10312
case 483: /* type_specifier_nonarray: F16IMAGE2DARRAY */
10313
#line 3241 "MachineIndependent/glslang.y"
10314
{
10315
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10316
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10317
(yyval.interm.type).basicType = EbtSampler;
10318
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
10319
}
10320
#line 10321 "MachineIndependent/glslang_tab.cpp"
10321
break;
10322
10323
case 484: /* type_specifier_nonarray: IIMAGE2DARRAY */
10324
#line 3247 "MachineIndependent/glslang.y"
10325
{
10326
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10327
(yyval.interm.type).basicType = EbtSampler;
10328
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
10329
}
10330
#line 10331 "MachineIndependent/glslang_tab.cpp"
10331
break;
10332
10333
case 485: /* type_specifier_nonarray: UIMAGE2DARRAY */
10334
#line 3252 "MachineIndependent/glslang.y"
10335
{
10336
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10337
(yyval.interm.type).basicType = EbtSampler;
10338
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
10339
}
10340
#line 10341 "MachineIndependent/glslang_tab.cpp"
10341
break;
10342
10343
case 486: /* type_specifier_nonarray: IMAGECUBEARRAY */
10344
#line 3257 "MachineIndependent/glslang.y"
10345
{
10346
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10347
(yyval.interm.type).basicType = EbtSampler;
10348
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
10349
}
10350
#line 10351 "MachineIndependent/glslang_tab.cpp"
10351
break;
10352
10353
case 487: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
10354
#line 3262 "MachineIndependent/glslang.y"
10355
{
10356
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10357
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10358
(yyval.interm.type).basicType = EbtSampler;
10359
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
10360
}
10361
#line 10362 "MachineIndependent/glslang_tab.cpp"
10362
break;
10363
10364
case 488: /* type_specifier_nonarray: IIMAGECUBEARRAY */
10365
#line 3268 "MachineIndependent/glslang.y"
10366
{
10367
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10368
(yyval.interm.type).basicType = EbtSampler;
10369
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
10370
}
10371
#line 10372 "MachineIndependent/glslang_tab.cpp"
10372
break;
10373
10374
case 489: /* type_specifier_nonarray: UIMAGECUBEARRAY */
10375
#line 3273 "MachineIndependent/glslang.y"
10376
{
10377
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10378
(yyval.interm.type).basicType = EbtSampler;
10379
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
10380
}
10381
#line 10382 "MachineIndependent/glslang_tab.cpp"
10382
break;
10383
10384
case 490: /* type_specifier_nonarray: IMAGE2DMS */
10385
#line 3278 "MachineIndependent/glslang.y"
10386
{
10387
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10388
(yyval.interm.type).basicType = EbtSampler;
10389
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
10390
}
10391
#line 10392 "MachineIndependent/glslang_tab.cpp"
10392
break;
10393
10394
case 491: /* type_specifier_nonarray: F16IMAGE2DMS */
10395
#line 3283 "MachineIndependent/glslang.y"
10396
{
10397
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10398
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10399
(yyval.interm.type).basicType = EbtSampler;
10400
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
10401
}
10402
#line 10403 "MachineIndependent/glslang_tab.cpp"
10403
break;
10404
10405
case 492: /* type_specifier_nonarray: IIMAGE2DMS */
10406
#line 3289 "MachineIndependent/glslang.y"
10407
{
10408
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10409
(yyval.interm.type).basicType = EbtSampler;
10410
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
10411
}
10412
#line 10413 "MachineIndependent/glslang_tab.cpp"
10413
break;
10414
10415
case 493: /* type_specifier_nonarray: UIMAGE2DMS */
10416
#line 3294 "MachineIndependent/glslang.y"
10417
{
10418
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10419
(yyval.interm.type).basicType = EbtSampler;
10420
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
10421
}
10422
#line 10423 "MachineIndependent/glslang_tab.cpp"
10423
break;
10424
10425
case 494: /* type_specifier_nonarray: IMAGE2DMSARRAY */
10426
#line 3299 "MachineIndependent/glslang.y"
10427
{
10428
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10429
(yyval.interm.type).basicType = EbtSampler;
10430
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
10431
}
10432
#line 10433 "MachineIndependent/glslang_tab.cpp"
10433
break;
10434
10435
case 495: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
10436
#line 3304 "MachineIndependent/glslang.y"
10437
{
10438
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10439
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10440
(yyval.interm.type).basicType = EbtSampler;
10441
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
10442
}
10443
#line 10444 "MachineIndependent/glslang_tab.cpp"
10444
break;
10445
10446
case 496: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
10447
#line 3310 "MachineIndependent/glslang.y"
10448
{
10449
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10450
(yyval.interm.type).basicType = EbtSampler;
10451
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
10452
}
10453
#line 10454 "MachineIndependent/glslang_tab.cpp"
10454
break;
10455
10456
case 497: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
10457
#line 3315 "MachineIndependent/glslang.y"
10458
{
10459
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10460
(yyval.interm.type).basicType = EbtSampler;
10461
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
10462
}
10463
#line 10464 "MachineIndependent/glslang_tab.cpp"
10464
break;
10465
10466
case 498: /* type_specifier_nonarray: I64IMAGE1D */
10467
#line 3320 "MachineIndependent/glslang.y"
10468
{
10469
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10470
(yyval.interm.type).basicType = EbtSampler;
10471
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
10472
}
10473
#line 10474 "MachineIndependent/glslang_tab.cpp"
10474
break;
10475
10476
case 499: /* type_specifier_nonarray: U64IMAGE1D */
10477
#line 3325 "MachineIndependent/glslang.y"
10478
{
10479
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10480
(yyval.interm.type).basicType = EbtSampler;
10481
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
10482
}
10483
#line 10484 "MachineIndependent/glslang_tab.cpp"
10484
break;
10485
10486
case 500: /* type_specifier_nonarray: I64IMAGE2D */
10487
#line 3330 "MachineIndependent/glslang.y"
10488
{
10489
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10490
(yyval.interm.type).basicType = EbtSampler;
10491
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
10492
}
10493
#line 10494 "MachineIndependent/glslang_tab.cpp"
10494
break;
10495
10496
case 501: /* type_specifier_nonarray: U64IMAGE2D */
10497
#line 3335 "MachineIndependent/glslang.y"
10498
{
10499
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10500
(yyval.interm.type).basicType = EbtSampler;
10501
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
10502
}
10503
#line 10504 "MachineIndependent/glslang_tab.cpp"
10504
break;
10505
10506
case 502: /* type_specifier_nonarray: I64IMAGE3D */
10507
#line 3340 "MachineIndependent/glslang.y"
10508
{
10509
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10510
(yyval.interm.type).basicType = EbtSampler;
10511
(yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
10512
}
10513
#line 10514 "MachineIndependent/glslang_tab.cpp"
10514
break;
10515
10516
case 503: /* type_specifier_nonarray: U64IMAGE3D */
10517
#line 3345 "MachineIndependent/glslang.y"
10518
{
10519
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10520
(yyval.interm.type).basicType = EbtSampler;
10521
(yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
10522
}
10523
#line 10524 "MachineIndependent/glslang_tab.cpp"
10524
break;
10525
10526
case 504: /* type_specifier_nonarray: I64IMAGE2DRECT */
10527
#line 3350 "MachineIndependent/glslang.y"
10528
{
10529
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10530
(yyval.interm.type).basicType = EbtSampler;
10531
(yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
10532
}
10533
#line 10534 "MachineIndependent/glslang_tab.cpp"
10534
break;
10535
10536
case 505: /* type_specifier_nonarray: U64IMAGE2DRECT */
10537
#line 3355 "MachineIndependent/glslang.y"
10538
{
10539
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10540
(yyval.interm.type).basicType = EbtSampler;
10541
(yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
10542
}
10543
#line 10544 "MachineIndependent/glslang_tab.cpp"
10544
break;
10545
10546
case 506: /* type_specifier_nonarray: I64IMAGECUBE */
10547
#line 3360 "MachineIndependent/glslang.y"
10548
{
10549
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10550
(yyval.interm.type).basicType = EbtSampler;
10551
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
10552
}
10553
#line 10554 "MachineIndependent/glslang_tab.cpp"
10554
break;
10555
10556
case 507: /* type_specifier_nonarray: U64IMAGECUBE */
10557
#line 3365 "MachineIndependent/glslang.y"
10558
{
10559
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10560
(yyval.interm.type).basicType = EbtSampler;
10561
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
10562
}
10563
#line 10564 "MachineIndependent/glslang_tab.cpp"
10564
break;
10565
10566
case 508: /* type_specifier_nonarray: I64IMAGEBUFFER */
10567
#line 3370 "MachineIndependent/glslang.y"
10568
{
10569
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10570
(yyval.interm.type).basicType = EbtSampler;
10571
(yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
10572
}
10573
#line 10574 "MachineIndependent/glslang_tab.cpp"
10574
break;
10575
10576
case 509: /* type_specifier_nonarray: U64IMAGEBUFFER */
10577
#line 3375 "MachineIndependent/glslang.y"
10578
{
10579
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10580
(yyval.interm.type).basicType = EbtSampler;
10581
(yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
10582
}
10583
#line 10584 "MachineIndependent/glslang_tab.cpp"
10584
break;
10585
10586
case 510: /* type_specifier_nonarray: I64IMAGE1DARRAY */
10587
#line 3380 "MachineIndependent/glslang.y"
10588
{
10589
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10590
(yyval.interm.type).basicType = EbtSampler;
10591
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
10592
}
10593
#line 10594 "MachineIndependent/glslang_tab.cpp"
10594
break;
10595
10596
case 511: /* type_specifier_nonarray: U64IMAGE1DARRAY */
10597
#line 3385 "MachineIndependent/glslang.y"
10598
{
10599
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10600
(yyval.interm.type).basicType = EbtSampler;
10601
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
10602
}
10603
#line 10604 "MachineIndependent/glslang_tab.cpp"
10604
break;
10605
10606
case 512: /* type_specifier_nonarray: I64IMAGE2DARRAY */
10607
#line 3390 "MachineIndependent/glslang.y"
10608
{
10609
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10610
(yyval.interm.type).basicType = EbtSampler;
10611
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
10612
}
10613
#line 10614 "MachineIndependent/glslang_tab.cpp"
10614
break;
10615
10616
case 513: /* type_specifier_nonarray: U64IMAGE2DARRAY */
10617
#line 3395 "MachineIndependent/glslang.y"
10618
{
10619
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10620
(yyval.interm.type).basicType = EbtSampler;
10621
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
10622
}
10623
#line 10624 "MachineIndependent/glslang_tab.cpp"
10624
break;
10625
10626
case 514: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
10627
#line 3400 "MachineIndependent/glslang.y"
10628
{
10629
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10630
(yyval.interm.type).basicType = EbtSampler;
10631
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
10632
}
10633
#line 10634 "MachineIndependent/glslang_tab.cpp"
10634
break;
10635
10636
case 515: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
10637
#line 3405 "MachineIndependent/glslang.y"
10638
{
10639
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10640
(yyval.interm.type).basicType = EbtSampler;
10641
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
10642
}
10643
#line 10644 "MachineIndependent/glslang_tab.cpp"
10644
break;
10645
10646
case 516: /* type_specifier_nonarray: I64IMAGE2DMS */
10647
#line 3410 "MachineIndependent/glslang.y"
10648
{
10649
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10650
(yyval.interm.type).basicType = EbtSampler;
10651
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
10652
}
10653
#line 10654 "MachineIndependent/glslang_tab.cpp"
10654
break;
10655
10656
case 517: /* type_specifier_nonarray: U64IMAGE2DMS */
10657
#line 3415 "MachineIndependent/glslang.y"
10658
{
10659
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10660
(yyval.interm.type).basicType = EbtSampler;
10661
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
10662
}
10663
#line 10664 "MachineIndependent/glslang_tab.cpp"
10664
break;
10665
10666
case 518: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
10667
#line 3420 "MachineIndependent/glslang.y"
10668
{
10669
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10670
(yyval.interm.type).basicType = EbtSampler;
10671
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
10672
}
10673
#line 10674 "MachineIndependent/glslang_tab.cpp"
10674
break;
10675
10676
case 519: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
10677
#line 3425 "MachineIndependent/glslang.y"
10678
{
10679
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10680
(yyval.interm.type).basicType = EbtSampler;
10681
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
10682
}
10683
#line 10684 "MachineIndependent/glslang_tab.cpp"
10684
break;
10685
10686
case 520: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
10687
#line 3430 "MachineIndependent/glslang.y"
10688
{ // GL_OES_EGL_image_external
10689
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10690
(yyval.interm.type).basicType = EbtSampler;
10691
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10692
(yyval.interm.type).sampler.external = true;
10693
}
10694
#line 10695 "MachineIndependent/glslang_tab.cpp"
10695
break;
10696
10697
case 521: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
10698
#line 3436 "MachineIndependent/glslang.y"
10699
{ // GL_EXT_YUV_target
10700
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10701
(yyval.interm.type).basicType = EbtSampler;
10702
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10703
(yyval.interm.type).sampler.yuv = true;
10704
}
10705
#line 10706 "MachineIndependent/glslang_tab.cpp"
10706
break;
10707
10708
case 522: /* type_specifier_nonarray: ATTACHMENTEXT */
10709
#line 3442 "MachineIndependent/glslang.y"
10710
{
10711
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
10712
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10713
(yyval.interm.type).basicType = EbtSampler;
10714
(yyval.interm.type).sampler.setAttachmentEXT(EbtFloat);
10715
}
10716
#line 10717 "MachineIndependent/glslang_tab.cpp"
10717
break;
10718
10719
case 523: /* type_specifier_nonarray: IATTACHMENTEXT */
10720
#line 3448 "MachineIndependent/glslang.y"
10721
{
10722
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
10723
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10724
(yyval.interm.type).basicType = EbtSampler;
10725
(yyval.interm.type).sampler.setAttachmentEXT(EbtInt);
10726
}
10727
#line 10728 "MachineIndependent/glslang_tab.cpp"
10728
break;
10729
10730
case 524: /* type_specifier_nonarray: UATTACHMENTEXT */
10731
#line 3454 "MachineIndependent/glslang.y"
10732
{
10733
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
10734
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10735
(yyval.interm.type).basicType = EbtSampler;
10736
(yyval.interm.type).sampler.setAttachmentEXT(EbtUint);
10737
}
10738
#line 10739 "MachineIndependent/glslang_tab.cpp"
10739
break;
10740
10741
case 525: /* type_specifier_nonarray: SUBPASSINPUT */
10742
#line 3460 "MachineIndependent/glslang.y"
10743
{
10744
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10745
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10746
(yyval.interm.type).basicType = EbtSampler;
10747
(yyval.interm.type).sampler.setSubpass(EbtFloat);
10748
}
10749
#line 10750 "MachineIndependent/glslang_tab.cpp"
10750
break;
10751
10752
case 526: /* type_specifier_nonarray: SUBPASSINPUTMS */
10753
#line 3466 "MachineIndependent/glslang.y"
10754
{
10755
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10756
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10757
(yyval.interm.type).basicType = EbtSampler;
10758
(yyval.interm.type).sampler.setSubpass(EbtFloat, true);
10759
}
10760
#line 10761 "MachineIndependent/glslang_tab.cpp"
10761
break;
10762
10763
case 527: /* type_specifier_nonarray: F16SUBPASSINPUT */
10764
#line 3472 "MachineIndependent/glslang.y"
10765
{
10766
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10767
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10768
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10769
(yyval.interm.type).basicType = EbtSampler;
10770
(yyval.interm.type).sampler.setSubpass(EbtFloat16);
10771
}
10772
#line 10773 "MachineIndependent/glslang_tab.cpp"
10773
break;
10774
10775
case 528: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
10776
#line 3479 "MachineIndependent/glslang.y"
10777
{
10778
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10779
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10780
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10781
(yyval.interm.type).basicType = EbtSampler;
10782
(yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
10783
}
10784
#line 10785 "MachineIndependent/glslang_tab.cpp"
10785
break;
10786
10787
case 529: /* type_specifier_nonarray: ISUBPASSINPUT */
10788
#line 3486 "MachineIndependent/glslang.y"
10789
{
10790
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10791
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10792
(yyval.interm.type).basicType = EbtSampler;
10793
(yyval.interm.type).sampler.setSubpass(EbtInt);
10794
}
10795
#line 10796 "MachineIndependent/glslang_tab.cpp"
10796
break;
10797
10798
case 530: /* type_specifier_nonarray: ISUBPASSINPUTMS */
10799
#line 3492 "MachineIndependent/glslang.y"
10800
{
10801
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10802
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10803
(yyval.interm.type).basicType = EbtSampler;
10804
(yyval.interm.type).sampler.setSubpass(EbtInt, true);
10805
}
10806
#line 10807 "MachineIndependent/glslang_tab.cpp"
10807
break;
10808
10809
case 531: /* type_specifier_nonarray: USUBPASSINPUT */
10810
#line 3498 "MachineIndependent/glslang.y"
10811
{
10812
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10813
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10814
(yyval.interm.type).basicType = EbtSampler;
10815
(yyval.interm.type).sampler.setSubpass(EbtUint);
10816
}
10817
#line 10818 "MachineIndependent/glslang_tab.cpp"
10818
break;
10819
10820
case 532: /* type_specifier_nonarray: USUBPASSINPUTMS */
10821
#line 3504 "MachineIndependent/glslang.y"
10822
{
10823
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10824
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10825
(yyval.interm.type).basicType = EbtSampler;
10826
(yyval.interm.type).sampler.setSubpass(EbtUint, true);
10827
}
10828
#line 10829 "MachineIndependent/glslang_tab.cpp"
10829
break;
10830
10831
case 533: /* type_specifier_nonarray: FCOOPMATNV */
10832
#line 3510 "MachineIndependent/glslang.y"
10833
{
10834
parseContext.fcoopmatCheckNV((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10835
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10836
(yyval.interm.type).basicType = EbtFloat;
10837
(yyval.interm.type).coopmatNV = true;
10838
(yyval.interm.type).coopmatKHR = false;
10839
}
10840
#line 10841 "MachineIndependent/glslang_tab.cpp"
10841
break;
10842
10843
case 534: /* type_specifier_nonarray: ICOOPMATNV */
10844
#line 3517 "MachineIndependent/glslang.y"
10845
{
10846
parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10847
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10848
(yyval.interm.type).basicType = EbtInt;
10849
(yyval.interm.type).coopmatNV = true;
10850
(yyval.interm.type).coopmatKHR = false;
10851
}
10852
#line 10853 "MachineIndependent/glslang_tab.cpp"
10853
break;
10854
10855
case 535: /* type_specifier_nonarray: UCOOPMATNV */
10856
#line 3524 "MachineIndependent/glslang.y"
10857
{
10858
parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10859
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10860
(yyval.interm.type).basicType = EbtUint;
10861
(yyval.interm.type).coopmatNV = true;
10862
(yyval.interm.type).coopmatKHR = false;
10863
}
10864
#line 10865 "MachineIndependent/glslang_tab.cpp"
10865
break;
10866
10867
case 536: /* type_specifier_nonarray: COOPMAT */
10868
#line 3531 "MachineIndependent/glslang.y"
10869
{
10870
parseContext.coopmatCheck((yyvsp[0].lex).loc, "coopmat", parseContext.symbolTable.atBuiltInLevel());
10871
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10872
(yyval.interm.type).basicType = EbtCoopmat;
10873
(yyval.interm.type).coopmatNV = false;
10874
(yyval.interm.type).coopmatKHR = true;
10875
}
10876
#line 10877 "MachineIndependent/glslang_tab.cpp"
10877
break;
10878
10879
case 537: /* type_specifier_nonarray: spirv_type_specifier */
10880
#line 3538 "MachineIndependent/glslang.y"
10881
{
10882
parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
10883
(yyval.interm.type) = (yyvsp[0].interm.type);
10884
}
10885
#line 10886 "MachineIndependent/glslang_tab.cpp"
10886
break;
10887
10888
case 538: /* type_specifier_nonarray: HITOBJECTNV */
10889
#line 3542 "MachineIndependent/glslang.y"
10890
{
10891
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10892
(yyval.interm.type).basicType = EbtHitObjectNV;
10893
}
10894
#line 10895 "MachineIndependent/glslang_tab.cpp"
10895
break;
10896
10897
case 539: /* type_specifier_nonarray: struct_specifier */
10898
#line 3546 "MachineIndependent/glslang.y"
10899
{
10900
(yyval.interm.type) = (yyvsp[0].interm.type);
10901
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
10902
parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
10903
}
10904
#line 10905 "MachineIndependent/glslang_tab.cpp"
10905
break;
10906
10907
case 540: /* type_specifier_nonarray: TYPE_NAME */
10908
#line 3551 "MachineIndependent/glslang.y"
10909
{
10910
//
10911
// This is for user defined type names. The lexical phase looked up the
10912
// type.
10913
//
10914
if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
10915
const TType& structure = variable->getType();
10916
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10917
(yyval.interm.type).basicType = EbtStruct;
10918
(yyval.interm.type).userDef = &structure;
10919
} else
10920
parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
10921
}
10922
#line 10923 "MachineIndependent/glslang_tab.cpp"
10923
break;
10924
10925
case 541: /* precision_qualifier: HIGH_PRECISION */
10926
#line 3567 "MachineIndependent/glslang.y"
10927
{
10928
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
10929
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10930
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
10931
}
10932
#line 10933 "MachineIndependent/glslang_tab.cpp"
10933
break;
10934
10935
case 542: /* precision_qualifier: MEDIUM_PRECISION */
10936
#line 3572 "MachineIndependent/glslang.y"
10937
{
10938
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
10939
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10940
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
10941
}
10942
#line 10943 "MachineIndependent/glslang_tab.cpp"
10943
break;
10944
10945
case 543: /* precision_qualifier: LOW_PRECISION */
10946
#line 3577 "MachineIndependent/glslang.y"
10947
{
10948
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
10949
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10950
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
10951
}
10952
#line 10953 "MachineIndependent/glslang_tab.cpp"
10953
break;
10954
10955
case 544: /* $@3: %empty */
10956
#line 3585 "MachineIndependent/glslang.y"
10957
{ parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
10958
#line 10959 "MachineIndependent/glslang_tab.cpp"
10959
break;
10960
10961
case 545: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
10962
#line 3585 "MachineIndependent/glslang.y"
10963
{
10964
10965
TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
10966
parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
10967
10968
TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
10969
if (! parseContext.symbolTable.insert(*userTypeDef))
10970
parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
10971
else if (parseContext.spvVersion.vulkanRelaxed
10972
&& structure->containsOpaque())
10973
parseContext.relaxedSymbols.push_back(structure->getTypeName());
10974
10975
(yyval.interm.type).init((yyvsp[-5].lex).loc);
10976
(yyval.interm.type).basicType = EbtStruct;
10977
(yyval.interm.type).userDef = structure;
10978
--parseContext.structNestingLevel;
10979
}
10980
#line 10981 "MachineIndependent/glslang_tab.cpp"
10981
break;
10982
10983
case 546: /* $@4: %empty */
10984
#line 3602 "MachineIndependent/glslang.y"
10985
{ parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
10986
#line 10987 "MachineIndependent/glslang_tab.cpp"
10987
break;
10988
10989
case 547: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
10990
#line 3602 "MachineIndependent/glslang.y"
10991
{
10992
TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
10993
(yyval.interm.type).init((yyvsp[-4].lex).loc);
10994
(yyval.interm.type).basicType = EbtStruct;
10995
(yyval.interm.type).userDef = structure;
10996
--parseContext.structNestingLevel;
10997
}
10998
#line 10999 "MachineIndependent/glslang_tab.cpp"
10999
break;
11000
11001
case 548: /* struct_declaration_list: struct_declaration */
11002
#line 3612 "MachineIndependent/glslang.y"
11003
{
11004
(yyval.interm.typeList) = (yyvsp[0].interm.typeList);
11005
}
11006
#line 11007 "MachineIndependent/glslang_tab.cpp"
11007
break;
11008
11009
case 549: /* struct_declaration_list: struct_declaration_list struct_declaration */
11010
#line 3615 "MachineIndependent/glslang.y"
11011
{
11012
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
11013
for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
11014
for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
11015
if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
11016
parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
11017
}
11018
(yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
11019
}
11020
}
11021
#line 11022 "MachineIndependent/glslang_tab.cpp"
11022
break;
11023
11024
case 550: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
11025
#line 3628 "MachineIndependent/glslang.y"
11026
{
11027
if ((yyvsp[-2].interm.type).arraySizes) {
11028
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
11029
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
11030
if (parseContext.isEsProfile())
11031
parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
11032
}
11033
11034
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
11035
11036
parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
11037
parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).isCoopmat());
11038
11039
for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
11040
TType type((yyvsp[-2].interm.type));
11041
type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
11042
type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
11043
type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
11044
parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
11045
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
11046
}
11047
}
11048
#line 11049 "MachineIndependent/glslang_tab.cpp"
11049
break;
11050
11051
case 551: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
11052
#line 3650 "MachineIndependent/glslang.y"
11053
{
11054
if ((yyvsp[-2].interm.type).arraySizes) {
11055
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
11056
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
11057
if (parseContext.isEsProfile())
11058
parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
11059
}
11060
11061
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
11062
11063
parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
11064
parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
11065
parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
11066
parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).isCoopmat());
11067
11068
for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
11069
TType type((yyvsp[-2].interm.type));
11070
type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
11071
type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
11072
type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
11073
parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
11074
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
11075
}
11076
}
11077
#line 11078 "MachineIndependent/glslang_tab.cpp"
11078
break;
11079
11080
case 552: /* struct_declarator_list: struct_declarator */
11081
#line 3677 "MachineIndependent/glslang.y"
11082
{
11083
(yyval.interm.typeList) = new TTypeList;
11084
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
11085
}
11086
#line 11087 "MachineIndependent/glslang_tab.cpp"
11087
break;
11088
11089
case 553: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
11090
#line 3681 "MachineIndependent/glslang.y"
11091
{
11092
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
11093
}
11094
#line 11095 "MachineIndependent/glslang_tab.cpp"
11095
break;
11096
11097
case 554: /* struct_declarator: IDENTIFIER */
11098
#line 3687 "MachineIndependent/glslang.y"
11099
{
11100
(yyval.interm.typeLine).type = new TType(EbtVoid);
11101
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
11102
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
11103
}
11104
#line 11105 "MachineIndependent/glslang_tab.cpp"
11105
break;
11106
11107
case 555: /* struct_declarator: IDENTIFIER array_specifier */
11108
#line 3692 "MachineIndependent/glslang.y"
11109
{
11110
parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
11111
11112
(yyval.interm.typeLine).type = new TType(EbtVoid);
11113
(yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
11114
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
11115
(yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
11116
}
11117
#line 11118 "MachineIndependent/glslang_tab.cpp"
11118
break;
11119
11120
case 556: /* initializer: assignment_expression */
11121
#line 3703 "MachineIndependent/glslang.y"
11122
{
11123
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11124
}
11125
#line 11126 "MachineIndependent/glslang_tab.cpp"
11126
break;
11127
11128
case 557: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
11129
#line 3706 "MachineIndependent/glslang.y"
11130
{
11131
const char* initFeature = "{ } style initializers";
11132
parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
11133
parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
11134
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
11135
}
11136
#line 11137 "MachineIndependent/glslang_tab.cpp"
11137
break;
11138
11139
case 558: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
11140
#line 3712 "MachineIndependent/glslang.y"
11141
{
11142
const char* initFeature = "{ } style initializers";
11143
parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
11144
parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
11145
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
11146
}
11147
#line 11148 "MachineIndependent/glslang_tab.cpp"
11148
break;
11149
11150
case 559: /* initializer: LEFT_BRACE RIGHT_BRACE */
11151
#line 3718 "MachineIndependent/glslang.y"
11152
{
11153
const char* initFeature = "empty { } initializer";
11154
parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
11155
parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
11156
(yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
11157
}
11158
#line 11159 "MachineIndependent/glslang_tab.cpp"
11159
break;
11160
11161
case 560: /* initializer_list: initializer */
11162
#line 3727 "MachineIndependent/glslang.y"
11163
{
11164
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
11165
}
11166
#line 11167 "MachineIndependent/glslang_tab.cpp"
11167
break;
11168
11169
case 561: /* initializer_list: initializer_list COMMA initializer */
11170
#line 3730 "MachineIndependent/glslang.y"
11171
{
11172
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
11173
}
11174
#line 11175 "MachineIndependent/glslang_tab.cpp"
11175
break;
11176
11177
case 562: /* declaration_statement: declaration */
11178
#line 3736 "MachineIndependent/glslang.y"
11179
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11180
#line 11181 "MachineIndependent/glslang_tab.cpp"
11181
break;
11182
11183
case 563: /* statement: compound_statement */
11184
#line 3740 "MachineIndependent/glslang.y"
11185
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11186
#line 11187 "MachineIndependent/glslang_tab.cpp"
11187
break;
11188
11189
case 564: /* statement: simple_statement */
11190
#line 3741 "MachineIndependent/glslang.y"
11191
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11192
#line 11193 "MachineIndependent/glslang_tab.cpp"
11193
break;
11194
11195
case 565: /* simple_statement: declaration_statement */
11196
#line 3747 "MachineIndependent/glslang.y"
11197
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11198
#line 11199 "MachineIndependent/glslang_tab.cpp"
11199
break;
11200
11201
case 566: /* simple_statement: expression_statement */
11202
#line 3748 "MachineIndependent/glslang.y"
11203
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11204
#line 11205 "MachineIndependent/glslang_tab.cpp"
11205
break;
11206
11207
case 567: /* simple_statement: selection_statement */
11208
#line 3749 "MachineIndependent/glslang.y"
11209
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11210
#line 11211 "MachineIndependent/glslang_tab.cpp"
11211
break;
11212
11213
case 568: /* simple_statement: switch_statement */
11214
#line 3750 "MachineIndependent/glslang.y"
11215
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11216
#line 11217 "MachineIndependent/glslang_tab.cpp"
11217
break;
11218
11219
case 569: /* simple_statement: case_label */
11220
#line 3751 "MachineIndependent/glslang.y"
11221
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11222
#line 11223 "MachineIndependent/glslang_tab.cpp"
11223
break;
11224
11225
case 570: /* simple_statement: iteration_statement */
11226
#line 3752 "MachineIndependent/glslang.y"
11227
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11228
#line 11229 "MachineIndependent/glslang_tab.cpp"
11229
break;
11230
11231
case 571: /* simple_statement: jump_statement */
11232
#line 3753 "MachineIndependent/glslang.y"
11233
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11234
#line 11235 "MachineIndependent/glslang_tab.cpp"
11235
break;
11236
11237
case 572: /* simple_statement: demote_statement */
11238
#line 3754 "MachineIndependent/glslang.y"
11239
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11240
#line 11241 "MachineIndependent/glslang_tab.cpp"
11241
break;
11242
11243
case 573: /* demote_statement: DEMOTE SEMICOLON */
11244
#line 3758 "MachineIndependent/glslang.y"
11245
{
11246
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
11247
parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
11248
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
11249
}
11250
#line 11251 "MachineIndependent/glslang_tab.cpp"
11251
break;
11252
11253
case 574: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
11254
#line 3766 "MachineIndependent/glslang.y"
11255
{ (yyval.interm.intermNode) = 0; }
11256
#line 11257 "MachineIndependent/glslang_tab.cpp"
11257
break;
11258
11259
case 575: /* $@5: %empty */
11260
#line 3767 "MachineIndependent/glslang.y"
11261
{
11262
parseContext.symbolTable.push();
11263
++parseContext.statementNestingLevel;
11264
}
11265
#line 11266 "MachineIndependent/glslang_tab.cpp"
11266
break;
11267
11268
case 576: /* $@6: %empty */
11269
#line 3771 "MachineIndependent/glslang.y"
11270
{
11271
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11272
--parseContext.statementNestingLevel;
11273
}
11274
#line 11275 "MachineIndependent/glslang_tab.cpp"
11275
break;
11276
11277
case 577: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
11278
#line 3775 "MachineIndependent/glslang.y"
11279
{
11280
if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
11281
(yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
11282
(yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
11283
}
11284
#line 11285 "MachineIndependent/glslang_tab.cpp"
11285
break;
11286
11287
case 578: /* statement_no_new_scope: compound_statement_no_new_scope */
11288
#line 3783 "MachineIndependent/glslang.y"
11289
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11290
#line 11291 "MachineIndependent/glslang_tab.cpp"
11291
break;
11292
11293
case 579: /* statement_no_new_scope: simple_statement */
11294
#line 3784 "MachineIndependent/glslang.y"
11295
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11296
#line 11297 "MachineIndependent/glslang_tab.cpp"
11297
break;
11298
11299
case 580: /* $@7: %empty */
11300
#line 3788 "MachineIndependent/glslang.y"
11301
{
11302
++parseContext.controlFlowNestingLevel;
11303
}
11304
#line 11305 "MachineIndependent/glslang_tab.cpp"
11305
break;
11306
11307
case 581: /* statement_scoped: $@7 compound_statement */
11308
#line 3791 "MachineIndependent/glslang.y"
11309
{
11310
--parseContext.controlFlowNestingLevel;
11311
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11312
}
11313
#line 11314 "MachineIndependent/glslang_tab.cpp"
11314
break;
11315
11316
case 582: /* $@8: %empty */
11317
#line 3795 "MachineIndependent/glslang.y"
11318
{
11319
parseContext.symbolTable.push();
11320
++parseContext.statementNestingLevel;
11321
++parseContext.controlFlowNestingLevel;
11322
}
11323
#line 11324 "MachineIndependent/glslang_tab.cpp"
11324
break;
11325
11326
case 583: /* statement_scoped: $@8 simple_statement */
11327
#line 3800 "MachineIndependent/glslang.y"
11328
{
11329
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11330
--parseContext.statementNestingLevel;
11331
--parseContext.controlFlowNestingLevel;
11332
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11333
}
11334
#line 11335 "MachineIndependent/glslang_tab.cpp"
11335
break;
11336
11337
case 584: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
11338
#line 3809 "MachineIndependent/glslang.y"
11339
{
11340
(yyval.interm.intermNode) = 0;
11341
}
11342
#line 11343 "MachineIndependent/glslang_tab.cpp"
11343
break;
11344
11345
case 585: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
11346
#line 3812 "MachineIndependent/glslang.y"
11347
{
11348
if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
11349
(yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11350
(yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
11351
}
11352
#line 11353 "MachineIndependent/glslang_tab.cpp"
11353
break;
11354
11355
case 586: /* statement_list: statement */
11356
#line 3820 "MachineIndependent/glslang.y"
11357
{
11358
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
11359
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11360
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11361
parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
11362
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
11363
}
11364
}
11365
#line 11366 "MachineIndependent/glslang_tab.cpp"
11366
break;
11367
11368
case 587: /* statement_list: statement_list statement */
11369
#line 3828 "MachineIndependent/glslang.y"
11370
{
11371
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11372
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11373
parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
11374
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
11375
} else
11376
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11377
}
11378
#line 11379 "MachineIndependent/glslang_tab.cpp"
11379
break;
11380
11381
case 588: /* expression_statement: SEMICOLON */
11382
#line 3839 "MachineIndependent/glslang.y"
11383
{ (yyval.interm.intermNode) = 0; }
11384
#line 11385 "MachineIndependent/glslang_tab.cpp"
11385
break;
11386
11387
case 589: /* expression_statement: expression SEMICOLON */
11388
#line 3840 "MachineIndependent/glslang.y"
11389
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
11390
#line 11391 "MachineIndependent/glslang_tab.cpp"
11391
break;
11392
11393
case 590: /* selection_statement: selection_statement_nonattributed */
11394
#line 3844 "MachineIndependent/glslang.y"
11395
{
11396
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11397
}
11398
#line 11399 "MachineIndependent/glslang_tab.cpp"
11399
break;
11400
11401
case 591: /* selection_statement: attribute selection_statement_nonattributed */
11402
#line 3847 "MachineIndependent/glslang.y"
11403
{
11404
parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11405
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11406
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11407
}
11408
#line 11409 "MachineIndependent/glslang_tab.cpp"
11409
break;
11410
11411
case 592: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
11412
#line 3854 "MachineIndependent/glslang.y"
11413
{
11414
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11415
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
11416
}
11417
#line 11418 "MachineIndependent/glslang_tab.cpp"
11418
break;
11419
11420
case 593: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
11421
#line 3861 "MachineIndependent/glslang.y"
11422
{
11423
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
11424
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
11425
}
11426
#line 11427 "MachineIndependent/glslang_tab.cpp"
11427
break;
11428
11429
case 594: /* selection_rest_statement: statement_scoped */
11430
#line 3865 "MachineIndependent/glslang.y"
11431
{
11432
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
11433
(yyval.interm.nodePair).node2 = 0;
11434
}
11435
#line 11436 "MachineIndependent/glslang_tab.cpp"
11436
break;
11437
11438
case 595: /* condition: expression */
11439
#line 3873 "MachineIndependent/glslang.y"
11440
{
11441
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11442
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
11443
}
11444
#line 11445 "MachineIndependent/glslang_tab.cpp"
11445
break;
11446
11447
case 596: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
11448
#line 3877 "MachineIndependent/glslang.y"
11449
{
11450
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
11451
11452
TType type((yyvsp[-3].interm.type));
11453
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
11454
if (initNode)
11455
(yyval.interm.intermTypedNode) = initNode->getAsTyped();
11456
else
11457
(yyval.interm.intermTypedNode) = 0;
11458
}
11459
#line 11460 "MachineIndependent/glslang_tab.cpp"
11460
break;
11461
11462
case 597: /* switch_statement: switch_statement_nonattributed */
11463
#line 3890 "MachineIndependent/glslang.y"
11464
{
11465
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11466
}
11467
#line 11468 "MachineIndependent/glslang_tab.cpp"
11468
break;
11469
11470
case 598: /* switch_statement: attribute switch_statement_nonattributed */
11471
#line 3893 "MachineIndependent/glslang.y"
11472
{
11473
parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11474
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11475
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11476
}
11477
#line 11478 "MachineIndependent/glslang_tab.cpp"
11478
break;
11479
11480
case 599: /* $@9: %empty */
11481
#line 3900 "MachineIndependent/glslang.y"
11482
{
11483
// start new switch sequence on the switch stack
11484
++parseContext.controlFlowNestingLevel;
11485
++parseContext.statementNestingLevel;
11486
parseContext.switchSequenceStack.push_back(new TIntermSequence);
11487
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
11488
parseContext.symbolTable.push();
11489
}
11490
#line 11491 "MachineIndependent/glslang_tab.cpp"
11491
break;
11492
11493
case 600: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
11494
#line 3908 "MachineIndependent/glslang.y"
11495
{
11496
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
11497
delete parseContext.switchSequenceStack.back();
11498
parseContext.switchSequenceStack.pop_back();
11499
parseContext.switchLevel.pop_back();
11500
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11501
--parseContext.statementNestingLevel;
11502
--parseContext.controlFlowNestingLevel;
11503
}
11504
#line 11505 "MachineIndependent/glslang_tab.cpp"
11505
break;
11506
11507
case 601: /* switch_statement_list: %empty */
11508
#line 3920 "MachineIndependent/glslang.y"
11509
{
11510
(yyval.interm.intermNode) = 0;
11511
}
11512
#line 11513 "MachineIndependent/glslang_tab.cpp"
11513
break;
11514
11515
case 602: /* switch_statement_list: statement_list */
11516
#line 3923 "MachineIndependent/glslang.y"
11517
{
11518
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11519
}
11520
#line 11521 "MachineIndependent/glslang_tab.cpp"
11521
break;
11522
11523
case 603: /* case_label: CASE expression COLON */
11524
#line 3929 "MachineIndependent/glslang.y"
11525
{
11526
(yyval.interm.intermNode) = 0;
11527
if (parseContext.switchLevel.size() == 0)
11528
parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
11529
else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11530
parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
11531
else {
11532
parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
11533
parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
11534
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
11535
}
11536
}
11537
#line 11538 "MachineIndependent/glslang_tab.cpp"
11538
break;
11539
11540
case 604: /* case_label: DEFAULT COLON */
11541
#line 3941 "MachineIndependent/glslang.y"
11542
{
11543
(yyval.interm.intermNode) = 0;
11544
if (parseContext.switchLevel.size() == 0)
11545
parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
11546
else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11547
parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
11548
else
11549
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
11550
}
11551
#line 11552 "MachineIndependent/glslang_tab.cpp"
11552
break;
11553
11554
case 605: /* iteration_statement: iteration_statement_nonattributed */
11555
#line 3953 "MachineIndependent/glslang.y"
11556
{
11557
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11558
}
11559
#line 11560 "MachineIndependent/glslang_tab.cpp"
11560
break;
11561
11562
case 606: /* iteration_statement: attribute iteration_statement_nonattributed */
11563
#line 3956 "MachineIndependent/glslang.y"
11564
{
11565
const char * extensions[2] = { E_GL_EXT_control_flow_attributes, E_GL_EXT_control_flow_attributes2 };
11566
parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 2, extensions, "attribute");
11567
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11568
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11569
}
11570
#line 11571 "MachineIndependent/glslang_tab.cpp"
11571
break;
11572
11573
case 607: /* $@10: %empty */
11574
#line 3964 "MachineIndependent/glslang.y"
11575
{
11576
if (! parseContext.limits.whileLoops)
11577
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
11578
parseContext.symbolTable.push();
11579
++parseContext.loopNestingLevel;
11580
++parseContext.statementNestingLevel;
11581
++parseContext.controlFlowNestingLevel;
11582
}
11583
#line 11584 "MachineIndependent/glslang_tab.cpp"
11584
break;
11585
11586
case 608: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
11587
#line 3972 "MachineIndependent/glslang.y"
11588
{
11589
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11590
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
11591
--parseContext.loopNestingLevel;
11592
--parseContext.statementNestingLevel;
11593
--parseContext.controlFlowNestingLevel;
11594
}
11595
#line 11596 "MachineIndependent/glslang_tab.cpp"
11596
break;
11597
11598
case 609: /* $@11: %empty */
11599
#line 3979 "MachineIndependent/glslang.y"
11600
{
11601
parseContext.symbolTable.push();
11602
++parseContext.loopNestingLevel;
11603
++parseContext.statementNestingLevel;
11604
++parseContext.controlFlowNestingLevel;
11605
}
11606
#line 11607 "MachineIndependent/glslang_tab.cpp"
11607
break;
11608
11609
case 610: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
11610
#line 3985 "MachineIndependent/glslang.y"
11611
{
11612
if (! parseContext.limits.whileLoops)
11613
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
11614
11615
parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11616
11617
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
11618
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11619
--parseContext.loopNestingLevel;
11620
--parseContext.statementNestingLevel;
11621
--parseContext.controlFlowNestingLevel;
11622
}
11623
#line 11624 "MachineIndependent/glslang_tab.cpp"
11624
break;
11625
11626
case 611: /* $@12: %empty */
11627
#line 3997 "MachineIndependent/glslang.y"
11628
{
11629
parseContext.symbolTable.push();
11630
++parseContext.loopNestingLevel;
11631
++parseContext.statementNestingLevel;
11632
++parseContext.controlFlowNestingLevel;
11633
}
11634
#line 11635 "MachineIndependent/glslang_tab.cpp"
11635
break;
11636
11637
case 612: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
11638
#line 4003 "MachineIndependent/glslang.y"
11639
{
11640
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11641
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
11642
TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
11643
if (! parseContext.limits.nonInductiveForLoops)
11644
parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
11645
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
11646
(yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11647
--parseContext.loopNestingLevel;
11648
--parseContext.statementNestingLevel;
11649
--parseContext.controlFlowNestingLevel;
11650
}
11651
#line 11652 "MachineIndependent/glslang_tab.cpp"
11652
break;
11653
11654
case 613: /* for_init_statement: expression_statement */
11655
#line 4018 "MachineIndependent/glslang.y"
11656
{
11657
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11658
}
11659
#line 11660 "MachineIndependent/glslang_tab.cpp"
11660
break;
11661
11662
case 614: /* for_init_statement: declaration_statement */
11663
#line 4021 "MachineIndependent/glslang.y"
11664
{
11665
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11666
}
11667
#line 11668 "MachineIndependent/glslang_tab.cpp"
11668
break;
11669
11670
case 615: /* conditionopt: condition */
11671
#line 4027 "MachineIndependent/glslang.y"
11672
{
11673
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11674
}
11675
#line 11676 "MachineIndependent/glslang_tab.cpp"
11676
break;
11677
11678
case 616: /* conditionopt: %empty */
11679
#line 4030 "MachineIndependent/glslang.y"
11680
{
11681
(yyval.interm.intermTypedNode) = 0;
11682
}
11683
#line 11684 "MachineIndependent/glslang_tab.cpp"
11684
break;
11685
11686
case 617: /* for_rest_statement: conditionopt SEMICOLON */
11687
#line 4036 "MachineIndependent/glslang.y"
11688
{
11689
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
11690
(yyval.interm.nodePair).node2 = 0;
11691
}
11692
#line 11693 "MachineIndependent/glslang_tab.cpp"
11693
break;
11694
11695
case 618: /* for_rest_statement: conditionopt SEMICOLON expression */
11696
#line 4040 "MachineIndependent/glslang.y"
11697
{
11698
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
11699
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
11700
}
11701
#line 11702 "MachineIndependent/glslang_tab.cpp"
11702
break;
11703
11704
case 619: /* jump_statement: CONTINUE SEMICOLON */
11705
#line 4047 "MachineIndependent/glslang.y"
11706
{
11707
if (parseContext.loopNestingLevel <= 0)
11708
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
11709
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
11710
}
11711
#line 11712 "MachineIndependent/glslang_tab.cpp"
11712
break;
11713
11714
case 620: /* jump_statement: BREAK SEMICOLON */
11715
#line 4052 "MachineIndependent/glslang.y"
11716
{
11717
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
11718
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
11719
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
11720
}
11721
#line 11722 "MachineIndependent/glslang_tab.cpp"
11722
break;
11723
11724
case 621: /* jump_statement: RETURN SEMICOLON */
11725
#line 4057 "MachineIndependent/glslang.y"
11726
{
11727
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
11728
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
11729
parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
11730
if (parseContext.inMain)
11731
parseContext.postEntryPointReturn = true;
11732
}
11733
#line 11734 "MachineIndependent/glslang_tab.cpp"
11734
break;
11735
11736
case 622: /* jump_statement: RETURN expression SEMICOLON */
11737
#line 4064 "MachineIndependent/glslang.y"
11738
{
11739
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
11740
}
11741
#line 11742 "MachineIndependent/glslang_tab.cpp"
11742
break;
11743
11744
case 623: /* jump_statement: DISCARD SEMICOLON */
11745
#line 4067 "MachineIndependent/glslang.y"
11746
{
11747
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
11748
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
11749
}
11750
#line 11751 "MachineIndependent/glslang_tab.cpp"
11751
break;
11752
11753
case 624: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
11754
#line 4071 "MachineIndependent/glslang.y"
11755
{
11756
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
11757
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
11758
}
11759
#line 11760 "MachineIndependent/glslang_tab.cpp"
11760
break;
11761
11762
case 625: /* jump_statement: TERMINATE_RAY SEMICOLON */
11763
#line 4075 "MachineIndependent/glslang.y"
11764
{
11765
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
11766
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
11767
}
11768
#line 11769 "MachineIndependent/glslang_tab.cpp"
11769
break;
11770
11771
case 626: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
11772
#line 4079 "MachineIndependent/glslang.y"
11773
{
11774
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
11775
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
11776
}
11777
#line 11778 "MachineIndependent/glslang_tab.cpp"
11778
break;
11779
11780
case 627: /* translation_unit: external_declaration */
11781
#line 4088 "MachineIndependent/glslang.y"
11782
{
11783
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11784
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11785
}
11786
#line 11787 "MachineIndependent/glslang_tab.cpp"
11787
break;
11788
11789
case 628: /* translation_unit: translation_unit external_declaration */
11790
#line 4092 "MachineIndependent/glslang.y"
11791
{
11792
if ((yyvsp[0].interm.intermNode) != nullptr) {
11793
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11794
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11795
}
11796
}
11797
#line 11798 "MachineIndependent/glslang_tab.cpp"
11798
break;
11799
11800
case 629: /* external_declaration: function_definition */
11801
#line 4101 "MachineIndependent/glslang.y"
11802
{
11803
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11804
}
11805
#line 11806 "MachineIndependent/glslang_tab.cpp"
11806
break;
11807
11808
case 630: /* external_declaration: declaration */
11809
#line 4104 "MachineIndependent/glslang.y"
11810
{
11811
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11812
}
11813
#line 11814 "MachineIndependent/glslang_tab.cpp"
11814
break;
11815
11816
case 631: /* external_declaration: SEMICOLON */
11817
#line 4107 "MachineIndependent/glslang.y"
11818
{
11819
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
11820
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
11821
(yyval.interm.intermNode) = nullptr;
11822
}
11823
#line 11824 "MachineIndependent/glslang_tab.cpp"
11824
break;
11825
11826
case 632: /* $@13: %empty */
11827
#line 4115 "MachineIndependent/glslang.y"
11828
{
11829
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
11830
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
11831
11832
// For ES 100 only, according to ES shading language 100 spec: A function
11833
// body has a scope nested inside the function's definition.
11834
if (parseContext.profile == EEsProfile && parseContext.version == 100)
11835
{
11836
parseContext.symbolTable.push();
11837
++parseContext.statementNestingLevel;
11838
}
11839
}
11840
#line 11841 "MachineIndependent/glslang_tab.cpp"
11841
break;
11842
11843
case 633: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
11844
#line 4127 "MachineIndependent/glslang.y"
11845
{
11846
// May be best done as post process phase on intermediate code
11847
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
11848
parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
11849
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11850
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
11851
(yyval.interm.intermNode)->getAsAggregate()->setLinkType((yyvsp[-2].interm).function->getLinkType());
11852
parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
11853
(yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
11854
11855
// store the pragma information for debug and optimize and other vendor specific
11856
// information. This information can be queried from the parse tree
11857
(yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
11858
(yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
11859
(yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
11860
11861
// Set currentFunctionType to empty pointer when goes outside of the function
11862
parseContext.currentFunctionType = nullptr;
11863
11864
// For ES 100 only, according to ES shading language 100 spec: A function
11865
// body has a scope nested inside the function's definition.
11866
if (parseContext.profile == EEsProfile && parseContext.version == 100)
11867
{
11868
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11869
--parseContext.statementNestingLevel;
11870
}
11871
}
11872
#line 11873 "MachineIndependent/glslang_tab.cpp"
11873
break;
11874
11875
case 634: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
11876
#line 4157 "MachineIndependent/glslang.y"
11877
{
11878
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
11879
}
11880
#line 11881 "MachineIndependent/glslang_tab.cpp"
11881
break;
11882
11883
case 635: /* attribute_list: single_attribute */
11884
#line 4162 "MachineIndependent/glslang.y"
11885
{
11886
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
11887
}
11888
#line 11889 "MachineIndependent/glslang_tab.cpp"
11889
break;
11890
11891
case 636: /* attribute_list: attribute_list COMMA single_attribute */
11892
#line 4165 "MachineIndependent/glslang.y"
11893
{
11894
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
11895
}
11896
#line 11897 "MachineIndependent/glslang_tab.cpp"
11897
break;
11898
11899
case 637: /* single_attribute: IDENTIFIER */
11900
#line 4170 "MachineIndependent/glslang.y"
11901
{
11902
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
11903
}
11904
#line 11905 "MachineIndependent/glslang_tab.cpp"
11905
break;
11906
11907
case 638: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
11908
#line 4173 "MachineIndependent/glslang.y"
11909
{
11910
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
11911
}
11912
#line 11913 "MachineIndependent/glslang_tab.cpp"
11913
break;
11914
11915
case 639: /* spirv_requirements_list: spirv_requirements_parameter */
11916
#line 4178 "MachineIndependent/glslang.y"
11917
{
11918
(yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
11919
}
11920
#line 11921 "MachineIndependent/glslang_tab.cpp"
11921
break;
11922
11923
case 640: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */
11924
#line 4181 "MachineIndependent/glslang.y"
11925
{
11926
(yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
11927
}
11928
#line 11929 "MachineIndependent/glslang_tab.cpp"
11929
break;
11930
11931
case 641: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */
11932
#line 4186 "MachineIndependent/glslang.y"
11933
{
11934
(yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
11935
}
11936
#line 11937 "MachineIndependent/glslang_tab.cpp"
11937
break;
11938
11939
case 642: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */
11940
#line 4189 "MachineIndependent/glslang.y"
11941
{
11942
(yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11943
}
11944
#line 11945 "MachineIndependent/glslang_tab.cpp"
11945
break;
11946
11947
case 643: /* spirv_extension_list: STRING_LITERAL */
11948
#line 4194 "MachineIndependent/glslang.y"
11949
{
11950
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11951
}
11952
#line 11953 "MachineIndependent/glslang_tab.cpp"
11953
break;
11954
11955
case 644: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */
11956
#line 4197 "MachineIndependent/glslang.y"
11957
{
11958
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11959
}
11960
#line 11961 "MachineIndependent/glslang_tab.cpp"
11961
break;
11962
11963
case 645: /* spirv_capability_list: INTCONSTANT */
11964
#line 4202 "MachineIndependent/glslang.y"
11965
{
11966
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11967
}
11968
#line 11969 "MachineIndependent/glslang_tab.cpp"
11969
break;
11970
11971
case 646: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */
11972
#line 4205 "MachineIndependent/glslang.y"
11973
{
11974
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11975
}
11976
#line 11977 "MachineIndependent/glslang_tab.cpp"
11977
break;
11978
11979
case 647: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
11980
#line 4210 "MachineIndependent/glslang.y"
11981
{
11982
parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11983
(yyval.interm.intermNode) = 0;
11984
}
11985
#line 11986 "MachineIndependent/glslang_tab.cpp"
11986
break;
11987
11988
case 648: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
11989
#line 4214 "MachineIndependent/glslang.y"
11990
{
11991
parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11992
parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11993
(yyval.interm.intermNode) = 0;
11994
}
11995
#line 11996 "MachineIndependent/glslang_tab.cpp"
11996
break;
11997
11998
case 649: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
11999
#line 4219 "MachineIndependent/glslang.y"
12000
{
12001
parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12002
(yyval.interm.intermNode) = 0;
12003
}
12004
#line 12005 "MachineIndependent/glslang_tab.cpp"
12005
break;
12006
12007
case 650: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
12008
#line 4223 "MachineIndependent/glslang.y"
12009
{
12010
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12011
parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12012
(yyval.interm.intermNode) = 0;
12013
}
12014
#line 12015 "MachineIndependent/glslang_tab.cpp"
12015
break;
12016
12017
case 651: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
12018
#line 4228 "MachineIndependent/glslang.y"
12019
{
12020
parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12021
(yyval.interm.intermNode) = 0;
12022
}
12023
#line 12024 "MachineIndependent/glslang_tab.cpp"
12024
break;
12025
12026
case 652: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
12027
#line 4232 "MachineIndependent/glslang.y"
12028
{
12029
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12030
parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12031
(yyval.interm.intermNode) = 0;
12032
}
12033
#line 12034 "MachineIndependent/glslang_tab.cpp"
12034
break;
12035
12036
case 653: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */
12037
#line 4239 "MachineIndependent/glslang.y"
12038
{
12039
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12040
}
12041
#line 12042 "MachineIndependent/glslang_tab.cpp"
12042
break;
12043
12044
case 654: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */
12045
#line 4242 "MachineIndependent/glslang.y"
12046
{
12047
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
12048
}
12049
#line 12050 "MachineIndependent/glslang_tab.cpp"
12050
break;
12051
12052
case 655: /* spirv_execution_mode_parameter: FLOATCONSTANT */
12053
#line 4247 "MachineIndependent/glslang.y"
12054
{
12055
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
12056
}
12057
#line 12058 "MachineIndependent/glslang_tab.cpp"
12058
break;
12059
12060
case 656: /* spirv_execution_mode_parameter: INTCONSTANT */
12061
#line 4250 "MachineIndependent/glslang.y"
12062
{
12063
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
12064
}
12065
#line 12066 "MachineIndependent/glslang_tab.cpp"
12066
break;
12067
12068
case 657: /* spirv_execution_mode_parameter: UINTCONSTANT */
12069
#line 4253 "MachineIndependent/glslang.y"
12070
{
12071
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
12072
}
12073
#line 12074 "MachineIndependent/glslang_tab.cpp"
12074
break;
12075
12076
case 658: /* spirv_execution_mode_parameter: BOOLCONSTANT */
12077
#line 4256 "MachineIndependent/glslang.y"
12078
{
12079
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
12080
}
12081
#line 12082 "MachineIndependent/glslang_tab.cpp"
12082
break;
12083
12084
case 659: /* spirv_execution_mode_parameter: STRING_LITERAL */
12085
#line 4259 "MachineIndependent/glslang.y"
12086
{
12087
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
12088
}
12089
#line 12090 "MachineIndependent/glslang_tab.cpp"
12090
break;
12091
12092
case 660: /* spirv_execution_mode_id_parameter_list: constant_expression */
12093
#line 4264 "MachineIndependent/glslang.y"
12094
{
12095
if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12096
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12097
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12098
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
12099
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
12100
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12101
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
12102
}
12103
#line 12104 "MachineIndependent/glslang_tab.cpp"
12104
break;
12105
12106
case 661: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */
12107
#line 4273 "MachineIndependent/glslang.y"
12108
{
12109
if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12110
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12111
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12112
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
12113
(yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
12114
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12115
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
12116
}
12117
#line 12118 "MachineIndependent/glslang_tab.cpp"
12118
break;
12119
12120
case 662: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */
12121
#line 4284 "MachineIndependent/glslang.y"
12122
{
12123
(yyval.interm.type).init((yyvsp[-3].lex).loc);
12124
(yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
12125
(yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
12126
}
12127
#line 12128 "MachineIndependent/glslang_tab.cpp"
12128
break;
12129
12130
case 663: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
12131
#line 4289 "MachineIndependent/glslang.y"
12132
{
12133
(yyval.interm.type).init((yyvsp[-5].lex).loc);
12134
parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12135
(yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
12136
(yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
12137
}
12138
#line 12139 "MachineIndependent/glslang_tab.cpp"
12139
break;
12140
12141
case 664: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
12142
#line 4297 "MachineIndependent/glslang.y"
12143
{
12144
(yyval.interm.type).init((yyvsp[-3].lex).loc);
12145
(yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
12146
}
12147
#line 12148 "MachineIndependent/glslang_tab.cpp"
12148
break;
12149
12150
case 665: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
12151
#line 4301 "MachineIndependent/glslang.y"
12152
{
12153
(yyval.interm.type).init((yyvsp[-5].lex).loc);
12154
parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12155
(yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
12156
}
12157
#line 12158 "MachineIndependent/glslang_tab.cpp"
12158
break;
12159
12160
case 666: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
12161
#line 4306 "MachineIndependent/glslang.y"
12162
{
12163
(yyval.interm.type).init((yyvsp[-5].lex).loc);
12164
(yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12165
}
12166
#line 12167 "MachineIndependent/glslang_tab.cpp"
12167
break;
12168
12169
case 667: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
12170
#line 4310 "MachineIndependent/glslang.y"
12171
{
12172
(yyval.interm.type).init((yyvsp[-7].lex).loc);
12173
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12174
(yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12175
}
12176
#line 12177 "MachineIndependent/glslang_tab.cpp"
12177
break;
12178
12179
case 668: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
12180
#line 4315 "MachineIndependent/glslang.y"
12181
{
12182
(yyval.interm.type).init((yyvsp[-5].lex).loc);
12183
(yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12184
}
12185
#line 12186 "MachineIndependent/glslang_tab.cpp"
12186
break;
12187
12188
case 669: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
12189
#line 4319 "MachineIndependent/glslang.y"
12190
{
12191
(yyval.interm.type).init((yyvsp[-7].lex).loc);
12192
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12193
(yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12194
}
12195
#line 12196 "MachineIndependent/glslang_tab.cpp"
12196
break;
12197
12198
case 670: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
12199
#line 4324 "MachineIndependent/glslang.y"
12200
{
12201
(yyval.interm.type).init((yyvsp[-5].lex).loc);
12202
(yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12203
}
12204
#line 12205 "MachineIndependent/glslang_tab.cpp"
12205
break;
12206
12207
case 671: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
12208
#line 4328 "MachineIndependent/glslang.y"
12209
{
12210
(yyval.interm.type).init((yyvsp[-7].lex).loc);
12211
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12212
(yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12213
}
12214
#line 12215 "MachineIndependent/glslang_tab.cpp"
12215
break;
12216
12217
case 672: /* spirv_decorate_parameter_list: spirv_decorate_parameter */
12218
#line 4335 "MachineIndependent/glslang.y"
12219
{
12220
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12221
}
12222
#line 12223 "MachineIndependent/glslang_tab.cpp"
12223
break;
12224
12225
case 673: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */
12226
#line 4338 "MachineIndependent/glslang.y"
12227
{
12228
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
12229
}
12230
#line 12231 "MachineIndependent/glslang_tab.cpp"
12231
break;
12232
12233
case 674: /* spirv_decorate_parameter: FLOATCONSTANT */
12234
#line 4343 "MachineIndependent/glslang.y"
12235
{
12236
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
12237
}
12238
#line 12239 "MachineIndependent/glslang_tab.cpp"
12239
break;
12240
12241
case 675: /* spirv_decorate_parameter: INTCONSTANT */
12242
#line 4346 "MachineIndependent/glslang.y"
12243
{
12244
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
12245
}
12246
#line 12247 "MachineIndependent/glslang_tab.cpp"
12247
break;
12248
12249
case 676: /* spirv_decorate_parameter: UINTCONSTANT */
12250
#line 4349 "MachineIndependent/glslang.y"
12251
{
12252
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
12253
}
12254
#line 12255 "MachineIndependent/glslang_tab.cpp"
12255
break;
12256
12257
case 677: /* spirv_decorate_parameter: BOOLCONSTANT */
12258
#line 4352 "MachineIndependent/glslang.y"
12259
{
12260
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
12261
}
12262
#line 12263 "MachineIndependent/glslang_tab.cpp"
12263
break;
12264
12265
case 678: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter */
12266
#line 4357 "MachineIndependent/glslang.y"
12267
{
12268
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12269
}
12270
#line 12271 "MachineIndependent/glslang_tab.cpp"
12271
break;
12272
12273
case 679: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter */
12274
#line 4360 "MachineIndependent/glslang.y"
12275
{
12276
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
12277
}
12278
#line 12279 "MachineIndependent/glslang_tab.cpp"
12279
break;
12280
12281
case 680: /* spirv_decorate_id_parameter: variable_identifier */
12282
#line 4365 "MachineIndependent/glslang.y"
12283
{
12284
if ((yyvsp[0].interm.intermTypedNode)->getAsConstantUnion() || (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode())
12285
(yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode);
12286
else
12287
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "only allow constants or variables which are not elements of a composite", "", "");
12288
}
12289
#line 12290 "MachineIndependent/glslang_tab.cpp"
12290
break;
12291
12292
case 681: /* spirv_decorate_id_parameter: FLOATCONSTANT */
12293
#line 4371 "MachineIndependent/glslang.y"
12294
{
12295
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
12296
}
12297
#line 12298 "MachineIndependent/glslang_tab.cpp"
12298
break;
12299
12300
case 682: /* spirv_decorate_id_parameter: INTCONSTANT */
12301
#line 4374 "MachineIndependent/glslang.y"
12302
{
12303
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
12304
}
12305
#line 12306 "MachineIndependent/glslang_tab.cpp"
12306
break;
12307
12308
case 683: /* spirv_decorate_id_parameter: UINTCONSTANT */
12309
#line 4377 "MachineIndependent/glslang.y"
12310
{
12311
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
12312
}
12313
#line 12314 "MachineIndependent/glslang_tab.cpp"
12314
break;
12315
12316
case 684: /* spirv_decorate_id_parameter: BOOLCONSTANT */
12317
#line 4380 "MachineIndependent/glslang.y"
12318
{
12319
(yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
12320
}
12321
#line 12322 "MachineIndependent/glslang_tab.cpp"
12322
break;
12323
12324
case 685: /* spirv_decorate_string_parameter_list: STRING_LITERAL */
12325
#line 4385 "MachineIndependent/glslang.y"
12326
{
12327
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
12328
parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12329
}
12330
#line 12331 "MachineIndependent/glslang_tab.cpp"
12331
break;
12332
12333
case 686: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */
12334
#line 4389 "MachineIndependent/glslang.y"
12335
{
12336
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12337
}
12338
#line 12339 "MachineIndependent/glslang_tab.cpp"
12339
break;
12340
12341
case 687: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
12342
#line 4394 "MachineIndependent/glslang.y"
12343
{
12344
(yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12345
(yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12346
}
12347
#line 12348 "MachineIndependent/glslang_tab.cpp"
12348
break;
12349
12350
case 688: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
12351
#line 4398 "MachineIndependent/glslang.y"
12352
{
12353
(yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
12354
parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12355
(yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12356
}
12357
#line 12358 "MachineIndependent/glslang_tab.cpp"
12358
break;
12359
12360
case 689: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
12361
#line 4403 "MachineIndependent/glslang.y"
12362
{
12363
(yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
12364
(yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12365
}
12366
#line 12367 "MachineIndependent/glslang_tab.cpp"
12367
break;
12368
12369
case 690: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
12370
#line 4407 "MachineIndependent/glslang.y"
12371
{
12372
(yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12373
parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12374
(yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12375
}
12376
#line 12377 "MachineIndependent/glslang_tab.cpp"
12377
break;
12378
12379
case 691: /* spirv_type_parameter_list: spirv_type_parameter */
12380
#line 4414 "MachineIndependent/glslang.y"
12381
{
12382
(yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
12383
}
12384
#line 12385 "MachineIndependent/glslang_tab.cpp"
12385
break;
12386
12387
case 692: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */
12388
#line 4417 "MachineIndependent/glslang.y"
12389
{
12390
(yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
12391
}
12392
#line 12393 "MachineIndependent/glslang_tab.cpp"
12393
break;
12394
12395
case 693: /* spirv_type_parameter: constant_expression */
12396
#line 4422 "MachineIndependent/glslang.y"
12397
{
12398
(yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
12399
}
12400
#line 12401 "MachineIndependent/glslang_tab.cpp"
12401
break;
12402
12403
case 694: /* spirv_type_parameter: type_specifier_nonarray */
12404
#line 4425 "MachineIndependent/glslang.y"
12405
{
12406
(yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
12407
}
12408
#line 12409 "MachineIndependent/glslang_tab.cpp"
12409
break;
12410
12411
case 695: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
12412
#line 4430 "MachineIndependent/glslang.y"
12413
{
12414
(yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12415
}
12416
#line 12417 "MachineIndependent/glslang_tab.cpp"
12417
break;
12418
12419
case 696: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
12420
#line 4433 "MachineIndependent/glslang.y"
12421
{
12422
parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12423
(yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12424
}
12425
#line 12426 "MachineIndependent/glslang_tab.cpp"
12426
break;
12427
12428
case 697: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */
12429
#line 4439 "MachineIndependent/glslang.y"
12430
{
12431
(yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
12432
}
12433
#line 12434 "MachineIndependent/glslang_tab.cpp"
12434
break;
12435
12436
case 698: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */
12437
#line 4442 "MachineIndependent/glslang.y"
12438
{
12439
(yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
12440
}
12441
#line 12442 "MachineIndependent/glslang_tab.cpp"
12442
break;
12443
12444
case 699: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */
12445
#line 4447 "MachineIndependent/glslang.y"
12446
{
12447
(yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
12448
}
12449
#line 12450 "MachineIndependent/glslang_tab.cpp"
12450
break;
12451
12452
case 700: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */
12453
#line 4450 "MachineIndependent/glslang.y"
12454
{
12455
(yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
12456
}
12457
#line 12458 "MachineIndependent/glslang_tab.cpp"
12458
break;
12459
12460
12461
#line 12462 "MachineIndependent/glslang_tab.cpp"
12462
12463
default: break;
12464
}
12465
/* User semantic actions sometimes alter yychar, and that requires
12466
that yytoken be updated with the new translation. We take the
12467
approach of translating immediately before every use of yytoken.
12468
One alternative is translating here after every semantic action,
12469
but that translation would be missed if the semantic action invokes
12470
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
12471
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
12472
incorrect destructor might then be invoked immediately. In the
12473
case of YYERROR or YYBACKUP, subsequent parser actions might lead
12474
to an incorrect destructor call or verbose syntax error message
12475
before the lookahead is translated. */
12476
YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
12477
12478
YYPOPSTACK (yylen);
12479
yylen = 0;
12480
12481
*++yyvsp = yyval;
12482
12483
/* Now 'shift' the result of the reduction. Determine what state
12484
that goes to, based on the state we popped back to and the rule
12485
number reduced by. */
12486
{
12487
const int yylhs = yyr1[yyn] - YYNTOKENS;
12488
const int yyi = yypgoto[yylhs] + *yyssp;
12489
yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
12490
? yytable[yyi]
12491
: yydefgoto[yylhs]);
12492
}
12493
12494
goto yynewstate;
12495
12496
12497
/*--------------------------------------.
12498
| yyerrlab -- here on detecting error. |
12499
`--------------------------------------*/
12500
yyerrlab:
12501
/* Make sure we have latest lookahead translation. See comments at
12502
user semantic actions for why this is necessary. */
12503
yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
12504
/* If not already recovering from an error, report this error. */
12505
if (!yyerrstatus)
12506
{
12507
++yynerrs;
12508
{
12509
yypcontext_t yyctx
12510
= {yyssp, yytoken};
12511
char const *yymsgp = YY_("syntax error");
12512
int yysyntax_error_status;
12513
yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12514
if (yysyntax_error_status == 0)
12515
yymsgp = yymsg;
12516
else if (yysyntax_error_status == -1)
12517
{
12518
if (yymsg != yymsgbuf)
12519
YYSTACK_FREE (yymsg);
12520
yymsg = YY_CAST (char *,
12521
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
12522
if (yymsg)
12523
{
12524
yysyntax_error_status
12525
= yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12526
yymsgp = yymsg;
12527
}
12528
else
12529
{
12530
yymsg = yymsgbuf;
12531
yymsg_alloc = sizeof yymsgbuf;
12532
yysyntax_error_status = YYENOMEM;
12533
}
12534
}
12535
yyerror (pParseContext, yymsgp);
12536
if (yysyntax_error_status == YYENOMEM)
12537
YYNOMEM;
12538
}
12539
}
12540
12541
if (yyerrstatus == 3)
12542
{
12543
/* If just tried and failed to reuse lookahead token after an
12544
error, discard it. */
12545
12546
if (yychar <= YYEOF)
12547
{
12548
/* Return failure if at end of input. */
12549
if (yychar == YYEOF)
12550
YYABORT;
12551
}
12552
else
12553
{
12554
yydestruct ("Error: discarding",
12555
yytoken, &yylval, pParseContext);
12556
yychar = YYEMPTY;
12557
}
12558
}
12559
12560
/* Else will try to reuse lookahead token after shifting the error
12561
token. */
12562
goto yyerrlab1;
12563
12564
12565
/*---------------------------------------------------.
12566
| yyerrorlab -- error raised explicitly by YYERROR. |
12567
`---------------------------------------------------*/
12568
yyerrorlab:
12569
/* Pacify compilers when the user code never invokes YYERROR and the
12570
label yyerrorlab therefore never appears in user code. */
12571
if (0)
12572
YYERROR;
12573
++yynerrs;
12574
12575
/* Do not reclaim the symbols of the rule whose action triggered
12576
this YYERROR. */
12577
YYPOPSTACK (yylen);
12578
yylen = 0;
12579
YY_STACK_PRINT (yyss, yyssp);
12580
yystate = *yyssp;
12581
goto yyerrlab1;
12582
12583
12584
/*-------------------------------------------------------------.
12585
| yyerrlab1 -- common code for both syntax error and YYERROR. |
12586
`-------------------------------------------------------------*/
12587
yyerrlab1:
12588
yyerrstatus = 3; /* Each real token shifted decrements this. */
12589
12590
/* Pop stack until we find a state that shifts the error token. */
12591
for (;;)
12592
{
12593
yyn = yypact[yystate];
12594
if (!yypact_value_is_default (yyn))
12595
{
12596
yyn += YYSYMBOL_YYerror;
12597
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
12598
{
12599
yyn = yytable[yyn];
12600
if (0 < yyn)
12601
break;
12602
}
12603
}
12604
12605
/* Pop the current state because it cannot handle the error token. */
12606
if (yyssp == yyss)
12607
YYABORT;
12608
12609
12610
yydestruct ("Error: popping",
12611
YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
12612
YYPOPSTACK (1);
12613
yystate = *yyssp;
12614
YY_STACK_PRINT (yyss, yyssp);
12615
}
12616
12617
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
12618
*++yyvsp = yylval;
12619
YY_IGNORE_MAYBE_UNINITIALIZED_END
12620
12621
12622
/* Shift the error token. */
12623
YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
12624
12625
yystate = yyn;
12626
goto yynewstate;
12627
12628
12629
/*-------------------------------------.
12630
| yyacceptlab -- YYACCEPT comes here. |
12631
`-------------------------------------*/
12632
yyacceptlab:
12633
yyresult = 0;
12634
goto yyreturnlab;
12635
12636
12637
/*-----------------------------------.
12638
| yyabortlab -- YYABORT comes here. |
12639
`-----------------------------------*/
12640
yyabortlab:
12641
yyresult = 1;
12642
goto yyreturnlab;
12643
12644
12645
/*-----------------------------------------------------------.
12646
| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
12647
`-----------------------------------------------------------*/
12648
yyexhaustedlab:
12649
yyerror (pParseContext, YY_("memory exhausted"));
12650
yyresult = 2;
12651
goto yyreturnlab;
12652
12653
12654
/*----------------------------------------------------------.
12655
| yyreturnlab -- parsing is finished, clean up and return. |
12656
`----------------------------------------------------------*/
12657
yyreturnlab:
12658
if (yychar != YYEMPTY)
12659
{
12660
/* Make sure we have latest lookahead translation. See comments at
12661
user semantic actions for why this is necessary. */
12662
yytoken = YYTRANSLATE (yychar);
12663
yydestruct ("Cleanup: discarding lookahead",
12664
yytoken, &yylval, pParseContext);
12665
}
12666
/* Do not reclaim the symbols of the rule whose action triggered
12667
this YYABORT or YYACCEPT. */
12668
YYPOPSTACK (yylen);
12669
YY_STACK_PRINT (yyss, yyssp);
12670
while (yyssp != yyss)
12671
{
12672
yydestruct ("Cleanup: popping",
12673
YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
12674
YYPOPSTACK (1);
12675
}
12676
#ifndef yyoverflow
12677
if (yyss != yyssa)
12678
YYSTACK_FREE (yyss);
12679
#endif
12680
if (yymsg != yymsgbuf)
12681
YYSTACK_FREE (yymsg);
12682
return yyresult;
12683
}
12684
12685
#line 4454 "MachineIndependent/glslang.y"
12686
12687
12688