1 /* A Bison parser, made by GNU Bison 3.7.4. */
3 /* Bison implementation for Yacc-like parsers in C
5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
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.
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.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
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.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
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. */
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. */
48 /* Identify Bison output, and Bison version. */
51 /* Bison version string. */
52 #define YYBISON_VERSION "3.7.4"
55 #define YYSKELETON_NAME "yacc.c"
69 /* First part of user prologue. */
70 #line 69 "MachineIndependent/glslang.y"
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.
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.
88 #include "SymbolTable.h"
89 #include "ParseHelper.h"
90 #include "../Public/ShaderLang.h"
91 #include "attribute.h"
93 using namespace glslang;
96 #line 97 "MachineIndependent/glslang_tab.cpp"
100 # define YY_CAST(Type, Val) static_cast<Type> (Val)
101 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
103 # define YY_CAST(Type, Val) ((Type) (Val))
104 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
108 # if defined __cplusplus
109 # if 201103L <= __cplusplus
110 # define YY_NULLPTR nullptr
112 # define YY_NULLPTR 0
115 # define YY_NULLPTR ((void*)0)
119 #include "glslang_tab.cpp.h"
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_SAMPLERCUBEARRAY = 166, /* SAMPLERCUBEARRAY */
291 YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 167, /* SAMPLERCUBEARRAYSHADOW */
292 YYSYMBOL_ISAMPLERCUBEARRAY = 168, /* ISAMPLERCUBEARRAY */
293 YYSYMBOL_USAMPLERCUBEARRAY = 169, /* USAMPLERCUBEARRAY */
294 YYSYMBOL_SAMPLER1D = 170, /* SAMPLER1D */
295 YYSYMBOL_SAMPLER1DARRAY = 171, /* SAMPLER1DARRAY */
296 YYSYMBOL_SAMPLER1DARRAYSHADOW = 172, /* SAMPLER1DARRAYSHADOW */
297 YYSYMBOL_ISAMPLER1D = 173, /* ISAMPLER1D */
298 YYSYMBOL_SAMPLER1DSHADOW = 174, /* SAMPLER1DSHADOW */
299 YYSYMBOL_SAMPLER2DRECT = 175, /* SAMPLER2DRECT */
300 YYSYMBOL_SAMPLER2DRECTSHADOW = 176, /* SAMPLER2DRECTSHADOW */
301 YYSYMBOL_ISAMPLER2DRECT = 177, /* ISAMPLER2DRECT */
302 YYSYMBOL_USAMPLER2DRECT = 178, /* USAMPLER2DRECT */
303 YYSYMBOL_SAMPLERBUFFER = 179, /* SAMPLERBUFFER */
304 YYSYMBOL_ISAMPLERBUFFER = 180, /* ISAMPLERBUFFER */
305 YYSYMBOL_USAMPLERBUFFER = 181, /* USAMPLERBUFFER */
306 YYSYMBOL_SAMPLER2DMS = 182, /* SAMPLER2DMS */
307 YYSYMBOL_ISAMPLER2DMS = 183, /* ISAMPLER2DMS */
308 YYSYMBOL_USAMPLER2DMS = 184, /* USAMPLER2DMS */
309 YYSYMBOL_SAMPLER2DMSARRAY = 185, /* SAMPLER2DMSARRAY */
310 YYSYMBOL_ISAMPLER2DMSARRAY = 186, /* ISAMPLER2DMSARRAY */
311 YYSYMBOL_USAMPLER2DMSARRAY = 187, /* USAMPLER2DMSARRAY */
312 YYSYMBOL_SAMPLEREXTERNALOES = 188, /* SAMPLEREXTERNALOES */
313 YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 189, /* SAMPLEREXTERNAL2DY2YEXT */
314 YYSYMBOL_ISAMPLER1DARRAY = 190, /* ISAMPLER1DARRAY */
315 YYSYMBOL_USAMPLER1D = 191, /* USAMPLER1D */
316 YYSYMBOL_USAMPLER1DARRAY = 192, /* USAMPLER1DARRAY */
317 YYSYMBOL_F16SAMPLER1D = 193, /* F16SAMPLER1D */
318 YYSYMBOL_F16SAMPLER2D = 194, /* F16SAMPLER2D */
319 YYSYMBOL_F16SAMPLER3D = 195, /* F16SAMPLER3D */
320 YYSYMBOL_F16SAMPLER2DRECT = 196, /* F16SAMPLER2DRECT */
321 YYSYMBOL_F16SAMPLERCUBE = 197, /* F16SAMPLERCUBE */
322 YYSYMBOL_F16SAMPLER1DARRAY = 198, /* F16SAMPLER1DARRAY */
323 YYSYMBOL_F16SAMPLER2DARRAY = 199, /* F16SAMPLER2DARRAY */
324 YYSYMBOL_F16SAMPLERCUBEARRAY = 200, /* F16SAMPLERCUBEARRAY */
325 YYSYMBOL_F16SAMPLERBUFFER = 201, /* F16SAMPLERBUFFER */
326 YYSYMBOL_F16SAMPLER2DMS = 202, /* F16SAMPLER2DMS */
327 YYSYMBOL_F16SAMPLER2DMSARRAY = 203, /* F16SAMPLER2DMSARRAY */
328 YYSYMBOL_F16SAMPLER1DSHADOW = 204, /* F16SAMPLER1DSHADOW */
329 YYSYMBOL_F16SAMPLER2DSHADOW = 205, /* F16SAMPLER2DSHADOW */
330 YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 206, /* F16SAMPLER1DARRAYSHADOW */
331 YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 207, /* F16SAMPLER2DARRAYSHADOW */
332 YYSYMBOL_F16SAMPLER2DRECTSHADOW = 208, /* F16SAMPLER2DRECTSHADOW */
333 YYSYMBOL_F16SAMPLERCUBESHADOW = 209, /* F16SAMPLERCUBESHADOW */
334 YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 210, /* F16SAMPLERCUBEARRAYSHADOW */
335 YYSYMBOL_IMAGE1D = 211, /* IMAGE1D */
336 YYSYMBOL_IIMAGE1D = 212, /* IIMAGE1D */
337 YYSYMBOL_UIMAGE1D = 213, /* UIMAGE1D */
338 YYSYMBOL_IMAGE2D = 214, /* IMAGE2D */
339 YYSYMBOL_IIMAGE2D = 215, /* IIMAGE2D */
340 YYSYMBOL_UIMAGE2D = 216, /* UIMAGE2D */
341 YYSYMBOL_IMAGE3D = 217, /* IMAGE3D */
342 YYSYMBOL_IIMAGE3D = 218, /* IIMAGE3D */
343 YYSYMBOL_UIMAGE3D = 219, /* UIMAGE3D */
344 YYSYMBOL_IMAGE2DRECT = 220, /* IMAGE2DRECT */
345 YYSYMBOL_IIMAGE2DRECT = 221, /* IIMAGE2DRECT */
346 YYSYMBOL_UIMAGE2DRECT = 222, /* UIMAGE2DRECT */
347 YYSYMBOL_IMAGECUBE = 223, /* IMAGECUBE */
348 YYSYMBOL_IIMAGECUBE = 224, /* IIMAGECUBE */
349 YYSYMBOL_UIMAGECUBE = 225, /* UIMAGECUBE */
350 YYSYMBOL_IMAGEBUFFER = 226, /* IMAGEBUFFER */
351 YYSYMBOL_IIMAGEBUFFER = 227, /* IIMAGEBUFFER */
352 YYSYMBOL_UIMAGEBUFFER = 228, /* UIMAGEBUFFER */
353 YYSYMBOL_IMAGE1DARRAY = 229, /* IMAGE1DARRAY */
354 YYSYMBOL_IIMAGE1DARRAY = 230, /* IIMAGE1DARRAY */
355 YYSYMBOL_UIMAGE1DARRAY = 231, /* UIMAGE1DARRAY */
356 YYSYMBOL_IMAGE2DARRAY = 232, /* IMAGE2DARRAY */
357 YYSYMBOL_IIMAGE2DARRAY = 233, /* IIMAGE2DARRAY */
358 YYSYMBOL_UIMAGE2DARRAY = 234, /* UIMAGE2DARRAY */
359 YYSYMBOL_IMAGECUBEARRAY = 235, /* IMAGECUBEARRAY */
360 YYSYMBOL_IIMAGECUBEARRAY = 236, /* IIMAGECUBEARRAY */
361 YYSYMBOL_UIMAGECUBEARRAY = 237, /* UIMAGECUBEARRAY */
362 YYSYMBOL_IMAGE2DMS = 238, /* IMAGE2DMS */
363 YYSYMBOL_IIMAGE2DMS = 239, /* IIMAGE2DMS */
364 YYSYMBOL_UIMAGE2DMS = 240, /* UIMAGE2DMS */
365 YYSYMBOL_IMAGE2DMSARRAY = 241, /* IMAGE2DMSARRAY */
366 YYSYMBOL_IIMAGE2DMSARRAY = 242, /* IIMAGE2DMSARRAY */
367 YYSYMBOL_UIMAGE2DMSARRAY = 243, /* UIMAGE2DMSARRAY */
368 YYSYMBOL_F16IMAGE1D = 244, /* F16IMAGE1D */
369 YYSYMBOL_F16IMAGE2D = 245, /* F16IMAGE2D */
370 YYSYMBOL_F16IMAGE3D = 246, /* F16IMAGE3D */
371 YYSYMBOL_F16IMAGE2DRECT = 247, /* F16IMAGE2DRECT */
372 YYSYMBOL_F16IMAGECUBE = 248, /* F16IMAGECUBE */
373 YYSYMBOL_F16IMAGE1DARRAY = 249, /* F16IMAGE1DARRAY */
374 YYSYMBOL_F16IMAGE2DARRAY = 250, /* F16IMAGE2DARRAY */
375 YYSYMBOL_F16IMAGECUBEARRAY = 251, /* F16IMAGECUBEARRAY */
376 YYSYMBOL_F16IMAGEBUFFER = 252, /* F16IMAGEBUFFER */
377 YYSYMBOL_F16IMAGE2DMS = 253, /* F16IMAGE2DMS */
378 YYSYMBOL_F16IMAGE2DMSARRAY = 254, /* F16IMAGE2DMSARRAY */
379 YYSYMBOL_I64IMAGE1D = 255, /* I64IMAGE1D */
380 YYSYMBOL_U64IMAGE1D = 256, /* U64IMAGE1D */
381 YYSYMBOL_I64IMAGE2D = 257, /* I64IMAGE2D */
382 YYSYMBOL_U64IMAGE2D = 258, /* U64IMAGE2D */
383 YYSYMBOL_I64IMAGE3D = 259, /* I64IMAGE3D */
384 YYSYMBOL_U64IMAGE3D = 260, /* U64IMAGE3D */
385 YYSYMBOL_I64IMAGE2DRECT = 261, /* I64IMAGE2DRECT */
386 YYSYMBOL_U64IMAGE2DRECT = 262, /* U64IMAGE2DRECT */
387 YYSYMBOL_I64IMAGECUBE = 263, /* I64IMAGECUBE */
388 YYSYMBOL_U64IMAGECUBE = 264, /* U64IMAGECUBE */
389 YYSYMBOL_I64IMAGEBUFFER = 265, /* I64IMAGEBUFFER */
390 YYSYMBOL_U64IMAGEBUFFER = 266, /* U64IMAGEBUFFER */
391 YYSYMBOL_I64IMAGE1DARRAY = 267, /* I64IMAGE1DARRAY */
392 YYSYMBOL_U64IMAGE1DARRAY = 268, /* U64IMAGE1DARRAY */
393 YYSYMBOL_I64IMAGE2DARRAY = 269, /* I64IMAGE2DARRAY */
394 YYSYMBOL_U64IMAGE2DARRAY = 270, /* U64IMAGE2DARRAY */
395 YYSYMBOL_I64IMAGECUBEARRAY = 271, /* I64IMAGECUBEARRAY */
396 YYSYMBOL_U64IMAGECUBEARRAY = 272, /* U64IMAGECUBEARRAY */
397 YYSYMBOL_I64IMAGE2DMS = 273, /* I64IMAGE2DMS */
398 YYSYMBOL_U64IMAGE2DMS = 274, /* U64IMAGE2DMS */
399 YYSYMBOL_I64IMAGE2DMSARRAY = 275, /* I64IMAGE2DMSARRAY */
400 YYSYMBOL_U64IMAGE2DMSARRAY = 276, /* U64IMAGE2DMSARRAY */
401 YYSYMBOL_TEXTURECUBEARRAY = 277, /* TEXTURECUBEARRAY */
402 YYSYMBOL_ITEXTURECUBEARRAY = 278, /* ITEXTURECUBEARRAY */
403 YYSYMBOL_UTEXTURECUBEARRAY = 279, /* UTEXTURECUBEARRAY */
404 YYSYMBOL_TEXTURE1D = 280, /* TEXTURE1D */
405 YYSYMBOL_ITEXTURE1D = 281, /* ITEXTURE1D */
406 YYSYMBOL_UTEXTURE1D = 282, /* UTEXTURE1D */
407 YYSYMBOL_TEXTURE1DARRAY = 283, /* TEXTURE1DARRAY */
408 YYSYMBOL_ITEXTURE1DARRAY = 284, /* ITEXTURE1DARRAY */
409 YYSYMBOL_UTEXTURE1DARRAY = 285, /* UTEXTURE1DARRAY */
410 YYSYMBOL_TEXTURE2DRECT = 286, /* TEXTURE2DRECT */
411 YYSYMBOL_ITEXTURE2DRECT = 287, /* ITEXTURE2DRECT */
412 YYSYMBOL_UTEXTURE2DRECT = 288, /* UTEXTURE2DRECT */
413 YYSYMBOL_TEXTUREBUFFER = 289, /* TEXTUREBUFFER */
414 YYSYMBOL_ITEXTUREBUFFER = 290, /* ITEXTUREBUFFER */
415 YYSYMBOL_UTEXTUREBUFFER = 291, /* UTEXTUREBUFFER */
416 YYSYMBOL_TEXTURE2DMS = 292, /* TEXTURE2DMS */
417 YYSYMBOL_ITEXTURE2DMS = 293, /* ITEXTURE2DMS */
418 YYSYMBOL_UTEXTURE2DMS = 294, /* UTEXTURE2DMS */
419 YYSYMBOL_TEXTURE2DMSARRAY = 295, /* TEXTURE2DMSARRAY */
420 YYSYMBOL_ITEXTURE2DMSARRAY = 296, /* ITEXTURE2DMSARRAY */
421 YYSYMBOL_UTEXTURE2DMSARRAY = 297, /* UTEXTURE2DMSARRAY */
422 YYSYMBOL_F16TEXTURE1D = 298, /* F16TEXTURE1D */
423 YYSYMBOL_F16TEXTURE2D = 299, /* F16TEXTURE2D */
424 YYSYMBOL_F16TEXTURE3D = 300, /* F16TEXTURE3D */
425 YYSYMBOL_F16TEXTURE2DRECT = 301, /* F16TEXTURE2DRECT */
426 YYSYMBOL_F16TEXTURECUBE = 302, /* F16TEXTURECUBE */
427 YYSYMBOL_F16TEXTURE1DARRAY = 303, /* F16TEXTURE1DARRAY */
428 YYSYMBOL_F16TEXTURE2DARRAY = 304, /* F16TEXTURE2DARRAY */
429 YYSYMBOL_F16TEXTURECUBEARRAY = 305, /* F16TEXTURECUBEARRAY */
430 YYSYMBOL_F16TEXTUREBUFFER = 306, /* F16TEXTUREBUFFER */
431 YYSYMBOL_F16TEXTURE2DMS = 307, /* F16TEXTURE2DMS */
432 YYSYMBOL_F16TEXTURE2DMSARRAY = 308, /* F16TEXTURE2DMSARRAY */
433 YYSYMBOL_SUBPASSINPUT = 309, /* SUBPASSINPUT */
434 YYSYMBOL_SUBPASSINPUTMS = 310, /* SUBPASSINPUTMS */
435 YYSYMBOL_ISUBPASSINPUT = 311, /* ISUBPASSINPUT */
436 YYSYMBOL_ISUBPASSINPUTMS = 312, /* ISUBPASSINPUTMS */
437 YYSYMBOL_USUBPASSINPUT = 313, /* USUBPASSINPUT */
438 YYSYMBOL_USUBPASSINPUTMS = 314, /* USUBPASSINPUTMS */
439 YYSYMBOL_F16SUBPASSINPUT = 315, /* F16SUBPASSINPUT */
440 YYSYMBOL_F16SUBPASSINPUTMS = 316, /* F16SUBPASSINPUTMS */
441 YYSYMBOL_SPIRV_INSTRUCTION = 317, /* SPIRV_INSTRUCTION */
442 YYSYMBOL_SPIRV_EXECUTION_MODE = 318, /* SPIRV_EXECUTION_MODE */
443 YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 319, /* SPIRV_EXECUTION_MODE_ID */
444 YYSYMBOL_SPIRV_DECORATE = 320, /* SPIRV_DECORATE */
445 YYSYMBOL_SPIRV_DECORATE_ID = 321, /* SPIRV_DECORATE_ID */
446 YYSYMBOL_SPIRV_DECORATE_STRING = 322, /* SPIRV_DECORATE_STRING */
447 YYSYMBOL_SPIRV_TYPE = 323, /* SPIRV_TYPE */
448 YYSYMBOL_SPIRV_STORAGE_CLASS = 324, /* SPIRV_STORAGE_CLASS */
449 YYSYMBOL_SPIRV_BY_REFERENCE = 325, /* SPIRV_BY_REFERENCE */
450 YYSYMBOL_SPIRV_LITERAL = 326, /* SPIRV_LITERAL */
451 YYSYMBOL_LEFT_OP = 327, /* LEFT_OP */
452 YYSYMBOL_RIGHT_OP = 328, /* RIGHT_OP */
453 YYSYMBOL_INC_OP = 329, /* INC_OP */
454 YYSYMBOL_DEC_OP = 330, /* DEC_OP */
455 YYSYMBOL_LE_OP = 331, /* LE_OP */
456 YYSYMBOL_GE_OP = 332, /* GE_OP */
457 YYSYMBOL_EQ_OP = 333, /* EQ_OP */
458 YYSYMBOL_NE_OP = 334, /* NE_OP */
459 YYSYMBOL_AND_OP = 335, /* AND_OP */
460 YYSYMBOL_OR_OP = 336, /* OR_OP */
461 YYSYMBOL_XOR_OP = 337, /* XOR_OP */
462 YYSYMBOL_MUL_ASSIGN = 338, /* MUL_ASSIGN */
463 YYSYMBOL_DIV_ASSIGN = 339, /* DIV_ASSIGN */
464 YYSYMBOL_ADD_ASSIGN = 340, /* ADD_ASSIGN */
465 YYSYMBOL_MOD_ASSIGN = 341, /* MOD_ASSIGN */
466 YYSYMBOL_LEFT_ASSIGN = 342, /* LEFT_ASSIGN */
467 YYSYMBOL_RIGHT_ASSIGN = 343, /* RIGHT_ASSIGN */
468 YYSYMBOL_AND_ASSIGN = 344, /* AND_ASSIGN */
469 YYSYMBOL_XOR_ASSIGN = 345, /* XOR_ASSIGN */
470 YYSYMBOL_OR_ASSIGN = 346, /* OR_ASSIGN */
471 YYSYMBOL_SUB_ASSIGN = 347, /* SUB_ASSIGN */
472 YYSYMBOL_STRING_LITERAL = 348, /* STRING_LITERAL */
473 YYSYMBOL_LEFT_PAREN = 349, /* LEFT_PAREN */
474 YYSYMBOL_RIGHT_PAREN = 350, /* RIGHT_PAREN */
475 YYSYMBOL_LEFT_BRACKET = 351, /* LEFT_BRACKET */
476 YYSYMBOL_RIGHT_BRACKET = 352, /* RIGHT_BRACKET */
477 YYSYMBOL_LEFT_BRACE = 353, /* LEFT_BRACE */
478 YYSYMBOL_RIGHT_BRACE = 354, /* RIGHT_BRACE */
479 YYSYMBOL_DOT = 355, /* DOT */
480 YYSYMBOL_COMMA = 356, /* COMMA */
481 YYSYMBOL_COLON = 357, /* COLON */
482 YYSYMBOL_EQUAL = 358, /* EQUAL */
483 YYSYMBOL_SEMICOLON = 359, /* SEMICOLON */
484 YYSYMBOL_BANG = 360, /* BANG */
485 YYSYMBOL_DASH = 361, /* DASH */
486 YYSYMBOL_TILDE = 362, /* TILDE */
487 YYSYMBOL_PLUS = 363, /* PLUS */
488 YYSYMBOL_STAR = 364, /* STAR */
489 YYSYMBOL_SLASH = 365, /* SLASH */
490 YYSYMBOL_PERCENT = 366, /* PERCENT */
491 YYSYMBOL_LEFT_ANGLE = 367, /* LEFT_ANGLE */
492 YYSYMBOL_RIGHT_ANGLE = 368, /* RIGHT_ANGLE */
493 YYSYMBOL_VERTICAL_BAR = 369, /* VERTICAL_BAR */
494 YYSYMBOL_CARET = 370, /* CARET */
495 YYSYMBOL_AMPERSAND = 371, /* AMPERSAND */
496 YYSYMBOL_QUESTION = 372, /* QUESTION */
497 YYSYMBOL_INVARIANT = 373, /* INVARIANT */
498 YYSYMBOL_HIGH_PRECISION = 374, /* HIGH_PRECISION */
499 YYSYMBOL_MEDIUM_PRECISION = 375, /* MEDIUM_PRECISION */
500 YYSYMBOL_LOW_PRECISION = 376, /* LOW_PRECISION */
501 YYSYMBOL_PRECISION = 377, /* PRECISION */
502 YYSYMBOL_PACKED = 378, /* PACKED */
503 YYSYMBOL_RESOURCE = 379, /* RESOURCE */
504 YYSYMBOL_SUPERP = 380, /* SUPERP */
505 YYSYMBOL_FLOATCONSTANT = 381, /* FLOATCONSTANT */
506 YYSYMBOL_INTCONSTANT = 382, /* INTCONSTANT */
507 YYSYMBOL_UINTCONSTANT = 383, /* UINTCONSTANT */
508 YYSYMBOL_BOOLCONSTANT = 384, /* BOOLCONSTANT */
509 YYSYMBOL_IDENTIFIER = 385, /* IDENTIFIER */
510 YYSYMBOL_TYPE_NAME = 386, /* TYPE_NAME */
511 YYSYMBOL_CENTROID = 387, /* CENTROID */
512 YYSYMBOL_IN = 388, /* IN */
513 YYSYMBOL_OUT = 389, /* OUT */
514 YYSYMBOL_INOUT = 390, /* INOUT */
515 YYSYMBOL_STRUCT = 391, /* STRUCT */
516 YYSYMBOL_VOID = 392, /* VOID */
517 YYSYMBOL_WHILE = 393, /* WHILE */
518 YYSYMBOL_BREAK = 394, /* BREAK */
519 YYSYMBOL_CONTINUE = 395, /* CONTINUE */
520 YYSYMBOL_DO = 396, /* DO */
521 YYSYMBOL_ELSE = 397, /* ELSE */
522 YYSYMBOL_FOR = 398, /* FOR */
523 YYSYMBOL_IF = 399, /* IF */
524 YYSYMBOL_DISCARD = 400, /* DISCARD */
525 YYSYMBOL_RETURN = 401, /* RETURN */
526 YYSYMBOL_SWITCH = 402, /* SWITCH */
527 YYSYMBOL_CASE = 403, /* CASE */
528 YYSYMBOL_DEFAULT = 404, /* DEFAULT */
529 YYSYMBOL_TERMINATE_INVOCATION = 405, /* TERMINATE_INVOCATION */
530 YYSYMBOL_TERMINATE_RAY = 406, /* TERMINATE_RAY */
531 YYSYMBOL_IGNORE_INTERSECTION = 407, /* IGNORE_INTERSECTION */
532 YYSYMBOL_UNIFORM = 408, /* UNIFORM */
533 YYSYMBOL_SHARED = 409, /* SHARED */
534 YYSYMBOL_BUFFER = 410, /* BUFFER */
535 YYSYMBOL_FLAT = 411, /* FLAT */
536 YYSYMBOL_SMOOTH = 412, /* SMOOTH */
537 YYSYMBOL_LAYOUT = 413, /* LAYOUT */
538 YYSYMBOL_DOUBLECONSTANT = 414, /* DOUBLECONSTANT */
539 YYSYMBOL_INT16CONSTANT = 415, /* INT16CONSTANT */
540 YYSYMBOL_UINT16CONSTANT = 416, /* UINT16CONSTANT */
541 YYSYMBOL_FLOAT16CONSTANT = 417, /* FLOAT16CONSTANT */
542 YYSYMBOL_INT32CONSTANT = 418, /* INT32CONSTANT */
543 YYSYMBOL_UINT32CONSTANT = 419, /* UINT32CONSTANT */
544 YYSYMBOL_INT64CONSTANT = 420, /* INT64CONSTANT */
545 YYSYMBOL_UINT64CONSTANT = 421, /* UINT64CONSTANT */
546 YYSYMBOL_SUBROUTINE = 422, /* SUBROUTINE */
547 YYSYMBOL_DEMOTE = 423, /* DEMOTE */
548 YYSYMBOL_PAYLOADNV = 424, /* PAYLOADNV */
549 YYSYMBOL_PAYLOADINNV = 425, /* PAYLOADINNV */
550 YYSYMBOL_HITATTRNV = 426, /* HITATTRNV */
551 YYSYMBOL_CALLDATANV = 427, /* CALLDATANV */
552 YYSYMBOL_CALLDATAINNV = 428, /* CALLDATAINNV */
553 YYSYMBOL_PAYLOADEXT = 429, /* PAYLOADEXT */
554 YYSYMBOL_PAYLOADINEXT = 430, /* PAYLOADINEXT */
555 YYSYMBOL_HITATTREXT = 431, /* HITATTREXT */
556 YYSYMBOL_CALLDATAEXT = 432, /* CALLDATAEXT */
557 YYSYMBOL_CALLDATAINEXT = 433, /* CALLDATAINEXT */
558 YYSYMBOL_PATCH = 434, /* PATCH */
559 YYSYMBOL_SAMPLE = 435, /* SAMPLE */
560 YYSYMBOL_NONUNIFORM = 436, /* NONUNIFORM */
561 YYSYMBOL_COHERENT = 437, /* COHERENT */
562 YYSYMBOL_VOLATILE = 438, /* VOLATILE */
563 YYSYMBOL_RESTRICT = 439, /* RESTRICT */
564 YYSYMBOL_READONLY = 440, /* READONLY */
565 YYSYMBOL_WRITEONLY = 441, /* WRITEONLY */
566 YYSYMBOL_DEVICECOHERENT = 442, /* DEVICECOHERENT */
567 YYSYMBOL_QUEUEFAMILYCOHERENT = 443, /* QUEUEFAMILYCOHERENT */
568 YYSYMBOL_WORKGROUPCOHERENT = 444, /* WORKGROUPCOHERENT */
569 YYSYMBOL_SUBGROUPCOHERENT = 445, /* SUBGROUPCOHERENT */
570 YYSYMBOL_NONPRIVATE = 446, /* NONPRIVATE */
571 YYSYMBOL_SHADERCALLCOHERENT = 447, /* SHADERCALLCOHERENT */
572 YYSYMBOL_NOPERSPECTIVE = 448, /* NOPERSPECTIVE */
573 YYSYMBOL_EXPLICITINTERPAMD = 449, /* EXPLICITINTERPAMD */
574 YYSYMBOL_PERVERTEXNV = 450, /* PERVERTEXNV */
575 YYSYMBOL_PERPRIMITIVENV = 451, /* PERPRIMITIVENV */
576 YYSYMBOL_PERVIEWNV = 452, /* PERVIEWNV */
577 YYSYMBOL_PERTASKNV = 453, /* PERTASKNV */
578 YYSYMBOL_PRECISE = 454, /* PRECISE */
579 YYSYMBOL_YYACCEPT = 455, /* $accept */
580 YYSYMBOL_variable_identifier = 456, /* variable_identifier */
581 YYSYMBOL_primary_expression = 457, /* primary_expression */
582 YYSYMBOL_postfix_expression = 458, /* postfix_expression */
583 YYSYMBOL_integer_expression = 459, /* integer_expression */
584 YYSYMBOL_function_call = 460, /* function_call */
585 YYSYMBOL_function_call_or_method = 461, /* function_call_or_method */
586 YYSYMBOL_function_call_generic = 462, /* function_call_generic */
587 YYSYMBOL_function_call_header_no_parameters = 463, /* function_call_header_no_parameters */
588 YYSYMBOL_function_call_header_with_parameters = 464, /* function_call_header_with_parameters */
589 YYSYMBOL_function_call_header = 465, /* function_call_header */
590 YYSYMBOL_function_identifier = 466, /* function_identifier */
591 YYSYMBOL_unary_expression = 467, /* unary_expression */
592 YYSYMBOL_unary_operator = 468, /* unary_operator */
593 YYSYMBOL_multiplicative_expression = 469, /* multiplicative_expression */
594 YYSYMBOL_additive_expression = 470, /* additive_expression */
595 YYSYMBOL_shift_expression = 471, /* shift_expression */
596 YYSYMBOL_relational_expression = 472, /* relational_expression */
597 YYSYMBOL_equality_expression = 473, /* equality_expression */
598 YYSYMBOL_and_expression = 474, /* and_expression */
599 YYSYMBOL_exclusive_or_expression = 475, /* exclusive_or_expression */
600 YYSYMBOL_inclusive_or_expression = 476, /* inclusive_or_expression */
601 YYSYMBOL_logical_and_expression = 477, /* logical_and_expression */
602 YYSYMBOL_logical_xor_expression = 478, /* logical_xor_expression */
603 YYSYMBOL_logical_or_expression = 479, /* logical_or_expression */
604 YYSYMBOL_conditional_expression = 480, /* conditional_expression */
605 YYSYMBOL_481_1 = 481, /* $@1 */
606 YYSYMBOL_assignment_expression = 482, /* assignment_expression */
607 YYSYMBOL_assignment_operator = 483, /* assignment_operator */
608 YYSYMBOL_expression = 484, /* expression */
609 YYSYMBOL_constant_expression = 485, /* constant_expression */
610 YYSYMBOL_declaration = 486, /* declaration */
611 YYSYMBOL_block_structure = 487, /* block_structure */
612 YYSYMBOL_488_2 = 488, /* $@2 */
613 YYSYMBOL_identifier_list = 489, /* identifier_list */
614 YYSYMBOL_function_prototype = 490, /* function_prototype */
615 YYSYMBOL_function_declarator = 491, /* function_declarator */
616 YYSYMBOL_function_header_with_parameters = 492, /* function_header_with_parameters */
617 YYSYMBOL_function_header = 493, /* function_header */
618 YYSYMBOL_parameter_declarator = 494, /* parameter_declarator */
619 YYSYMBOL_parameter_declaration = 495, /* parameter_declaration */
620 YYSYMBOL_parameter_type_specifier = 496, /* parameter_type_specifier */
621 YYSYMBOL_init_declarator_list = 497, /* init_declarator_list */
622 YYSYMBOL_single_declaration = 498, /* single_declaration */
623 YYSYMBOL_fully_specified_type = 499, /* fully_specified_type */
624 YYSYMBOL_invariant_qualifier = 500, /* invariant_qualifier */
625 YYSYMBOL_interpolation_qualifier = 501, /* interpolation_qualifier */
626 YYSYMBOL_layout_qualifier = 502, /* layout_qualifier */
627 YYSYMBOL_layout_qualifier_id_list = 503, /* layout_qualifier_id_list */
628 YYSYMBOL_layout_qualifier_id = 504, /* layout_qualifier_id */
629 YYSYMBOL_precise_qualifier = 505, /* precise_qualifier */
630 YYSYMBOL_type_qualifier = 506, /* type_qualifier */
631 YYSYMBOL_single_type_qualifier = 507, /* single_type_qualifier */
632 YYSYMBOL_storage_qualifier = 508, /* storage_qualifier */
633 YYSYMBOL_non_uniform_qualifier = 509, /* non_uniform_qualifier */
634 YYSYMBOL_type_name_list = 510, /* type_name_list */
635 YYSYMBOL_type_specifier = 511, /* type_specifier */
636 YYSYMBOL_array_specifier = 512, /* array_specifier */
637 YYSYMBOL_type_parameter_specifier_opt = 513, /* type_parameter_specifier_opt */
638 YYSYMBOL_type_parameter_specifier = 514, /* type_parameter_specifier */
639 YYSYMBOL_type_parameter_specifier_list = 515, /* type_parameter_specifier_list */
640 YYSYMBOL_type_specifier_nonarray = 516, /* type_specifier_nonarray */
641 YYSYMBOL_precision_qualifier = 517, /* precision_qualifier */
642 YYSYMBOL_struct_specifier = 518, /* struct_specifier */
643 YYSYMBOL_519_3 = 519, /* $@3 */
644 YYSYMBOL_520_4 = 520, /* $@4 */
645 YYSYMBOL_struct_declaration_list = 521, /* struct_declaration_list */
646 YYSYMBOL_struct_declaration = 522, /* struct_declaration */
647 YYSYMBOL_struct_declarator_list = 523, /* struct_declarator_list */
648 YYSYMBOL_struct_declarator = 524, /* struct_declarator */
649 YYSYMBOL_initializer = 525, /* initializer */
650 YYSYMBOL_initializer_list = 526, /* initializer_list */
651 YYSYMBOL_declaration_statement = 527, /* declaration_statement */
652 YYSYMBOL_statement = 528, /* statement */
653 YYSYMBOL_simple_statement = 529, /* simple_statement */
654 YYSYMBOL_demote_statement = 530, /* demote_statement */
655 YYSYMBOL_compound_statement = 531, /* compound_statement */
656 YYSYMBOL_532_5 = 532, /* $@5 */
657 YYSYMBOL_533_6 = 533, /* $@6 */
658 YYSYMBOL_statement_no_new_scope = 534, /* statement_no_new_scope */
659 YYSYMBOL_statement_scoped = 535, /* statement_scoped */
660 YYSYMBOL_536_7 = 536, /* $@7 */
661 YYSYMBOL_537_8 = 537, /* $@8 */
662 YYSYMBOL_compound_statement_no_new_scope = 538, /* compound_statement_no_new_scope */
663 YYSYMBOL_statement_list = 539, /* statement_list */
664 YYSYMBOL_expression_statement = 540, /* expression_statement */
665 YYSYMBOL_selection_statement = 541, /* selection_statement */
666 YYSYMBOL_selection_statement_nonattributed = 542, /* selection_statement_nonattributed */
667 YYSYMBOL_selection_rest_statement = 543, /* selection_rest_statement */
668 YYSYMBOL_condition = 544, /* condition */
669 YYSYMBOL_switch_statement = 545, /* switch_statement */
670 YYSYMBOL_switch_statement_nonattributed = 546, /* switch_statement_nonattributed */
671 YYSYMBOL_547_9 = 547, /* $@9 */
672 YYSYMBOL_switch_statement_list = 548, /* switch_statement_list */
673 YYSYMBOL_case_label = 549, /* case_label */
674 YYSYMBOL_iteration_statement = 550, /* iteration_statement */
675 YYSYMBOL_iteration_statement_nonattributed = 551, /* iteration_statement_nonattributed */
676 YYSYMBOL_552_10 = 552, /* $@10 */
677 YYSYMBOL_553_11 = 553, /* $@11 */
678 YYSYMBOL_554_12 = 554, /* $@12 */
679 YYSYMBOL_for_init_statement = 555, /* for_init_statement */
680 YYSYMBOL_conditionopt = 556, /* conditionopt */
681 YYSYMBOL_for_rest_statement = 557, /* for_rest_statement */
682 YYSYMBOL_jump_statement = 558, /* jump_statement */
683 YYSYMBOL_translation_unit = 559, /* translation_unit */
684 YYSYMBOL_external_declaration = 560, /* external_declaration */
685 YYSYMBOL_function_definition = 561, /* function_definition */
686 YYSYMBOL_562_13 = 562, /* $@13 */
687 YYSYMBOL_attribute = 563, /* attribute */
688 YYSYMBOL_attribute_list = 564, /* attribute_list */
689 YYSYMBOL_single_attribute = 565, /* single_attribute */
690 YYSYMBOL_spirv_requirements_list = 566, /* spirv_requirements_list */
691 YYSYMBOL_spirv_requirements_parameter = 567, /* spirv_requirements_parameter */
692 YYSYMBOL_spirv_extension_list = 568, /* spirv_extension_list */
693 YYSYMBOL_spirv_capability_list = 569, /* spirv_capability_list */
694 YYSYMBOL_spirv_execution_mode_qualifier = 570, /* spirv_execution_mode_qualifier */
695 YYSYMBOL_spirv_execution_mode_parameter_list = 571, /* spirv_execution_mode_parameter_list */
696 YYSYMBOL_spirv_execution_mode_parameter = 572, /* spirv_execution_mode_parameter */
697 YYSYMBOL_spirv_execution_mode_id_parameter_list = 573, /* spirv_execution_mode_id_parameter_list */
698 YYSYMBOL_spirv_storage_class_qualifier = 574, /* spirv_storage_class_qualifier */
699 YYSYMBOL_spirv_decorate_qualifier = 575, /* spirv_decorate_qualifier */
700 YYSYMBOL_spirv_decorate_parameter_list = 576, /* spirv_decorate_parameter_list */
701 YYSYMBOL_spirv_decorate_parameter = 577, /* spirv_decorate_parameter */
702 YYSYMBOL_spirv_decorate_id_parameter_list = 578, /* spirv_decorate_id_parameter_list */
703 YYSYMBOL_spirv_decorate_string_parameter_list = 579, /* spirv_decorate_string_parameter_list */
704 YYSYMBOL_spirv_type_specifier = 580, /* spirv_type_specifier */
705 YYSYMBOL_spirv_type_parameter_list = 581, /* spirv_type_parameter_list */
706 YYSYMBOL_spirv_type_parameter = 582, /* spirv_type_parameter */
707 YYSYMBOL_spirv_instruction_qualifier = 583, /* spirv_instruction_qualifier */
708 YYSYMBOL_spirv_instruction_qualifier_list = 584, /* spirv_instruction_qualifier_list */
709 YYSYMBOL_spirv_instruction_qualifier_id = 585 /* spirv_instruction_qualifier_id */
711 typedef enum yysymbol_kind_t yysymbol_kind_t;
714 /* Second part of user prologue. */
715 #line 136 "MachineIndependent/glslang.y"
718 /* windows only pragma */
720 #pragma warning(disable : 4065)
721 #pragma warning(disable : 4127)
722 #pragma warning(disable : 4244)
725 #define parseContext (*pParseContext)
726 #define yyerror(context, msg) context->parserError(msg)
728 extern int yylex(YYSTYPE*, TParseContext&);
731 #line 732 "MachineIndependent/glslang_tab.cpp"
738 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
739 <limits.h> and (if available) <stdint.h> are included
740 so that the code can choose integer types of a good width. */
742 #ifndef __PTRDIFF_MAX__
743 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
744 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
745 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
750 /* Narrow types that promote to a signed type and that can represent a
751 signed or unsigned integer of at least N bits. In tables they can
752 save space and decrease cache pressure. Promoting to a signed type
753 helps avoid bugs in integer arithmetic. */
755 #ifdef __INT_LEAST8_MAX__
756 typedef __INT_LEAST8_TYPE__ yytype_int8;
757 #elif defined YY_STDINT_H
758 typedef int_least8_t yytype_int8;
760 typedef signed char yytype_int8;
763 #ifdef __INT_LEAST16_MAX__
764 typedef __INT_LEAST16_TYPE__ yytype_int16;
765 #elif defined YY_STDINT_H
766 typedef int_least16_t yytype_int16;
768 typedef short yytype_int16;
771 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
772 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
773 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
774 && UINT_LEAST8_MAX <= INT_MAX)
775 typedef uint_least8_t yytype_uint8;
776 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
777 typedef unsigned char yytype_uint8;
779 typedef short yytype_uint8;
782 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
783 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
784 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
785 && UINT_LEAST16_MAX <= INT_MAX)
786 typedef uint_least16_t yytype_uint16;
787 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
788 typedef unsigned short yytype_uint16;
790 typedef int yytype_uint16;
794 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
795 # define YYPTRDIFF_T __PTRDIFF_TYPE__
796 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
797 # elif defined PTRDIFF_MAX
799 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
801 # define YYPTRDIFF_T ptrdiff_t
802 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
804 # define YYPTRDIFF_T long
805 # define YYPTRDIFF_MAXIMUM LONG_MAX
810 # ifdef __SIZE_TYPE__
811 # define YYSIZE_T __SIZE_TYPE__
812 # elif defined size_t
813 # define YYSIZE_T size_t
814 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
815 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
816 # define YYSIZE_T size_t
818 # define YYSIZE_T unsigned
822 #define YYSIZE_MAXIMUM \
823 YY_CAST (YYPTRDIFF_T, \
824 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
825 ? YYPTRDIFF_MAXIMUM \
826 : YY_CAST (YYSIZE_T, -1)))
828 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
831 /* Stored state numbers (used for stacks). */
832 typedef yytype_int16 yy_state_t;
834 /* State numbers in computations. */
835 typedef int yy_state_fast_t;
838 # if defined YYENABLE_NLS && YYENABLE_NLS
840 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
841 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
845 # define YY_(Msgid) Msgid
850 #ifndef YY_ATTRIBUTE_PURE
851 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
852 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
854 # define YY_ATTRIBUTE_PURE
858 #ifndef YY_ATTRIBUTE_UNUSED
859 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
860 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
862 # define YY_ATTRIBUTE_UNUSED
866 /* Suppress unused-variable warnings by "using" E. */
867 #if ! defined lint || defined __GNUC__
868 # define YYUSE(E) ((void) (E))
870 # define YYUSE(E) /* empty */
873 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
874 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
875 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
876 _Pragma ("GCC diagnostic push") \
877 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
878 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
879 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
880 _Pragma ("GCC diagnostic pop")
882 # define YY_INITIAL_VALUE(Value) Value
884 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
885 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
886 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
888 #ifndef YY_INITIAL_VALUE
889 # define YY_INITIAL_VALUE(Value) /* Nothing. */
892 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
893 # define YY_IGNORE_USELESS_CAST_BEGIN \
894 _Pragma ("GCC diagnostic push") \
895 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
896 # define YY_IGNORE_USELESS_CAST_END \
897 _Pragma ("GCC diagnostic pop")
899 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
900 # define YY_IGNORE_USELESS_CAST_BEGIN
901 # define YY_IGNORE_USELESS_CAST_END
905 #define YY_ASSERT(E) ((void) (0 && (E)))
909 /* The parser invokes alloca or malloc; define the necessary symbols. */
911 # ifdef YYSTACK_USE_ALLOCA
912 # if YYSTACK_USE_ALLOCA
914 # define YYSTACK_ALLOC __builtin_alloca
915 # elif defined __BUILTIN_VA_ARG_INCR
916 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
918 # define YYSTACK_ALLOC __alloca
919 # elif defined _MSC_VER
920 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
921 # define alloca _alloca
923 # define YYSTACK_ALLOC alloca
924 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
925 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
926 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
927 # ifndef EXIT_SUCCESS
928 # define EXIT_SUCCESS 0
935 # ifdef YYSTACK_ALLOC
936 /* Pacify GCC's 'empty if-body' warning. */
937 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
938 # ifndef YYSTACK_ALLOC_MAXIMUM
939 /* The OS might guarantee only one guard page at the bottom of the stack,
940 and a page size can be as small as 4096 bytes. So we cannot safely
941 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
942 to allow for a few compiler-allocated temporary stack slots. */
943 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
946 # define YYSTACK_ALLOC YYMALLOC
947 # define YYSTACK_FREE YYFREE
948 # ifndef YYSTACK_ALLOC_MAXIMUM
949 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
951 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
952 && ! ((defined YYMALLOC || defined malloc) \
953 && (defined YYFREE || defined free)))
954 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
955 # ifndef EXIT_SUCCESS
956 # define EXIT_SUCCESS 0
960 # define YYMALLOC malloc
961 # if ! defined malloc && ! defined EXIT_SUCCESS
962 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
967 # if ! defined free && ! defined EXIT_SUCCESS
968 void free (void *); /* INFRINGES ON USER NAME SPACE */
974 #if (! defined yyoverflow \
975 && (! defined __cplusplus \
976 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
978 /* A type that is properly aligned for any stack member. */
981 yy_state_t yyss_alloc;
985 /* The size of the maximum gap between one aligned stack and the next. */
986 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
988 /* The size of an array large to enough to hold all stacks, each with
990 # define YYSTACK_BYTES(N) \
991 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
992 + YYSTACK_GAP_MAXIMUM)
994 # define YYCOPY_NEEDED 1
996 /* Relocate STACK from its old location to the new one. The
997 local variables YYSIZE and YYSTACKSIZE give the old and new number of
998 elements in the stack, and YYPTR gives the new location of the
999 stack. Advance YYPTR to a properly aligned location for the next
1001 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1004 YYPTRDIFF_T yynewbytes; \
1005 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1006 Stack = &yyptr->Stack_alloc; \
1007 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1008 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1014 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1015 /* Copy COUNT objects from SRC to DST. The source and destination do
1018 # if defined __GNUC__ && 1 < __GNUC__
1019 # define YYCOPY(Dst, Src, Count) \
1020 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1022 # define YYCOPY(Dst, Src, Count) \
1026 for (yyi = 0; yyi < (Count); yyi++) \
1027 (Dst)[yyi] = (Src)[yyi]; \
1032 #endif /* !YYCOPY_NEEDED */
1034 /* YYFINAL -- State number of the termination state. */
1036 /* YYLAST -- Last index in YYTABLE. */
1037 #define YYLAST 12453
1039 /* YYNTOKENS -- Number of terminals. */
1040 #define YYNTOKENS 455
1041 /* YYNNTS -- Number of nonterminals. */
1043 /* YYNRULES -- Number of rules. */
1044 #define YYNRULES 684
1045 /* YYNSTATES -- Number of states. */
1046 #define YYNSTATES 930
1048 /* YYMAXUTOK -- Last valid token kind. */
1049 #define YYMAXUTOK 709
1052 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1053 as returned by yylex, with out-of-bounds checking. */
1054 #define YYTRANSLATE(YYX) \
1055 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1056 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1059 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1060 as returned by yylex. */
1061 static const yytype_int16 yytranslate[] =
1063 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1064 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1065 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1066 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1067 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1068 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1069 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1070 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1071 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1072 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1073 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1074 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1075 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1076 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1077 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1078 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1079 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1080 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1081 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1082 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1083 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1084 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1085 2, 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, 1, 2, 3, 4,
1089 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1090 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1091 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1092 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1093 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1094 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1095 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1096 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1097 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1098 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1099 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1100 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1101 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1102 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1103 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1104 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1105 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1106 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1107 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1108 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1109 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1110 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1111 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1112 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1113 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1114 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1115 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1116 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1117 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1118 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1119 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1120 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1121 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1122 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1123 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1124 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1125 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1126 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1127 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1128 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1129 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1130 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1131 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1132 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1133 445, 446, 447, 448, 449, 450, 451, 452, 453, 454
1137 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1138 static const yytype_int16 yyrline[] =
1140 0, 392, 392, 398, 401, 406, 409, 412, 416, 420,
1141 423, 427, 431, 435, 439, 443, 447, 453, 461, 464,
1142 467, 470, 473, 478, 486, 493, 500, 506, 510, 517,
1143 520, 526, 533, 543, 551, 556, 584, 593, 599, 603,
1144 607, 627, 628, 629, 630, 636, 637, 642, 647, 656,
1145 657, 662, 670, 671, 677, 686, 687, 692, 697, 702,
1146 710, 711, 720, 732, 733, 742, 743, 752, 753, 762,
1147 763, 771, 772, 780, 781, 789, 790, 790, 808, 809,
1148 825, 829, 833, 837, 842, 846, 850, 854, 858, 862,
1149 866, 873, 876, 887, 894, 900, 907, 913, 918, 925,
1150 929, 933, 937, 942, 947, 956, 956, 967, 971, 978,
1151 982, 988, 994, 1004, 1007, 1014, 1022, 1042, 1065, 1080,
1152 1105, 1116, 1126, 1136, 1146, 1155, 1158, 1162, 1166, 1171,
1153 1179, 1186, 1191, 1196, 1201, 1210, 1220, 1247, 1256, 1263,
1154 1271, 1278, 1285, 1293, 1303, 1310, 1321, 1327, 1330, 1337,
1155 1341, 1345, 1354, 1364, 1367, 1378, 1381, 1384, 1388, 1392,
1156 1397, 1401, 1404, 1409, 1413, 1418, 1427, 1431, 1436, 1442,
1157 1448, 1455, 1460, 1468, 1474, 1486, 1500, 1506, 1511, 1519,
1158 1527, 1535, 1543, 1551, 1559, 1567, 1575, 1582, 1589, 1593,
1159 1598, 1603, 1608, 1613, 1618, 1623, 1627, 1631, 1635, 1639,
1160 1645, 1656, 1663, 1666, 1675, 1680, 1690, 1695, 1703, 1707,
1161 1717, 1720, 1726, 1732, 1739, 1749, 1753, 1757, 1761, 1766,
1162 1770, 1775, 1780, 1785, 1790, 1795, 1800, 1805, 1810, 1815,
1163 1821, 1827, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868,
1164 1873, 1878, 1883, 1888, 1894, 1901, 1906, 1911, 1916, 1921,
1165 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1964, 1972, 1980,
1166 1986, 1992, 1998, 2004, 2010, 2016, 2022, 2028, 2034, 2040,
1167 2046, 2052, 2058, 2064, 2070, 2076, 2082, 2088, 2094, 2100,
1168 2106, 2112, 2118, 2124, 2130, 2136, 2142, 2148, 2154, 2160,
1169 2166, 2172, 2178, 2186, 2194, 2202, 2210, 2218, 2226, 2234,
1170 2242, 2250, 2258, 2266, 2274, 2280, 2286, 2292, 2298, 2304,
1171 2310, 2316, 2322, 2328, 2334, 2340, 2346, 2352, 2358, 2364,
1172 2370, 2376, 2382, 2388, 2394, 2400, 2406, 2412, 2418, 2424,
1173 2430, 2436, 2442, 2448, 2454, 2460, 2466, 2472, 2478, 2484,
1174 2490, 2494, 2498, 2502, 2507, 2513, 2518, 2523, 2528, 2533,
1175 2538, 2543, 2549, 2554, 2559, 2564, 2569, 2574, 2580, 2586,
1176 2592, 2598, 2604, 2610, 2616, 2622, 2628, 2634, 2640, 2646,
1177 2652, 2658, 2663, 2668, 2673, 2678, 2683, 2688, 2694, 2699,
1178 2704, 2709, 2714, 2719, 2724, 2729, 2735, 2740, 2745, 2750,
1179 2755, 2760, 2765, 2770, 2775, 2780, 2785, 2790, 2795, 2800,
1180 2805, 2811, 2816, 2821, 2827, 2833, 2838, 2843, 2848, 2854,
1181 2859, 2864, 2869, 2875, 2880, 2885, 2890, 2896, 2901, 2906,
1182 2911, 2917, 2923, 2929, 2935, 2940, 2946, 2952, 2958, 2963,
1183 2968, 2973, 2978, 2983, 2989, 2994, 2999, 3004, 3010, 3015,
1184 3020, 3025, 3031, 3036, 3041, 3046, 3052, 3057, 3062, 3067,
1185 3073, 3078, 3083, 3088, 3094, 3099, 3104, 3109, 3115, 3120,
1186 3125, 3130, 3136, 3141, 3146, 3151, 3157, 3162, 3167, 3172,
1187 3178, 3183, 3188, 3193, 3199, 3204, 3209, 3214, 3220, 3225,
1188 3230, 3235, 3241, 3246, 3251, 3256, 3262, 3267, 3272, 3277,
1189 3283, 3288, 3293, 3298, 3303, 3308, 3313, 3318, 3323, 3328,
1190 3333, 3338, 3343, 3348, 3353, 3358, 3363, 3368, 3373, 3378,
1191 3383, 3388, 3393, 3398, 3403, 3409, 3415, 3421, 3427, 3434,
1192 3441, 3447, 3453, 3459, 3465, 3471, 3477, 3483, 3488, 3493,
1193 3509, 3514, 3519, 3527, 3527, 3538, 3538, 3548, 3551, 3564,
1194 3586, 3613, 3617, 3623, 3628, 3639, 3643, 3649, 3655, 3666,
1195 3669, 3676, 3680, 3681, 3687, 3688, 3689, 3690, 3691, 3692,
1196 3693, 3695, 3701, 3710, 3711, 3715, 3711, 3727, 3728, 3732,
1197 3732, 3739, 3739, 3753, 3756, 3764, 3772, 3783, 3784, 3788,
1198 3792, 3800, 3807, 3811, 3819, 3823, 3836, 3840, 3848, 3848,
1199 3868, 3871, 3877, 3889, 3901, 3905, 3913, 3913, 3928, 3928,
1200 3944, 3944, 3965, 3968, 3974, 3977, 3983, 3987, 3994, 3999,
1201 4004, 4011, 4014, 4018, 4023, 4027, 4037, 4041, 4050, 4053,
1202 4057, 4066, 4066, 4108, 4113, 4116, 4121, 4124, 4131, 4134,
1203 4139, 4142, 4147, 4150, 4155, 4158, 4163, 4167, 4172, 4176,
1204 4181, 4185, 4192, 4195, 4200, 4203, 4206, 4209, 4212, 4217,
1205 4226, 4237, 4242, 4250, 4254, 4259, 4263, 4268, 4272, 4277,
1206 4281, 4288, 4291, 4296, 4299, 4302, 4305, 4310, 4318, 4328,
1207 4332, 4337, 4341, 4346, 4350, 4357, 4360, 4365, 4368, 4373,
1208 4376, 4382, 4385, 4390, 4393
1212 /** Accessing symbol of state STATE. */
1213 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1216 /* The user-facing name of the symbol whose (internal) number is
1217 YYSYMBOL. No bounds checking. */
1218 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1220 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1221 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1222 static const char *const yytname[] =
1224 "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1225 "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1226 "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1227 "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1228 "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1229 "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1230 "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1231 "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1232 "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1233 "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1234 "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1235 "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1236 "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
1237 "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
1238 "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
1239 "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
1240 "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
1241 "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
1242 "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1243 "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1244 "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1245 "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
1246 "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
1247 "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
1248 "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
1249 "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
1250 "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
1251 "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
1252 "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
1253 "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
1254 "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
1255 "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
1256 "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
1257 "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1258 "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
1259 "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1260 "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1261 "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
1262 "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1263 "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1264 "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1265 "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1266 "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1267 "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1268 "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1269 "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1270 "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1271 "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1272 "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1273 "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1274 "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1275 "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1276 "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1277 "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1278 "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1279 "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1280 "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1281 "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1282 "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1283 "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1284 "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1285 "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1286 "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1287 "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1288 "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1289 "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1290 "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1291 "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1292 "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1293 "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1294 "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1295 "F16SUBPASSINPUTMS", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE",
1296 "SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID",
1297 "SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS",
1298 "SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "LEFT_OP", "RIGHT_OP", "INC_OP",
1299 "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
1300 "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN",
1301 "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
1302 "SUB_ASSIGN", "STRING_LITERAL", "LEFT_PAREN", "RIGHT_PAREN",
1303 "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
1304 "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
1305 "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
1306 "CARET", "AMPERSAND", "QUESTION", "INVARIANT", "HIGH_PRECISION",
1307 "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE",
1308 "SUPERP", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1309 "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1310 "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1311 "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
1312 "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
1313 "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1314 "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1315 "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1316 "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1317 "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1318 "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1319 "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1320 "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1321 "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1322 "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1323 "$accept", "variable_identifier", "primary_expression",
1324 "postfix_expression", "integer_expression", "function_call",
1325 "function_call_or_method", "function_call_generic",
1326 "function_call_header_no_parameters",
1327 "function_call_header_with_parameters", "function_call_header",
1328 "function_identifier", "unary_expression", "unary_operator",
1329 "multiplicative_expression", "additive_expression", "shift_expression",
1330 "relational_expression", "equality_expression", "and_expression",
1331 "exclusive_or_expression", "inclusive_or_expression",
1332 "logical_and_expression", "logical_xor_expression",
1333 "logical_or_expression", "conditional_expression", "$@1",
1334 "assignment_expression", "assignment_operator", "expression",
1335 "constant_expression", "declaration", "block_structure", "$@2",
1336 "identifier_list", "function_prototype", "function_declarator",
1337 "function_header_with_parameters", "function_header",
1338 "parameter_declarator", "parameter_declaration",
1339 "parameter_type_specifier", "init_declarator_list", "single_declaration",
1340 "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1341 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1342 "precise_qualifier", "type_qualifier", "single_type_qualifier",
1343 "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1344 "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1345 "type_parameter_specifier", "type_parameter_specifier_list",
1346 "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1347 "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1348 "struct_declarator_list", "struct_declarator", "initializer",
1349 "initializer_list", "declaration_statement", "statement",
1350 "simple_statement", "demote_statement", "compound_statement", "$@5",
1351 "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1352 "compound_statement_no_new_scope", "statement_list",
1353 "expression_statement", "selection_statement",
1354 "selection_statement_nonattributed", "selection_rest_statement",
1355 "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1356 "switch_statement_list", "case_label", "iteration_statement",
1357 "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1358 "for_init_statement", "conditionopt", "for_rest_statement",
1359 "jump_statement", "translation_unit", "external_declaration",
1360 "function_definition", "$@13", "attribute", "attribute_list",
1361 "single_attribute", "spirv_requirements_list",
1362 "spirv_requirements_parameter", "spirv_extension_list",
1363 "spirv_capability_list", "spirv_execution_mode_qualifier",
1364 "spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter",
1365 "spirv_execution_mode_id_parameter_list",
1366 "spirv_storage_class_qualifier", "spirv_decorate_qualifier",
1367 "spirv_decorate_parameter_list", "spirv_decorate_parameter",
1368 "spirv_decorate_id_parameter_list",
1369 "spirv_decorate_string_parameter_list", "spirv_type_specifier",
1370 "spirv_type_parameter_list", "spirv_type_parameter",
1371 "spirv_instruction_qualifier", "spirv_instruction_qualifier_list",
1372 "spirv_instruction_qualifier_id", YY_NULLPTR
1376 yysymbol_name (yysymbol_kind_t yysymbol)
1378 return yytname[yysymbol];
1383 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1384 (internal) symbol number NUM (which must be that of a token). */
1385 static const yytype_int16 yytoknum[] =
1387 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1388 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1389 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1390 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1391 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1392 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1393 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1394 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1395 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1396 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1397 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1398 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1399 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1400 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1401 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1402 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1403 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1404 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1405 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1406 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1407 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1408 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1409 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1410 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1411 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1412 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1413 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1414 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1415 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1416 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1417 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1418 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1419 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1420 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1421 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1422 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
1423 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
1424 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
1425 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
1426 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
1427 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
1428 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
1429 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
1430 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
1431 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
1432 705, 706, 707, 708, 709
1436 #define YYPACT_NINF (-863)
1438 #define yypact_value_is_default(Yyn) \
1439 ((Yyn) == YYPACT_NINF)
1441 #define YYTABLE_NINF (-570)
1443 #define yytable_value_is_error(Yyn) \
1446 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1448 static const yytype_int16 yypact[] =
1450 4549, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1451 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1452 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1453 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1454 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1455 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1456 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1457 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1458 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1459 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1460 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1461 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1462 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1463 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1464 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1465 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1466 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1467 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1468 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1469 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1470 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1471 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1472 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1473 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1474 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1475 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1476 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1477 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1478 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1479 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1480 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1481 -863, -863, -863, -863, -863, -260, -182, -177, -163, -130,
1482 -115, -100, -89, -863, -863, -196, -863, -863, -863, -863,
1483 -863, -324, -863, -863, -863, -863, -863, -306, -863, -863,
1484 -863, -863, -863, -863, -77, -66, -863, -863, -863, -863,
1485 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1486 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1487 -863, -863, -863, -863, -863, -863, -863, -863, -332, -175,
1488 -153, -161, 7713, -266, -863, -71, -863, -863, -863, -863,
1489 5453, -863, -863, -863, -863, -116, -863, -863, 933, -863,
1490 -863, 7713, -35, -863, -863, -863, 5905, -54, -139, -138,
1491 -137, -128, -124, -54, -123, -51, 12061, -863, -15, -347,
1492 -44, -863, -295, -863, -9, -6, 7713, -863, -863, -863,
1493 7713, -39, -38, -863, -303, -863, -226, -863, -863, 10762,
1494 -3, -863, -863, -863, 1, -32, 7713, -863, -5, -8,
1495 -1, -863, -230, -863, -219, -2, 3, 4, 5, -215,
1496 6, 8, 10, 11, 12, 15, -214, 13, 16, 21,
1497 -134, -863, 17, 7713, -863, 19, -863, -212, -863, -863,
1498 -211, 9030, -863, -273, 1385, -863, -863, -863, -863, -863,
1499 -3, -263, -863, 9463, -236, -863, -28, -863, -106, 10762,
1500 10762, -863, 10762, -863, -863, -863, -863, -863, -863, -863,
1501 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1502 -863, -863, -264, -863, -863, -863, 23, -203, 11195, 25,
1503 -863, 10762, -863, -863, -311, 24, -6, 29, -863, -309,
1504 -54, -863, -20, -863, -323, 28, -118, 10762, -112, -863,
1505 -155, -111, 10762, -103, 35, -98, -54, -863, 11628, -863,
1506 -94, 10762, 32, -51, -863, 7713, 18, 6357, -863, 7713,
1507 10762, -863, -347, -863, 33, -863, -863, -72, -254, -86,
1508 -297, -68, -13, 26, 20, 50, 49, -300, 42, 9896,
1509 -863, 43, -863, -863, 55, 58, 60, -863, 65, 71,
1510 62, 10329, 73, 10762, 66, 69, 70, 72, 74, -241,
1511 -863, -863, -41, -863, -175, 83, 85, -863, -863, -863,
1512 -863, -863, 1837, -863, -863, -863, -863, -863, -863, -863,
1513 -863, -863, 5001, 24, 9463, -233, 8164, -863, -863, 9463,
1514 7713, -863, 51, -863, -863, -863, -194, -863, -863, 10762,
1515 52, -863, -863, 10762, 88, -863, -863, -863, 10762, -863,
1516 -863, -863, -315, -863, -863, -191, 82, -863, -863, -863,
1517 -863, -863, -863, -190, -863, -187, -863, -863, -186, 86,
1518 -863, -863, -863, -863, -169, -863, -168, -863, -167, 89,
1519 -863, -165, 91, -157, 82, -863, 85, -156, -863, 94,
1520 98, -863, -863, 18, -3, -40, -863, -863, -863, 6809,
1521 -863, -863, -863, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
1522 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
1523 10762, 10762, -863, -863, -863, 97, -863, 2289, -863, -863,
1524 -863, 2289, -863, 10762, -863, -863, -34, 10762, -79, -863,
1525 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1526 -863, -863, -863, -863, -863, 10762, 10762, -863, -863, -863,
1527 -863, -863, -863, -863, 9463, -863, -863, -208, -863, 7261,
1528 -863, -863, 99, 96, -863, -863, -863, -863, -863, -132,
1529 -131, -863, -307, -863, -323, -863, -323, -863, 10762, 10762,
1530 -863, -155, -863, -155, -863, 10762, 10762, -863, 93, 35,
1531 -863, 11628, -863, 10762, -863, -863, -33, 24, 18, -863,
1532 -863, -863, -863, -863, -72, -72, -254, -254, -86, -86,
1533 -86, -86, -297, -297, -68, -13, 26, 20, 50, 49,
1534 10762, -863, 2289, 4097, 57, 3645, -154, -863, -152, -863,
1535 -863, -863, -863, -863, 8597, -863, -863, -863, 105, -863,
1536 75, -863, -145, -863, -144, -863, -143, -863, -142, -863,
1537 -141, -140, -863, -863, -863, -27, 100, 96, 76, 106,
1538 109, -863, -863, 4097, 107, -863, -863, -863, -863, -863,
1539 -863, -863, -863, -863, -863, -863, 10762, -863, 101, 2741,
1540 10762, -863, 103, 113, 67, 112, 3193, -863, 114, -863,
1541 9463, -863, -863, -863, -133, 10762, 2741, 107, -863, -863,
1542 2289, -863, 110, 96, -863, -863, 2289, 116, -863, -863
1545 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1546 Performed when YYTABLE does not specify something else to do. Zero
1547 means the default is an error. */
1548 static const yytype_int16 yydefact[] =
1550 0, 166, 219, 217, 218, 216, 223, 224, 225, 226,
1551 227, 228, 229, 230, 231, 220, 221, 222, 232, 233,
1552 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1553 345, 346, 347, 348, 349, 350, 351, 371, 372, 373,
1554 374, 375, 376, 377, 386, 399, 400, 387, 388, 390,
1555 389, 391, 392, 393, 394, 395, 396, 397, 398, 174,
1556 175, 245, 246, 244, 247, 254, 255, 252, 253, 250,
1557 251, 248, 249, 277, 278, 279, 289, 290, 291, 274,
1558 275, 276, 286, 287, 288, 271, 272, 273, 283, 284,
1559 285, 268, 269, 270, 280, 281, 282, 256, 257, 258,
1560 292, 293, 294, 259, 260, 261, 304, 305, 306, 262,
1561 263, 264, 316, 317, 318, 265, 266, 267, 328, 329,
1562 330, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1563 307, 308, 309, 310, 311, 312, 313, 314, 315, 319,
1564 320, 321, 322, 323, 324, 325, 326, 327, 331, 332,
1565 333, 334, 335, 336, 337, 338, 339, 343, 340, 341,
1566 342, 524, 525, 526, 355, 356, 379, 382, 344, 353,
1567 354, 370, 352, 401, 402, 405, 406, 407, 409, 410,
1568 411, 413, 414, 415, 417, 418, 514, 515, 378, 380,
1569 381, 357, 358, 359, 403, 360, 364, 365, 368, 408,
1570 412, 416, 361, 362, 366, 367, 404, 363, 369, 448,
1571 450, 451, 452, 454, 455, 456, 458, 459, 460, 462,
1572 463, 464, 466, 467, 468, 470, 471, 472, 474, 475,
1573 476, 478, 479, 480, 482, 483, 484, 486, 487, 488,
1574 490, 491, 449, 453, 457, 461, 465, 473, 477, 481,
1575 469, 485, 489, 492, 493, 494, 495, 496, 497, 498,
1576 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
1577 509, 510, 511, 512, 513, 383, 384, 385, 419, 428,
1578 430, 424, 429, 431, 432, 434, 435, 436, 438, 439,
1579 440, 442, 443, 444, 446, 447, 420, 421, 422, 433,
1580 423, 425, 426, 427, 437, 441, 445, 516, 517, 520,
1581 521, 522, 523, 518, 519, 0, 0, 0, 0, 0,
1582 0, 0, 0, 164, 165, 0, 620, 137, 530, 531,
1583 532, 0, 529, 170, 168, 169, 167, 0, 215, 171,
1584 172, 173, 139, 138, 0, 199, 180, 182, 178, 184,
1585 186, 181, 183, 179, 185, 187, 176, 177, 201, 188,
1586 195, 196, 197, 198, 189, 190, 191, 192, 193, 194,
1587 140, 141, 142, 143, 144, 145, 152, 619, 0, 621,
1588 0, 114, 113, 0, 125, 130, 159, 158, 156, 160,
1589 0, 153, 155, 161, 135, 211, 157, 528, 0, 616,
1590 618, 0, 0, 162, 163, 527, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 535, 0, 0,
1592 0, 99, 0, 94, 0, 109, 0, 121, 115, 123,
1593 0, 124, 0, 97, 131, 102, 0, 154, 136, 0,
1594 204, 210, 1, 617, 0, 0, 0, 96, 0, 0,
1595 0, 628, 0, 681, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 626,
1597 0, 624, 0, 0, 533, 149, 151, 0, 147, 202,
1598 0, 0, 100, 0, 0, 622, 110, 116, 120, 122,
1599 118, 126, 117, 0, 132, 105, 0, 103, 0, 0,
1600 0, 9, 0, 43, 42, 44, 41, 5, 6, 7,
1601 8, 2, 16, 14, 15, 17, 10, 11, 12, 13,
1602 3, 18, 37, 20, 25, 26, 0, 0, 30, 0,
1603 213, 0, 36, 34, 0, 205, 111, 0, 95, 0,
1604 0, 679, 0, 636, 0, 0, 0, 0, 0, 653,
1605 0, 0, 0, 0, 0, 0, 0, 673, 0, 651,
1606 0, 0, 0, 0, 98, 0, 0, 0, 537, 0,
1607 0, 146, 0, 200, 0, 206, 45, 49, 52, 55,
1608 60, 63, 65, 67, 69, 71, 73, 75, 0, 0,
1609 101, 564, 573, 577, 0, 0, 0, 598, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
1611 78, 91, 0, 551, 0, 161, 135, 554, 575, 553,
1612 561, 552, 0, 555, 556, 579, 557, 586, 558, 559,
1613 594, 560, 0, 119, 0, 127, 0, 545, 134, 0,
1614 0, 107, 0, 104, 38, 39, 0, 22, 23, 0,
1615 0, 28, 27, 0, 215, 31, 33, 40, 0, 212,
1616 112, 683, 0, 684, 629, 0, 0, 682, 648, 644,
1617 645, 646, 647, 0, 642, 0, 93, 649, 0, 0,
1618 663, 664, 665, 666, 0, 661, 0, 667, 0, 0,
1619 669, 0, 0, 0, 2, 677, 678, 0, 675, 0,
1620 0, 623, 625, 0, 543, 0, 541, 536, 538, 0,
1621 150, 148, 203, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 76, 207, 208, 0, 563, 0, 596, 609,
1624 608, 0, 600, 0, 612, 610, 0, 0, 0, 593,
1625 613, 614, 615, 562, 81, 82, 84, 83, 86, 87,
1626 88, 89, 90, 85, 80, 0, 0, 578, 574, 576,
1627 580, 587, 595, 129, 0, 548, 549, 0, 133, 0,
1628 108, 4, 0, 24, 21, 32, 214, 632, 634, 0,
1629 0, 680, 0, 638, 0, 637, 0, 640, 0, 0,
1630 655, 0, 654, 0, 657, 0, 0, 659, 0, 0,
1631 674, 0, 671, 0, 652, 627, 0, 544, 0, 539,
1632 534, 46, 47, 48, 51, 50, 53, 54, 58, 59,
1633 56, 57, 61, 62, 64, 66, 68, 70, 72, 74,
1634 0, 209, 565, 0, 0, 0, 0, 611, 0, 592,
1635 79, 92, 128, 546, 0, 106, 19, 630, 0, 631,
1636 0, 643, 0, 650, 0, 662, 0, 668, 0, 670,
1637 0, 0, 676, 540, 542, 0, 0, 584, 0, 0,
1638 0, 603, 602, 605, 571, 588, 547, 550, 633, 635,
1639 639, 641, 656, 658, 660, 672, 0, 566, 0, 0,
1640 0, 604, 0, 0, 583, 0, 0, 581, 0, 77,
1641 0, 568, 597, 567, 0, 606, 0, 571, 570, 572,
1642 590, 585, 0, 607, 601, 582, 591, 0, 599, 589
1645 /* YYPGOTO[NTERM-NUM]. */
1646 static const yytype_int16 yypgoto[] =
1648 -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
1649 -863, -863, -418, -863, -380, -379, -484, -382, -258, -256,
1650 -253, -257, -252, -255, -863, -478, -863, -485, -863, -491,
1651 -530, 14, -863, -863, -863, 7, -397, -863, -863, 44,
1652 53, 47, -863, -863, -400, -863, -863, -863, -863, -92,
1653 -863, -377, -362, -863, 9, -863, 0, -414, -863, -863,
1654 -863, -863, 150, -863, -863, -863, -546, -548, -218, -331,
1655 -624, -863, -359, -609, -862, -863, -417, -863, -863, -427,
1656 -426, -863, -863, 68, -719, -355, -863, -136, -863, -389,
1657 -863, -135, -863, -863, -863, -863, -129, -863, -863, -863,
1658 -863, -863, -863, -863, -863, 102, -863, -863, 2, -863,
1659 -65, -234, -432, -863, -863, -863, -301, -293, -294, -863,
1660 -863, -304, -299, -302, -298, -863, -296, -305, -863, -383,
1664 /* YYDEFGOTO[NTERM-NUM]. */
1665 static const yytype_int16 yydefgoto[] =
1667 -1, 520, 521, 522, 782, 523, 524, 525, 526, 527,
1668 528, 529, 609, 531, 577, 578, 579, 580, 581, 582,
1669 583, 584, 585, 586, 587, 610, 840, 611, 765, 612,
1670 695, 613, 378, 640, 498, 614, 380, 381, 382, 427,
1671 428, 429, 383, 384, 385, 386, 387, 388, 477, 478,
1672 389, 390, 391, 392, 532, 480, 533, 483, 440, 441,
1673 534, 395, 396, 397, 569, 473, 567, 568, 705, 706,
1674 638, 777, 617, 618, 619, 620, 621, 737, 876, 912,
1675 904, 905, 906, 913, 622, 623, 624, 625, 907, 879,
1676 626, 627, 908, 927, 628, 629, 630, 843, 741, 845,
1677 883, 902, 903, 631, 398, 399, 400, 424, 632, 470,
1678 471, 450, 451, 789, 790, 402, 673, 674, 678, 403,
1679 404, 684, 685, 688, 691, 405, 697, 698, 406, 452,
1683 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1684 positive, shift that token. If negative, reduce the rule whose
1685 number is the opposite. If YYTABLE_NINF, syntax error. */
1686 static const yytype_int16 yytable[] =
1688 394, 445, 401, 588, 444, 430, 445, 379, 637, 393,
1689 773, 646, 776, 769, 377, 778, 667, 677, 842, 708,
1690 494, 530, 687, 709, 446, 668, 535, 421, 437, 446,
1691 466, 700, 667, 787, 720, 721, 731, 911, 475, 661,
1692 710, 661, 662, 655, 919, 658, 492, 417, 481, 430,
1693 328, 329, 330, 422, 911, 493, 481, 659, 669, 670,
1694 671, 672, 476, 576, 482, 647, 648, 788, 437, 676,
1695 722, 723, 732, 663, 676, 663, 633, 635, 589, 418,
1696 676, 644, 645, 676, 437, -35, 590, 649, 481, 407,
1697 432, 650, 676, 433, 779, 634, 565, 754, 755, 756,
1698 757, 758, 759, 760, 761, 762, 763, 716, 664, 717,
1699 746, 735, 748, 657, 664, 589, 664, 764, 589, 664,
1700 541, 664, 639, 664, 664, 774, 542, 495, 664, 576,
1701 496, 543, 844, 497, 576, 549, 557, 544, 571, 573,
1702 576, 550, 558, 576, 572, 574, 853, 652, 854, 637,
1703 852, 637, 576, 653, 637, 415, 781, 665, 783, 791,
1704 793, 708, 766, 795, 797, 542, 794, 408, 785, 796,
1705 798, 576, 409, 693, 456, 458, 460, 462, 464, 465,
1706 468, 800, 802, 804, 423, 807, 410, 801, 803, 805,
1707 565, 808, 565, 810, 812, 426, 884, 425, 885, 811,
1708 813, 926, 766, 437, 766, 890, 891, 892, 893, 894,
1709 895, 794, 798, 801, 805, 808, 813, 922, 562, 411,
1710 857, 859, 563, 766, 858, 860, 680, 681, 682, 683,
1711 887, 708, 445, 769, 412, 444, 828, 829, 830, 831,
1712 786, 718, 719, 454, 457, 459, 455, 455, 455, 413,
1713 642, 439, 846, 643, 461, 446, 848, 455, 463, 467,
1714 414, 455, 455, 565, 675, 724, 725, 455, 863, 677,
1715 679, 686, 419, 455, 455, 867, 687, 766, 849, 689,
1716 850, 851, 455, 420, 692, 667, 921, 455, 699, 637,
1717 817, 455, 713, 714, 715, 821, 822, 823, 576, 576,
1718 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
1719 576, 576, 576, 576, 434, 766, 818, 769, 767, 819,
1720 676, 676, 766, 818, 447, 847, 873, 676, 676, 766,
1721 896, 449, 565, 676, 469, 676, 824, 825, 474, 826,
1722 827, 479, 832, 833, 484, 325, 490, 491, 481, 875,
1723 539, 536, 877, 537, 538, 540, 545, 641, 726, 546,
1724 547, 548, 551, 559, 552, 666, 553, 554, 555, 637,
1725 561, 556, 560, 651, 656, 589, 564, 570, 492, 662,
1726 576, 576, 431, 690, 701, 729, 730, 576, 576, 728,
1727 438, 393, 877, 576, 733, 576, 727, 736, 394, 393,
1728 401, 394, 565, 704, 738, 379, 394, 393, 401, 914,
1729 393, 909, 377, 448, 742, 393, 472, 739, 712, 740,
1730 743, 744, 747, 749, 923, 637, 431, 486, 750, 751,
1731 431, 752, -36, 753, -34, 393, 780, 784, -29, 393,
1732 792, 869, 799, 878, 814, 806, 438, 809, 815, 841,
1733 880, 856, 766, 888, 897, 393, 899, 889, 900, 910,
1734 -569, 898, 915, 916, 917, 591, 446, 920, 834, 928,
1735 929, 835, 837, 566, 488, 836, 839, 489, 838, 487,
1736 711, 416, 393, 878, 616, 816, 881, 874, 918, 924,
1737 882, 925, 485, 615, 901, 862, 770, 771, 702, 866,
1738 443, 861, 865, 772, 868, 864, 446, 0, 872, 0,
1739 0, 870, 0, 0, 0, 871, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 660, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 696, 0,
1744 0, 0, 0, 0, 0, 703, 0, 566, 0, 566,
1745 0, 0, 0, 0, 393, 0, 393, 0, 393, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 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, 616, 0, 0, 0, 0, 0, 0, 0,
1751 0, 615, 394, 0, 0, 0, 0, 0, 0, 0,
1752 566, 393, 0, 0, 0, 0, 0, 0, 0, 393,
1753 0, 0, 0, 0, 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, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 566,
1759 0, 0, 0, 0, 0, 0, 0, 0, 393, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 616, 0, 0,
1762 0, 616, 0, 0, 0, 0, 615, 0, 0, 0,
1763 615, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 566,
1766 0, 0, 0, 0, 0, 0, 0, 0, 393, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 696, 0, 696, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 616, 616, 0, 616, 0, 401, 0, 0,
1773 0, 615, 615, 0, 615, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 616, 0, 0, 0, 0, 0, 0,
1777 0, 0, 615, 0, 0, 0, 0, 0, 0, 616,
1778 0, 0, 0, 0, 0, 0, 616, 0, 615, 0,
1779 0, 0, 0, 0, 0, 615, 616, 0, 0, 0,
1780 616, 0, 0, 0, 0, 615, 616, 0, 0, 615,
1781 0, 0, 0, 442, 0, 615, 1, 2, 3, 4,
1782 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1783 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1784 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1785 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1786 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1787 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1788 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1789 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1790 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1791 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1792 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1793 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1794 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1795 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1796 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1797 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1798 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1799 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1800 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1801 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1802 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1803 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1804 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1805 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1806 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1807 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1808 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1809 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1810 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1811 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1812 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1813 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 325, 0, 0, 0, 0, 0,
1817 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
1819 331, 0, 0, 0, 0, 0, 0, 0, 0, 332,
1820 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
1823 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
1824 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
1825 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
1826 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
1827 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1828 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1829 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1830 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1831 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1832 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1833 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1834 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1835 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1836 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1837 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1838 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1839 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1840 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1841 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1842 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1843 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
1844 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
1845 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1846 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
1847 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
1848 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
1849 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
1850 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
1851 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
1852 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1853 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
1854 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1855 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
1856 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
1857 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1858 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
1859 323, 324, 0, 0, 499, 500, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 501, 502, 0, 325, 0, 591, 592,
1862 0, 0, 0, 0, 593, 503, 504, 505, 506, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
1864 329, 330, 331, 0, 0, 0, 507, 508, 509, 510,
1865 511, 332, 333, 334, 335, 336, 337, 338, 594, 595,
1866 596, 597, 0, 598, 599, 600, 601, 602, 603, 604,
1867 605, 606, 607, 339, 340, 341, 342, 343, 344, 512,
1868 513, 514, 515, 516, 517, 518, 519, 345, 608, 346,
1869 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
1870 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
1871 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
1872 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1873 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1874 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1875 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1876 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1877 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1878 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1879 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1880 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1881 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1882 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1883 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1884 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1885 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1886 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1887 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1888 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1889 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
1890 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
1891 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
1892 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
1893 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
1894 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
1895 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
1896 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1897 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
1898 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1899 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1900 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
1901 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
1902 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1903 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
1904 321, 322, 323, 324, 0, 0, 499, 500, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 501, 502, 0, 325, 0,
1907 591, 768, 0, 0, 0, 0, 593, 503, 504, 505,
1908 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 327, 328, 329, 330, 331, 0, 0, 0, 507, 508,
1910 509, 510, 511, 332, 333, 334, 335, 336, 337, 338,
1911 594, 595, 596, 597, 0, 598, 599, 600, 601, 602,
1912 603, 604, 605, 606, 607, 339, 340, 341, 342, 343,
1913 344, 512, 513, 514, 515, 516, 517, 518, 519, 345,
1914 608, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1915 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1916 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1917 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
1918 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1919 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1920 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1921 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1922 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1923 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1924 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1925 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1926 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1927 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1928 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1929 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1930 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1931 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1932 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1933 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1934 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1935 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1936 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1937 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1938 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
1939 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1940 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
1941 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1942 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1943 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
1944 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1945 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1946 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
1947 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
1948 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
1949 319, 320, 321, 322, 323, 324, 0, 0, 499, 500,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 501, 502, 0,
1952 325, 0, 591, 0, 0, 0, 0, 0, 593, 503,
1953 504, 505, 506, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 327, 328, 329, 330, 331, 0, 0, 0,
1955 507, 508, 509, 510, 511, 332, 333, 334, 335, 336,
1956 337, 338, 594, 595, 596, 597, 0, 598, 599, 600,
1957 601, 602, 603, 604, 605, 606, 607, 339, 340, 341,
1958 342, 343, 344, 512, 513, 514, 515, 516, 517, 518,
1959 519, 345, 608, 346, 347, 348, 349, 350, 351, 352,
1960 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
1961 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
1962 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
1963 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1964 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1965 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1966 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1967 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1968 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1969 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1970 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1971 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1972 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1973 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1974 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1975 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1976 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1977 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1978 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1979 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1980 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
1981 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
1982 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1983 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
1984 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
1985 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
1986 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1987 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
1988 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1989 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
1990 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1991 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
1992 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
1993 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1994 317, 318, 319, 320, 321, 322, 323, 324, 0, 0,
1995 499, 500, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 501,
1997 502, 0, 325, 0, 484, 0, 0, 0, 0, 0,
1998 593, 503, 504, 505, 506, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 327, 328, 329, 330, 331, 0,
2000 0, 0, 507, 508, 509, 510, 511, 332, 333, 334,
2001 335, 336, 337, 338, 594, 595, 596, 597, 0, 598,
2002 599, 600, 601, 602, 603, 604, 605, 606, 607, 339,
2003 340, 341, 342, 343, 344, 512, 513, 514, 515, 516,
2004 517, 518, 519, 345, 608, 346, 347, 348, 349, 350,
2005 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2006 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
2007 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
2008 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2009 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2010 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2011 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2012 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2013 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2014 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2015 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2016 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2017 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2018 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2019 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2020 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2021 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2022 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2023 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2024 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2025 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2026 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2027 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2028 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2029 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2030 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2031 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2032 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2033 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2034 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2035 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2036 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2037 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2038 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2039 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2040 0, 0, 499, 500, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 501, 502, 0, 325, 0, 0, 0, 0, 0,
2043 0, 0, 593, 503, 504, 505, 506, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
2045 331, 0, 0, 0, 507, 508, 509, 510, 511, 332,
2046 333, 334, 335, 336, 337, 338, 594, 595, 596, 597,
2047 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
2048 607, 339, 340, 341, 342, 343, 344, 512, 513, 514,
2049 515, 516, 517, 518, 519, 345, 608, 346, 347, 348,
2050 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2051 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
2052 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
2053 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2054 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2055 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2056 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2057 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2058 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2059 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2060 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2061 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2062 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2063 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2064 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2065 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2066 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2067 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2068 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2069 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2070 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2071 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2072 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2073 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2074 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2075 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2076 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2077 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2078 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2079 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2080 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2081 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2082 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2083 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2084 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
2085 323, 324, 0, 0, 499, 500, 0, 0, 0, 0,
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 501, 502, 0, 325, 0, 0, 0,
2088 0, 0, 0, 0, 593, 503, 504, 505, 506, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2090 329, 330, 331, 0, 0, 0, 507, 508, 509, 510,
2091 511, 332, 333, 334, 335, 336, 337, 338, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 339, 340, 341, 342, 343, 344, 512,
2094 513, 514, 515, 516, 517, 518, 519, 345, 0, 346,
2095 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2096 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
2097 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
2098 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2099 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2100 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2101 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2102 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2103 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2104 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2105 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2106 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2107 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2108 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2109 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2110 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2111 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2112 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2113 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2114 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2115 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2116 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2117 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2118 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2119 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2120 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2121 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2122 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2123 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2124 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2125 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2126 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2127 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2128 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2129 311, 312, 313, 314, 0, 0, 0, 318, 319, 320,
2130 321, 322, 323, 324, 0, 0, 499, 500, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 501, 502, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 503, 504, 505,
2134 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 327, 328, 329, 330, 0, 0, 0, 0, 507, 508,
2136 509, 510, 511, 332, 333, 334, 335, 336, 337, 338,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 339, 340, 341, 342, 343,
2139 344, 512, 513, 514, 515, 516, 517, 518, 519, 345,
2140 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2141 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2142 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2143 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
2144 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2145 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2146 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2147 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2148 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2149 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2150 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2151 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2152 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2153 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2154 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2155 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2156 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2157 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2158 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2159 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2160 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2161 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2162 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2163 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2164 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2165 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2166 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2167 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2168 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2169 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2170 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2171 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2172 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2173 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2174 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
2175 319, 320, 321, 322, 323, 324, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2178 325, 0, 0, 0, 0, 0, 0, 0, 326, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 327, 328, 329, 330, 331, 0, 0, 0,
2181 0, 0, 0, 0, 0, 332, 333, 334, 335, 336,
2182 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 339, 340, 341,
2184 342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
2185 0, 345, 0, 346, 347, 348, 349, 350, 351, 352,
2186 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
2187 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
2188 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
2189 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2190 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2191 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2192 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2193 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2194 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2195 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2196 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2197 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2198 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2199 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2200 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2201 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2202 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2203 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2204 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2205 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2206 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2207 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2208 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2209 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2210 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2211 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2212 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2213 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2214 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2215 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2216 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2217 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2218 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2219 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
2220 0, 318, 319, 320, 321, 322, 323, 324, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 327, 328, 329, 330, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 332, 333, 334,
2227 335, 336, 337, 338, 594, 0, 0, 597, 0, 598,
2228 599, 0, 0, 602, 0, 0, 0, 0, 0, 339,
2229 340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
2230 0, 0, 0, 345, 0, 346, 347, 348, 349, 350,
2231 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2232 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
2233 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
2234 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2235 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2236 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2237 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2238 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2239 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2240 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2241 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2242 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2243 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2244 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2245 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2246 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2247 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2248 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2249 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2250 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2251 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2252 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2253 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2254 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2255 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2256 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2257 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2258 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2259 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2260 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2261 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2262 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2263 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2264 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2265 0, 0, 0, 318, 319, 320, 321, 322, 323, 324,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 435, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
2271 0, 0, 0, 0, 0, 0, 0, 0, 436, 332,
2272 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
2275 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
2276 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2277 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
2278 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
2279 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2280 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2281 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2282 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2283 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2284 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2285 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2286 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2287 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2288 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2289 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2290 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2291 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2292 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2293 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2294 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2295 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2296 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2297 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2298 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2299 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2300 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2301 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2302 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2303 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2304 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2305 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2306 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2307 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2308 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2309 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2310 313, 314, 0, 0, 0, 318, 319, 320, 321, 322,
2311 323, 324, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 325, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2316 329, 330, 0, 0, 0, 0, 0, 0, 0, 0,
2317 0, 332, 333, 334, 335, 336, 337, 338, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2319 0, 0, 0, 339, 340, 341, 342, 343, 344, 0,
2320 0, 0, 0, 0, 0, 0, 0, 345, 0, 346,
2321 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2322 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
2323 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
2324 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2325 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2326 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2327 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2328 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2329 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2330 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2331 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2332 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2333 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2334 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2335 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2336 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2337 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2338 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2339 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2340 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2341 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2342 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2343 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2344 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2345 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2346 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2347 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2348 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2349 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2350 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2351 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2352 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2353 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2354 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2355 311, 312, 313, 314, 0, 0, 0, 318, 319, 320,
2356 321, 322, 323, 324, 0, 0, 0, 0, 0, 0,
2357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 707, 0, 0, 0, 0, 0, 0, 0, 0,
2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2361 327, 328, 329, 330, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 332, 333, 334, 335, 336, 337, 338,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 339, 340, 341, 342, 343,
2365 344, 0, 0, 0, 0, 0, 0, 0, 0, 345,
2366 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2367 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2368 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2369 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
2370 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2371 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2372 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2373 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2374 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2375 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2376 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2377 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2378 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2379 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2380 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2381 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2382 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2383 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2384 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2385 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2386 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2387 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2388 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2389 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2390 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2391 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2392 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2393 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2394 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2395 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2396 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2397 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2398 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2399 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2400 309, 310, 311, 312, 313, 314, 0, 0, 0, 318,
2401 319, 320, 321, 322, 323, 324, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2404 0, 0, 0, 820, 0, 0, 0, 0, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 327, 328, 329, 330, 0, 0, 0, 0,
2407 0, 0, 0, 0, 0, 332, 333, 334, 335, 336,
2408 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 0, 339, 340, 341,
2410 342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
2411 0, 345, 0, 346, 347, 348, 349, 350, 351, 352,
2412 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
2413 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
2414 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
2415 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2416 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2417 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2418 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2419 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2420 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2421 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2422 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2423 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2424 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2425 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2426 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2427 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2428 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2429 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2430 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2431 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2432 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2433 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2434 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2435 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2436 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2437 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2438 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2439 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2440 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2441 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2442 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2443 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2444 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2445 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
2446 0, 318, 319, 320, 321, 322, 323, 324, 0, 0,
2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 855, 0, 0, 0, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 0, 0, 0, 0, 327, 328, 329, 330, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 332, 333, 334,
2453 335, 336, 337, 338, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 0, 0, 0, 0, 339,
2455 340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
2456 0, 0, 0, 345, 0, 346, 347, 348, 349, 350,
2457 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2458 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
2459 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
2460 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2461 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2462 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2463 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2464 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2465 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2466 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2467 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2468 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2469 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2470 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2471 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2472 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2473 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2474 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2475 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2476 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2477 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2478 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2479 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2480 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2481 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2482 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2483 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2484 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2485 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2486 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2487 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2488 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2489 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2490 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2491 0, 0, 0, 318, 319, 320, 321, 322, 323, 324,
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2496 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 332,
2498 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
2501 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
2502 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2503 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
2504 369, 370, 371, 372, 373, 374, 375, 376, 2, 3,
2505 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2506 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2507 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2508 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2509 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2510 54, 55, 56, 57, 58, 0, 0, 61, 62, 63,
2511 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2512 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2513 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2514 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2515 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2516 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2517 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2518 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2519 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2520 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2521 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2522 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2523 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2524 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2525 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2526 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2527 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2528 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2529 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2530 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2531 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2532 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2533 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2534 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2535 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2536 314, 0, 0, 0, 0, 0, 0, 321, 0, 0,
2537 0, 0, 0, 499, 500, 0, 0, 0, 0, 0,
2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2539 0, 0, 501, 502, 0, 0, 0, 636, 775, 0,
2540 0, 0, 0, 0, 503, 504, 505, 506, 0, 0,
2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, 0, 0, 507, 508, 509, 510, 511,
2543 332, 0, 0, 0, 0, 337, 338, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 0, 0, 0, 0, 0, 0, 0, 0, 512, 513,
2546 514, 515, 516, 517, 518, 519, 0, 0, 0, 0,
2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2548 358, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2549 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2550 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2551 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2552 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2553 51, 52, 53, 54, 55, 56, 57, 58, 0, 0,
2554 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2555 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2556 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2557 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2558 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2559 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2560 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2561 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2562 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2563 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2564 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2565 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2566 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2567 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2568 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2569 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2570 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2571 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2572 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2573 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2574 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2575 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2576 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2577 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2578 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2579 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
2580 321, 0, 0, 0, 0, 0, 499, 500, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 0, 0, 0, 0, 501, 502, 0, 0, 0,
2583 636, 886, 0, 0, 0, 0, 0, 503, 504, 505,
2584 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 507, 508,
2586 509, 510, 511, 332, 0, 0, 0, 0, 337, 338,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 512, 513, 514, 515, 516, 517, 518, 519, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591 0, 0, 0, 358, 2, 3, 4, 5, 6, 7,
2592 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2593 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2594 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2595 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2596 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2597 58, 0, 0, 61, 62, 63, 64, 65, 66, 67,
2598 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2599 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2600 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2601 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2602 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2603 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2604 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2605 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2606 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2607 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2608 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2609 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2610 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2611 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2612 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2613 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2614 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2615 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2616 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2617 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2618 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2619 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2620 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2621 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2622 308, 309, 310, 311, 312, 313, 314, 0, 0, 0,
2623 0, 0, 0, 321, 0, 0, 0, 0, 0, 499,
2624 500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 0, 0, 501, 502,
2626 0, 0, 575, 0, 0, 0, 0, 0, 0, 0,
2627 503, 504, 505, 506, 0, 0, 0, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 0, 507, 508, 509, 510, 511, 332, 0, 0, 0,
2630 0, 337, 338, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 512, 513, 514, 515, 516, 517,
2633 518, 519, 0, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 358, 2, 3, 4,
2635 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2636 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2637 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2638 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2639 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2640 55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2641 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2642 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2643 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2644 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2645 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2646 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2647 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2648 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2649 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2650 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2651 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2652 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2653 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2654 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2655 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2656 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2657 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2658 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2659 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2660 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2661 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2662 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2663 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2664 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2665 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2666 0, 0, 0, 0, 0, 0, 321, 0, 0, 0,
2667 0, 0, 499, 500, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 501, 502, 0, 0, 0, 636, 0, 0, 0,
2670 0, 0, 0, 503, 504, 505, 506, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 507, 508, 509, 510, 511, 332,
2673 0, 0, 0, 0, 337, 338, 0, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 512, 513, 514,
2676 515, 516, 517, 518, 519, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 358,
2678 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2679 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2680 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2681 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2682 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2683 52, 53, 54, 55, 56, 57, 58, 0, 0, 61,
2684 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2685 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2686 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2687 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2688 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2689 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2690 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2691 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2692 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2693 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2694 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2695 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2696 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2697 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2698 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2699 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2700 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2701 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2702 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2703 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2704 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2705 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2706 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2707 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2708 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2709 312, 313, 314, 0, 0, 0, 0, 0, 0, 321,
2710 0, 0, 0, 0, 0, 499, 500, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712 0, 0, 0, 0, 501, 502, 0, 0, 734, 0,
2713 0, 0, 0, 0, 0, 0, 503, 504, 505, 506,
2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 0, 0, 0, 0, 0, 507, 508, 509,
2716 510, 511, 332, 0, 0, 0, 0, 337, 338, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 512, 513, 514, 515, 516, 517, 518, 519, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 358, 2, 3, 4, 5, 6, 7, 8,
2722 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2723 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2724 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2725 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2726 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2727 0, 0, 61, 62, 63, 64, 65, 66, 67, 68,
2728 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2729 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2730 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2731 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2732 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2733 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2734 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2735 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2736 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2737 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2738 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2739 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2740 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2741 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2742 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2743 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2744 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2745 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2746 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2747 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2748 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2749 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2750 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2751 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2752 309, 310, 311, 312, 313, 314, 0, 0, 0, 0,
2753 0, 0, 321, 0, 0, 0, 0, 0, 499, 500,
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 501, 502, 0,
2756 0, 0, 0, 0, 0, 0, 0, 0, 745, 503,
2757 504, 505, 506, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759 507, 508, 509, 510, 511, 332, 0, 0, 0, 0,
2760 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 512, 513, 514, 515, 516, 517, 518,
2763 519, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 358, 2, 3, 4, 5,
2765 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2766 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2767 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2768 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2769 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2770 56, 57, 58, 0, 0, 61, 62, 63, 64, 65,
2771 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2772 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2773 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2774 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2775 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2776 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2777 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2778 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2779 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2780 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2781 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2782 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2783 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2784 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2785 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2786 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2787 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2788 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2789 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2790 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2791 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2792 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2793 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2794 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2795 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
2796 0, 0, 0, 0, 0, 321, 0, 0, 0, 0,
2797 0, 499, 500, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2799 501, 502, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 503, 504, 505, 506, 0, 0, 0, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 507, 508, 509, 510, 511, 332, 0,
2803 0, 0, 0, 337, 338, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 512, 513, 514, 515,
2806 516, 517, 518, 519, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 0, 0, 0, 0, 0, 358, 2,
2808 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2809 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2810 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2811 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2812 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2813 53, 54, 55, 56, 57, 58, 0, 0, 61, 62,
2814 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2815 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2816 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2817 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2818 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2819 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2820 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2821 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2822 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2823 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2824 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2825 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2826 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2827 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2828 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2829 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2830 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2831 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2832 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2833 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2834 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2835 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2836 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2837 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2838 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2839 313, 314, 0, 0, 0, 0, 0, 0, 321, 0,
2840 0, 0, 0, 0, 499, 500, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 0, 0, 0, 501, 502, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 503, 504, 505, 506, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 507, 508, 509, 510,
2846 511, 332, 0, 0, 0, 0, 337, 654, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 512,
2849 513, 514, 515, 516, 517, 518, 519, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 358, 2, 3, 4, 5, 6, 7, 8, 9,
2852 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2853 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2854 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2855 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2856 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
2857 0, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2858 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2859 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2860 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2861 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2862 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2863 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2864 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2865 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2866 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2867 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2868 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2869 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2870 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2871 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2872 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2873 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2874 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2875 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2876 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2877 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2878 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2879 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2880 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2881 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2882 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
2883 0, 321, 0, 0, 0, 0, 0, 499, 500, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 501, 502, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 503, 504,
2887 505, 506, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 507,
2889 508, 509, 510, 694, 332, 0, 0, 0, 0, 337,
2890 338, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 512, 513, 514, 515, 516, 517, 518, 519,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 0, 358, 2, 3, 4, 5, 6,
2895 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2896 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2897 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2898 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2899 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2900 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
2901 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2902 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2903 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2904 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2905 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2906 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2907 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2908 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2909 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2910 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2911 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2912 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2913 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2914 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2915 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2916 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2917 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2918 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2919 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2920 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2921 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2922 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2923 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2924 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2925 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
2926 0, 0, 0, 0, 321, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 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, 332, 0, 0,
2936 static const yytype_int16 yycheck[] =
2938 0, 401, 0, 481, 401, 382, 406, 0, 493, 0,
2939 634, 502, 636, 622, 0, 639, 542, 547, 737, 567,
2940 434, 439, 552, 569, 401, 348, 440, 359, 390, 406,
2941 413, 561, 558, 348, 331, 332, 336, 899, 385, 348,
2942 570, 348, 351, 528, 906, 356, 349, 353, 351, 426,
2943 374, 375, 376, 385, 916, 358, 351, 368, 381, 382,
2944 383, 384, 409, 481, 359, 329, 330, 382, 430, 547,
2945 367, 368, 372, 382, 552, 382, 490, 491, 351, 385,
2946 558, 499, 500, 561, 446, 349, 359, 351, 351, 349,
2947 356, 355, 570, 359, 640, 358, 473, 338, 339, 340,
2948 341, 342, 343, 344, 345, 346, 347, 361, 540, 363,
2949 601, 589, 603, 531, 546, 351, 548, 358, 351, 551,
2950 350, 553, 358, 555, 556, 358, 356, 353, 560, 547,
2951 356, 350, 741, 359, 552, 350, 350, 356, 350, 350,
2952 558, 356, 356, 561, 356, 356, 354, 350, 356, 634,
2953 774, 636, 570, 356, 639, 351, 350, 540, 649, 350,
2954 350, 709, 356, 350, 350, 356, 356, 349, 653, 356,
2955 356, 589, 349, 556, 408, 409, 410, 411, 412, 413,
2956 414, 350, 350, 350, 359, 350, 349, 356, 356, 356,
2957 567, 356, 569, 350, 350, 356, 350, 350, 350, 356,
2958 356, 920, 356, 565, 356, 350, 350, 350, 350, 350,
2959 350, 356, 356, 356, 356, 356, 356, 350, 352, 349,
2960 352, 352, 356, 356, 356, 356, 381, 382, 383, 384,
2961 854, 779, 632, 842, 349, 632, 720, 721, 722, 723,
2962 658, 327, 328, 382, 382, 382, 385, 385, 385, 349,
2963 356, 367, 743, 359, 382, 632, 747, 385, 382, 382,
2964 349, 385, 385, 640, 382, 333, 334, 385, 798, 799,
2965 382, 382, 349, 385, 385, 805, 806, 356, 357, 382,
2966 765, 766, 385, 349, 382, 811, 910, 385, 382, 774,
2967 704, 385, 364, 365, 366, 713, 714, 715, 716, 717,
2968 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
2969 728, 729, 730, 731, 385, 356, 356, 926, 359, 359,
2970 798, 799, 356, 356, 359, 359, 359, 805, 806, 356,
2971 357, 385, 709, 811, 385, 813, 716, 717, 353, 718,
2972 719, 385, 724, 725, 353, 351, 385, 385, 351, 840,
2973 358, 350, 843, 385, 359, 356, 358, 385, 371, 356,
2974 356, 356, 356, 350, 356, 385, 356, 356, 356, 854,
2975 349, 356, 356, 350, 349, 351, 359, 358, 349, 351,
2976 798, 799, 382, 348, 352, 335, 337, 805, 806, 369,
2977 390, 382, 883, 811, 352, 813, 370, 354, 398, 390,
2978 398, 401, 779, 385, 349, 398, 406, 398, 406, 900,
2979 401, 896, 398, 406, 349, 406, 416, 359, 385, 359,
2980 349, 359, 349, 357, 915, 910, 426, 425, 359, 359,
2981 430, 359, 349, 359, 349, 426, 385, 385, 350, 430,
2982 358, 348, 356, 843, 350, 356, 446, 356, 350, 352,
2983 393, 352, 356, 348, 354, 446, 350, 382, 349, 358,
2984 353, 385, 359, 350, 397, 353, 843, 353, 726, 359,
2985 354, 727, 729, 473, 430, 728, 731, 430, 730, 426,
2986 572, 331, 473, 883, 484, 703, 845, 818, 905, 916,
2987 845, 917, 424, 484, 883, 796, 632, 632, 563, 803,
2988 398, 794, 801, 632, 806, 799, 883, -1, 813, -1,
2989 -1, 809, -1, -1, -1, 811, -1, -1, -1, -1,
2990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2991 -1, -1, -1, -1, -1, -1, -1, -1, 536, -1,
2992 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2993 -1, -1, -1, -1, -1, -1, -1, -1, 558, -1,
2994 -1, -1, -1, -1, -1, 565, -1, 567, -1, 569,
2995 -1, -1, -1, -1, 565, -1, 567, -1, 569, -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, -1, -1, -1, -1, -1,
2999 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3000 -1, -1, 622, -1, -1, -1, -1, -1, -1, -1,
3001 -1, 622, 632, -1, -1, -1, -1, -1, -1, -1,
3002 640, 632, -1, -1, -1, -1, -1, -1, -1, 640,
3003 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3005 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3008 -1, -1, -1, -1, -1, -1, -1, -1, -1, 709,
3009 -1, -1, -1, -1, -1, -1, -1, -1, 709, -1,
3010 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3011 -1, -1, -1, -1, -1, -1, -1, 737, -1, -1,
3012 -1, 741, -1, -1, -1, -1, 737, -1, -1, -1,
3013 741, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3015 -1, -1, -1, -1, -1, -1, -1, -1, -1, 779,
3016 -1, -1, -1, -1, -1, -1, -1, -1, 779, -1,
3017 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3019 -1, 811, -1, 813, -1, -1, -1, -1, -1, -1,
3020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3022 -1, -1, 842, 843, -1, 845, -1, 845, -1, -1,
3023 -1, 842, 843, -1, 845, -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, 883, -1, -1, -1, -1, -1, -1,
3027 -1, -1, 883, -1, -1, -1, -1, -1, -1, 899,
3028 -1, -1, -1, -1, -1, -1, 906, -1, 899, -1,
3029 -1, -1, -1, -1, -1, 906, 916, -1, -1, -1,
3030 920, -1, -1, -1, -1, 916, 926, -1, -1, 920,
3031 -1, -1, -1, 0, -1, 926, 3, 4, 5, 6,
3032 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3033 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3034 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3035 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3036 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3037 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3038 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3039 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3040 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3041 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3042 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3043 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3044 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3045 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3046 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3047 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3048 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3049 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3050 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3051 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3052 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3053 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3054 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3055 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3056 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3057 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3058 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3059 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3060 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3061 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3062 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3063 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
3064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3065 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3066 -1, -1, -1, -1, 351, -1, -1, -1, -1, -1,
3067 -1, -1, 359, -1, -1, -1, -1, -1, -1, -1,
3068 -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
3069 377, -1, -1, -1, -1, -1, -1, -1, -1, 386,
3070 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3072 -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
3073 -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
3074 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
3075 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
3076 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
3077 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3078 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3079 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3080 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3081 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3082 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3083 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3084 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3085 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3086 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3087 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3088 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3089 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
3090 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3091 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
3092 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
3093 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3094 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
3095 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
3096 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
3097 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
3098 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
3099 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
3100 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
3101 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
3102 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
3103 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
3104 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
3105 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
3106 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
3107 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3108 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
3109 325, 326, -1, -1, 329, 330, -1, -1, -1, -1,
3110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3111 -1, -1, -1, 348, 349, -1, 351, -1, 353, 354,
3112 -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
3113 -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
3114 375, 376, 377, -1, -1, -1, 381, 382, 383, 384,
3115 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
3116 395, 396, -1, 398, 399, 400, 401, 402, 403, 404,
3117 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
3118 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
3119 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
3120 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
3121 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3122 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3123 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3124 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3125 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3126 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3127 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3128 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3129 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3130 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3131 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3132 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3133 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3134 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3135 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3136 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3137 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3138 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3139 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3140 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3141 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3142 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3143 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3144 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3145 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3146 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3147 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3148 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3149 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3150 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3151 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3152 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3153 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3154 323, 324, 325, 326, -1, -1, 329, 330, -1, -1,
3155 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3156 -1, -1, -1, -1, -1, 348, 349, -1, 351, -1,
3157 353, 354, -1, -1, -1, -1, 359, 360, 361, 362,
3158 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3159 373, 374, 375, 376, 377, -1, -1, -1, 381, 382,
3160 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
3161 393, 394, 395, 396, -1, 398, 399, 400, 401, 402,
3162 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
3163 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
3164 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
3165 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
3166 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
3167 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
3168 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3169 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
3170 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3171 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
3172 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3173 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
3174 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3175 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3176 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
3177 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
3178 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
3179 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
3180 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
3181 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
3182 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
3183 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3184 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
3185 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3186 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
3187 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
3188 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
3189 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
3190 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
3191 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
3192 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
3193 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
3194 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
3195 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
3196 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
3197 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
3198 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
3199 321, 322, 323, 324, 325, 326, -1, -1, 329, 330,
3200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3201 -1, -1, -1, -1, -1, -1, -1, 348, 349, -1,
3202 351, -1, 353, -1, -1, -1, -1, -1, 359, 360,
3203 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
3204 -1, -1, 373, 374, 375, 376, 377, -1, -1, -1,
3205 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
3206 391, 392, 393, 394, 395, 396, -1, 398, 399, 400,
3207 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
3208 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
3209 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
3210 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
3211 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
3212 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
3213 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3214 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3215 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3216 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
3217 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3218 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
3219 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3220 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3221 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
3222 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3223 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3224 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3225 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3226 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3227 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
3228 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
3229 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3230 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3231 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
3232 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
3233 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
3234 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
3235 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
3236 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
3237 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
3238 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
3239 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
3240 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
3241 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
3242 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
3243 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
3244 319, 320, 321, 322, 323, 324, 325, 326, -1, -1,
3245 329, 330, -1, -1, -1, -1, -1, -1, -1, -1,
3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, 348,
3247 349, -1, 351, -1, 353, -1, -1, -1, -1, -1,
3248 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
3249 -1, -1, -1, -1, 373, 374, 375, 376, 377, -1,
3250 -1, -1, 381, 382, 383, 384, 385, 386, 387, 388,
3251 389, 390, 391, 392, 393, 394, 395, 396, -1, 398,
3252 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
3253 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
3254 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
3255 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
3256 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
3257 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
3258 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3259 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3260 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3261 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3262 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3263 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3264 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3265 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3266 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3267 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3268 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3269 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3270 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3271 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3272 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3273 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3274 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3275 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3276 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3277 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3278 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3279 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3280 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3281 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3282 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3283 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3284 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3285 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3286 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3287 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3288 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3289 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
3290 -1, -1, 329, 330, -1, -1, -1, -1, -1, -1,
3291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3292 -1, 348, 349, -1, 351, -1, -1, -1, -1, -1,
3293 -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
3294 -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
3295 377, -1, -1, -1, 381, 382, 383, 384, 385, 386,
3296 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
3297 -1, 398, 399, 400, 401, 402, 403, 404, 405, 406,
3298 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
3299 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
3300 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
3301 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
3302 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
3303 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3304 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3305 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3306 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3307 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3308 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3309 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3310 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3311 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3312 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3313 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3314 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3315 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
3316 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3317 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
3318 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
3319 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3320 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
3321 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
3322 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
3323 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
3324 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
3325 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
3326 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
3327 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
3328 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
3329 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
3330 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
3331 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
3332 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
3333 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3334 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
3335 325, 326, -1, -1, 329, 330, -1, -1, -1, -1,
3336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3337 -1, -1, -1, 348, 349, -1, 351, -1, -1, -1,
3338 -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
3339 -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
3340 375, 376, 377, -1, -1, -1, 381, 382, 383, 384,
3341 385, 386, 387, 388, 389, 390, 391, 392, -1, -1,
3342 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3343 -1, -1, -1, 408, 409, 410, 411, 412, 413, 414,
3344 415, 416, 417, 418, 419, 420, 421, 422, -1, 424,
3345 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
3346 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
3347 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3348 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3349 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3350 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3351 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3352 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3353 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3354 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3355 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3356 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3357 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3358 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3359 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3360 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3361 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3362 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3363 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3364 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3365 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3366 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3367 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3368 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3369 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3370 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3371 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3372 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3373 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3374 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3375 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3376 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3377 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3378 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3379 313, 314, 315, 316, -1, -1, -1, 320, 321, 322,
3380 323, 324, 325, 326, -1, -1, 329, 330, -1, -1,
3381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3382 -1, -1, -1, -1, -1, 348, 349, -1, -1, -1,
3383 -1, -1, -1, -1, -1, -1, -1, 360, 361, 362,
3384 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3385 373, 374, 375, 376, -1, -1, -1, -1, 381, 382,
3386 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
3387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3388 -1, -1, -1, -1, -1, 408, 409, 410, 411, 412,
3389 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
3390 -1, 424, 425, 426, 427, 428, 429, 430, 431, 432,
3391 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
3392 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
3393 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
3394 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3395 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
3396 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3397 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
3398 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3399 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
3400 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3401 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3402 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
3403 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
3404 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
3405 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
3406 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
3407 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
3408 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
3409 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3410 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
3411 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3412 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
3413 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
3414 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
3415 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
3416 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
3417 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
3418 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
3419 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
3420 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
3421 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
3422 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
3423 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
3424 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
3425 321, 322, 323, 324, 325, 326, -1, -1, -1, -1,
3426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3428 351, -1, -1, -1, -1, -1, -1, -1, 359, -1,
3429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3430 -1, -1, 373, 374, 375, 376, 377, -1, -1, -1,
3431 -1, -1, -1, -1, -1, 386, 387, 388, 389, 390,
3432 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
3433 -1, -1, -1, -1, -1, -1, -1, 408, 409, 410,
3434 411, 412, 413, -1, -1, -1, -1, -1, -1, -1,
3435 -1, 422, -1, 424, 425, 426, 427, 428, 429, 430,
3436 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
3437 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
3438 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
3439 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3440 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3441 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3442 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
3443 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3444 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
3445 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3446 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3447 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
3448 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3449 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3450 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3451 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3452 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3453 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
3454 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
3455 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3456 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3457 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
3458 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
3459 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
3460 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
3461 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
3462 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
3463 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
3464 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
3465 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
3466 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
3467 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
3468 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
3469 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
3470 -1, 320, 321, 322, 323, 324, 325, 326, -1, -1,
3471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3475 -1, -1, -1, -1, 373, 374, 375, 376, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, 386, 387, 388,
3477 389, 390, 391, 392, 393, -1, -1, 396, -1, 398,
3478 399, -1, -1, 402, -1, -1, -1, -1, -1, 408,
3479 409, 410, 411, 412, 413, -1, -1, -1, -1, -1,
3480 -1, -1, -1, 422, -1, 424, 425, 426, 427, 428,
3481 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
3482 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
3483 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
3484 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3485 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3486 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3487 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3488 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3489 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3490 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3491 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3492 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3493 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3494 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3495 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3496 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3497 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3498 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3499 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3500 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3501 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3502 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3503 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3504 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3505 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3506 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3507 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3508 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3509 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3510 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3511 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3512 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3513 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3514 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3515 -1, -1, -1, 320, 321, 322, 323, 324, 325, 326,
3516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, -1, 359, -1, -1, -1, -1, -1, -1, -1,
3520 -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
3521 -1, -1, -1, -1, -1, -1, -1, -1, 385, 386,
3522 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3524 -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
3525 -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
3526 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
3527 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
3528 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
3529 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3530 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3531 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3532 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3533 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3534 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3535 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3536 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3537 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3538 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3539 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3540 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3541 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
3542 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3543 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
3544 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
3545 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3546 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
3547 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
3548 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
3549 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
3550 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
3551 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
3552 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
3553 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
3554 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
3555 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
3556 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
3557 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
3558 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
3559 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3560 315, 316, -1, -1, -1, 320, 321, 322, 323, 324,
3561 325, 326, -1, -1, -1, -1, -1, -1, -1, -1,
3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3563 -1, -1, -1, -1, -1, -1, 351, -1, -1, -1,
3564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
3566 375, 376, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, 386, 387, 388, 389, 390, 391, 392, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 -1, -1, -1, 408, 409, 410, 411, 412, 413, -1,
3570 -1, -1, -1, -1, -1, -1, -1, 422, -1, 424,
3571 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
3572 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
3573 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3574 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3575 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3576 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3577 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3578 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3579 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3580 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3581 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3582 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3583 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3584 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3585 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3586 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3587 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3588 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3589 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3590 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3591 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3592 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3593 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3594 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3595 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3596 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3597 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3598 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3599 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3600 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3601 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3602 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3603 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3604 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3605 313, 314, 315, 316, -1, -1, -1, 320, 321, 322,
3606 323, 324, 325, 326, -1, -1, -1, -1, -1, -1,
3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3609 -1, 354, -1, -1, -1, -1, -1, -1, -1, -1,
3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3611 373, 374, 375, 376, -1, -1, -1, -1, -1, -1,
3612 -1, -1, -1, 386, 387, 388, 389, 390, 391, 392,
3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, 408, 409, 410, 411, 412,
3615 413, -1, -1, -1, -1, -1, -1, -1, -1, 422,
3616 -1, 424, 425, 426, 427, 428, 429, 430, 431, 432,
3617 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
3618 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
3619 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
3620 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3621 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
3622 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3623 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
3624 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3625 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
3626 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3627 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3628 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
3629 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
3630 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
3631 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
3632 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
3633 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
3634 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
3635 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3636 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
3637 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3638 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
3639 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
3640 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
3641 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
3642 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
3643 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
3644 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
3645 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
3646 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
3647 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
3648 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
3649 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
3650 311, 312, 313, 314, 315, 316, -1, -1, -1, 320,
3651 321, 322, 323, 324, 325, 326, -1, -1, -1, -1,
3652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3654 -1, -1, -1, 354, -1, -1, -1, -1, -1, -1,
3655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3656 -1, -1, 373, 374, 375, 376, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, 386, 387, 388, 389, 390,
3658 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
3659 -1, -1, -1, -1, -1, -1, -1, 408, 409, 410,
3660 411, 412, 413, -1, -1, -1, -1, -1, -1, -1,
3661 -1, 422, -1, 424, 425, 426, 427, 428, 429, 430,
3662 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
3663 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
3664 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
3665 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3666 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3667 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3668 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
3669 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3670 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
3671 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3672 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3673 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
3674 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3675 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3676 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3677 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3678 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3679 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
3680 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
3681 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3682 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3683 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
3684 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
3685 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
3686 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
3687 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
3688 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
3689 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
3690 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
3691 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
3692 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
3693 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
3694 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
3695 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
3696 -1, 320, 321, 322, 323, 324, 325, 326, -1, -1,
3697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3699 -1, -1, -1, -1, -1, 354, -1, -1, -1, -1,
3700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3701 -1, -1, -1, -1, 373, 374, 375, 376, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, 386, 387, 388,
3703 389, 390, 391, 392, -1, -1, -1, -1, -1, -1,
3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, 408,
3705 409, 410, 411, 412, 413, -1, -1, -1, -1, -1,
3706 -1, -1, -1, 422, -1, 424, 425, 426, 427, 428,
3707 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
3708 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
3709 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
3710 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3711 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3712 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3713 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3714 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3715 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3716 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3717 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3718 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3719 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3720 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3721 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3722 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3723 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3724 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3725 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3726 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3727 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3728 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3729 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3730 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3731 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3732 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3733 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3734 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3735 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3736 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3737 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3738 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3739 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3740 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3741 -1, -1, -1, 320, 321, 322, 323, 324, 325, 326,
3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3746 -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, 386,
3748 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
3749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3750 -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
3751 -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
3752 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
3753 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
3754 447, 448, 449, 450, 451, 452, 453, 454, 4, 5,
3755 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3756 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3757 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3758 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3759 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3760 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
3761 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3762 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3763 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3764 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3765 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3766 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3767 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3768 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3769 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3770 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3771 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3772 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3773 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3774 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3775 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3776 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3777 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3778 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3779 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3780 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3781 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3782 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3783 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3784 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3785 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3786 316, -1, -1, -1, -1, -1, -1, 323, -1, -1,
3787 -1, -1, -1, 329, 330, -1, -1, -1, -1, -1,
3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3789 -1, -1, 348, 349, -1, -1, -1, 353, 354, -1,
3790 -1, -1, -1, -1, 360, 361, 362, 363, -1, -1,
3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3792 -1, -1, -1, -1, -1, 381, 382, 383, 384, 385,
3793 386, -1, -1, -1, -1, 391, 392, -1, -1, -1,
3794 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3795 -1, -1, -1, -1, -1, -1, -1, -1, 414, 415,
3796 416, 417, 418, 419, 420, 421, -1, -1, -1, -1,
3797 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3798 436, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3799 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3800 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3801 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3802 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3803 53, 54, 55, 56, 57, 58, 59, 60, -1, -1,
3804 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3805 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3806 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3807 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3808 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3809 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3810 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3811 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3812 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3813 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3814 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3815 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3816 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3817 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3818 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3819 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3820 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3821 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3822 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3823 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3824 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3825 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3826 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3827 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3828 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3829 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
3830 323, -1, -1, -1, -1, -1, 329, 330, -1, -1,
3831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3832 -1, -1, -1, -1, -1, 348, 349, -1, -1, -1,
3833 353, 354, -1, -1, -1, -1, -1, 360, 361, 362,
3834 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3835 -1, -1, -1, -1, -1, -1, -1, -1, 381, 382,
3836 383, 384, 385, 386, -1, -1, -1, -1, 391, 392,
3837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3839 -1, 414, 415, 416, 417, 418, 419, 420, 421, -1,
3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3841 -1, -1, -1, 436, 4, 5, 6, 7, 8, 9,
3842 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3843 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3844 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3845 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3846 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3847 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
3848 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3849 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3850 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3851 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3852 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3853 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3854 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3855 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3856 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3857 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3858 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3859 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3860 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3861 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3862 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3863 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3864 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3865 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3866 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3867 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3868 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3869 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3870 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3871 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3872 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
3873 -1, -1, -1, 323, -1, -1, -1, -1, -1, 329,
3874 330, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3875 -1, -1, -1, -1, -1, -1, -1, -1, 348, 349,
3876 -1, -1, 352, -1, -1, -1, -1, -1, -1, -1,
3877 360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
3878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3879 -1, 381, 382, 383, 384, 385, 386, -1, -1, -1,
3880 -1, 391, 392, -1, -1, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3882 -1, -1, -1, -1, 414, 415, 416, 417, 418, 419,
3883 420, 421, -1, -1, -1, -1, -1, -1, -1, -1,
3884 -1, -1, -1, -1, -1, -1, 436, 4, 5, 6,
3885 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3886 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3887 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3888 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3889 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3890 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3891 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3892 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3893 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3894 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3895 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3896 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3897 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3898 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3899 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3900 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3901 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3902 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3903 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3904 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3905 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3906 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3907 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3908 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3909 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3910 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3911 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3912 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3913 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3914 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3915 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3916 -1, -1, -1, -1, -1, -1, 323, -1, -1, -1,
3917 -1, -1, 329, 330, -1, -1, -1, -1, -1, -1,
3918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3919 -1, 348, 349, -1, -1, -1, 353, -1, -1, -1,
3920 -1, -1, -1, 360, 361, 362, 363, -1, -1, -1,
3921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3922 -1, -1, -1, -1, 381, 382, 383, 384, 385, 386,
3923 -1, -1, -1, -1, 391, 392, -1, -1, -1, -1,
3924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3925 -1, -1, -1, -1, -1, -1, -1, 414, 415, 416,
3926 417, 418, 419, 420, 421, -1, -1, -1, -1, -1,
3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, 436,
3928 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3929 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3930 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3931 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3932 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3933 54, 55, 56, 57, 58, 59, 60, -1, -1, 63,
3934 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3935 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3936 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3937 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3938 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3939 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3940 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3941 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3942 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3943 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3944 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3945 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3946 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3947 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3948 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3949 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3950 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3951 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3952 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3953 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3954 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3955 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3956 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3957 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3958 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3959 314, 315, 316, -1, -1, -1, -1, -1, -1, 323,
3960 -1, -1, -1, -1, -1, 329, 330, -1, -1, -1,
3961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3962 -1, -1, -1, -1, 348, 349, -1, -1, 352, -1,
3963 -1, -1, -1, -1, -1, -1, 360, 361, 362, 363,
3964 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3965 -1, -1, -1, -1, -1, -1, -1, 381, 382, 383,
3966 384, 385, 386, -1, -1, -1, -1, 391, 392, -1,
3967 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3969 414, 415, 416, 417, 418, 419, 420, 421, -1, -1,
3970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3971 -1, -1, 436, 4, 5, 6, 7, 8, 9, 10,
3972 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3973 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
3974 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3975 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
3976 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3977 -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
3978 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3979 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3980 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
3981 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
3982 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
3983 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
3984 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
3985 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
3986 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
3987 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3988 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
3989 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3990 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
3991 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
3992 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
3993 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
3994 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
3995 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
3996 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
3997 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
3998 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
3999 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
4000 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
4001 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
4002 311, 312, 313, 314, 315, 316, -1, -1, -1, -1,
4003 -1, -1, 323, -1, -1, -1, -1, -1, 329, 330,
4004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4005 -1, -1, -1, -1, -1, -1, -1, 348, 349, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
4007 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4009 381, 382, 383, 384, 385, 386, -1, -1, -1, -1,
4010 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4012 -1, -1, -1, 414, 415, 416, 417, 418, 419, 420,
4013 421, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4014 -1, -1, -1, -1, -1, 436, 4, 5, 6, 7,
4015 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4016 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
4017 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
4018 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
4019 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4020 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
4021 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
4022 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
4023 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
4024 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
4025 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
4026 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
4027 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
4028 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
4029 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
4030 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
4031 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
4032 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
4033 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
4034 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
4035 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
4036 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
4037 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
4038 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
4039 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
4040 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
4041 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
4042 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
4043 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
4044 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
4045 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
4046 -1, -1, -1, -1, -1, 323, -1, -1, -1, -1,
4047 -1, 329, 330, -1, -1, -1, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4049 348, 349, -1, -1, -1, -1, -1, -1, -1, -1,
4050 -1, -1, 360, 361, 362, 363, -1, -1, -1, -1,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, 381, 382, 383, 384, 385, 386, -1,
4053 -1, -1, -1, 391, 392, -1, -1, -1, -1, -1,
4054 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4055 -1, -1, -1, -1, -1, -1, 414, 415, 416, 417,
4056 418, 419, 420, 421, -1, -1, -1, -1, -1, -1,
4057 -1, -1, -1, -1, -1, -1, -1, -1, 436, 4,
4058 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4059 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4060 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
4061 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
4062 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4063 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
4064 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4065 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
4066 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
4067 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
4068 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
4069 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4070 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
4071 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
4072 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
4073 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
4074 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
4075 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
4076 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
4077 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
4078 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
4079 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4080 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
4081 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
4082 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
4083 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
4084 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
4085 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
4086 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
4087 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
4088 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
4089 315, 316, -1, -1, -1, -1, -1, -1, 323, -1,
4090 -1, -1, -1, -1, 329, 330, -1, -1, -1, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4092 -1, -1, -1, 348, 349, -1, -1, -1, -1, -1,
4093 -1, -1, -1, -1, -1, 360, 361, 362, 363, -1,
4094 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, -1, -1, -1, 381, 382, 383, 384,
4096 385, 386, -1, -1, -1, -1, 391, 392, -1, -1,
4097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4098 -1, -1, -1, -1, -1, -1, -1, -1, -1, 414,
4099 415, 416, 417, 418, 419, 420, 421, -1, -1, -1,
4100 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4101 -1, 436, 4, 5, 6, 7, 8, 9, 10, 11,
4102 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4103 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4104 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
4105 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
4106 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
4107 -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
4108 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
4109 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
4110 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
4111 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
4112 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4113 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
4114 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
4115 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
4116 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
4117 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
4118 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
4119 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
4120 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
4121 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
4122 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
4123 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
4124 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
4125 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
4126 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
4127 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
4128 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
4129 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
4130 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
4131 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4132 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
4133 -1, 323, -1, -1, -1, -1, -1, 329, 330, -1,
4134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4135 -1, -1, -1, -1, -1, -1, 348, 349, -1, -1,
4136 -1, -1, -1, -1, -1, -1, -1, -1, 360, 361,
4137 362, 363, -1, -1, -1, -1, -1, -1, -1, -1,
4138 -1, -1, -1, -1, -1, -1, -1, -1, -1, 381,
4139 382, 383, 384, 385, 386, -1, -1, -1, -1, 391,
4140 392, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4141 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4142 -1, -1, 414, 415, 416, 417, 418, 419, 420, 421,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4144 -1, -1, -1, -1, 436, 4, 5, 6, 7, 8,
4145 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4146 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
4147 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
4148 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
4149 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4150 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
4151 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
4152 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
4153 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
4154 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4155 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4156 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
4157 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
4158 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
4159 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
4160 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
4161 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
4162 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
4163 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
4164 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
4165 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
4166 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
4167 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
4168 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
4169 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4170 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
4171 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
4172 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
4173 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
4174 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
4175 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
4176 -1, -1, -1, -1, 323, -1, -1, -1, -1, -1,
4177 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4179 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, -1, -1, -1, 386, -1, -1,
4186 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4187 symbol of state STATE-NUM. */
4188 static const yytype_int16 yystos[] =
4190 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4191 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4192 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4193 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
4194 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
4195 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
4196 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
4197 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
4198 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
4199 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
4200 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
4201 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4202 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
4203 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
4204 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
4205 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
4206 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
4207 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
4208 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
4209 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
4210 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
4211 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
4212 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
4213 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
4214 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
4215 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
4216 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
4217 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
4218 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
4219 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
4220 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4221 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
4222 322, 323, 324, 325, 326, 351, 359, 373, 374, 375,
4223 376, 377, 386, 387, 388, 389, 390, 391, 392, 408,
4224 409, 410, 411, 412, 413, 422, 424, 425, 426, 427,
4225 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
4226 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
4227 448, 449, 450, 451, 452, 453, 454, 486, 487, 490,
4228 491, 492, 493, 497, 498, 499, 500, 501, 502, 505,
4229 506, 507, 508, 509, 511, 516, 517, 518, 559, 560,
4230 561, 563, 570, 574, 575, 580, 583, 349, 349, 349,
4231 349, 349, 349, 349, 349, 351, 517, 353, 385, 349,
4232 349, 359, 385, 359, 562, 350, 356, 494, 495, 496,
4233 506, 511, 356, 359, 385, 359, 385, 507, 511, 367,
4234 513, 514, 0, 560, 491, 499, 506, 359, 490, 385,
4235 566, 567, 584, 585, 382, 385, 566, 382, 566, 382,
4236 566, 382, 566, 382, 566, 566, 584, 382, 566, 385,
4237 564, 565, 511, 520, 353, 385, 409, 503, 504, 385,
4238 510, 351, 359, 512, 353, 538, 563, 495, 494, 496,
4239 385, 385, 349, 358, 512, 353, 356, 359, 489, 329,
4240 330, 348, 349, 360, 361, 362, 363, 381, 382, 383,
4241 384, 385, 414, 415, 416, 417, 418, 419, 420, 421,
4242 456, 457, 458, 460, 461, 462, 463, 464, 465, 466,
4243 467, 468, 509, 511, 515, 512, 350, 385, 359, 358,
4244 356, 350, 356, 350, 356, 358, 356, 356, 356, 350,
4245 356, 356, 356, 356, 356, 356, 356, 350, 356, 350,
4246 356, 349, 352, 356, 359, 506, 511, 521, 522, 519,
4247 358, 350, 356, 350, 356, 352, 467, 469, 470, 471,
4248 472, 473, 474, 475, 476, 477, 478, 479, 480, 351,
4249 359, 353, 354, 359, 393, 394, 395, 396, 398, 399,
4250 400, 401, 402, 403, 404, 405, 406, 407, 423, 467,
4251 480, 482, 484, 486, 490, 509, 511, 527, 528, 529,
4252 530, 531, 539, 540, 541, 542, 545, 546, 549, 550,
4253 551, 558, 563, 512, 358, 512, 353, 482, 525, 358,
4254 488, 385, 356, 359, 467, 467, 484, 329, 330, 351,
4255 355, 350, 350, 356, 392, 482, 349, 467, 356, 368,
4256 563, 348, 351, 382, 567, 584, 385, 585, 348, 381,
4257 382, 383, 384, 571, 572, 382, 480, 485, 573, 382,
4258 381, 382, 383, 384, 576, 577, 382, 485, 578, 382,
4259 348, 579, 382, 584, 385, 485, 511, 581, 582, 382,
4260 485, 352, 565, 511, 385, 523, 524, 354, 522, 521,
4261 485, 504, 385, 364, 365, 366, 361, 363, 327, 328,
4262 331, 332, 367, 368, 333, 334, 371, 370, 369, 335,
4263 337, 336, 372, 352, 352, 480, 354, 532, 349, 359,
4264 359, 553, 349, 349, 359, 359, 484, 349, 484, 357,
4265 359, 359, 359, 359, 338, 339, 340, 341, 342, 343,
4266 344, 345, 346, 347, 358, 483, 356, 359, 354, 528,
4267 542, 546, 551, 525, 358, 354, 525, 526, 525, 521,
4268 385, 350, 459, 484, 385, 482, 467, 348, 382, 568,
4269 569, 350, 358, 350, 356, 350, 356, 350, 356, 356,
4270 350, 356, 350, 356, 350, 356, 356, 350, 356, 356,
4271 350, 356, 350, 356, 350, 350, 523, 512, 356, 359,
4272 354, 467, 467, 467, 469, 469, 470, 470, 471, 471,
4273 471, 471, 472, 472, 473, 474, 475, 476, 477, 478,
4274 481, 352, 539, 552, 528, 554, 484, 359, 484, 357,
4275 482, 482, 525, 354, 356, 354, 352, 352, 356, 352,
4276 356, 572, 571, 485, 573, 577, 576, 485, 578, 348,
4277 579, 581, 582, 359, 524, 484, 533, 484, 499, 544,
4278 393, 527, 540, 555, 350, 350, 354, 525, 348, 382,
4279 350, 350, 350, 350, 350, 350, 357, 354, 385, 350,
4280 349, 544, 556, 557, 535, 536, 537, 543, 547, 482,
4281 358, 529, 534, 538, 484, 359, 350, 397, 531, 529,
4282 353, 525, 350, 484, 534, 535, 539, 548, 359, 354
4285 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
4286 static const yytype_int16 yyr1[] =
4288 0, 455, 456, 457, 457, 457, 457, 457, 457, 457,
4289 457, 457, 457, 457, 457, 457, 457, 457, 458, 458,
4290 458, 458, 458, 458, 459, 460, 461, 462, 462, 463,
4291 463, 464, 464, 465, 466, 466, 466, 467, 467, 467,
4292 467, 468, 468, 468, 468, 469, 469, 469, 469, 470,
4293 470, 470, 471, 471, 471, 472, 472, 472, 472, 472,
4294 473, 473, 473, 474, 474, 475, 475, 476, 476, 477,
4295 477, 478, 478, 479, 479, 480, 481, 480, 482, 482,
4296 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
4297 483, 484, 484, 485, 486, 486, 486, 486, 486, 486,
4298 486, 486, 486, 486, 486, 488, 487, 489, 489, 490,
4299 490, 490, 490, 491, 491, 492, 492, 493, 494, 494,
4300 495, 495, 495, 495, 496, 497, 497, 497, 497, 497,
4301 498, 498, 498, 498, 498, 499, 499, 500, 501, 501,
4302 501, 501, 501, 501, 501, 501, 502, 503, 503, 504,
4303 504, 504, 505, 506, 506, 507, 507, 507, 507, 507,
4304 507, 507, 507, 507, 507, 507, 508, 508, 508, 508,
4305 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
4306 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
4307 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
4308 508, 509, 510, 510, 511, 511, 512, 512, 512, 512,
4309 513, 513, 514, 515, 515, 516, 516, 516, 516, 516,
4310 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4311 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4312 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4313 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4314 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4315 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4316 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4317 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4318 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4319 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4320 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4321 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4322 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4323 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4324 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4325 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4326 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4327 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4328 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4329 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4330 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4331 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4332 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4333 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4334 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4335 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4336 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4337 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4338 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4339 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4340 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
4341 517, 517, 517, 519, 518, 520, 518, 521, 521, 522,
4342 522, 523, 523, 524, 524, 525, 525, 525, 525, 526,
4343 526, 527, 528, 528, 529, 529, 529, 529, 529, 529,
4344 529, 529, 530, 531, 532, 533, 531, 534, 534, 536,
4345 535, 537, 535, 538, 538, 539, 539, 540, 540, 541,
4346 541, 542, 543, 543, 544, 544, 545, 545, 547, 546,
4347 548, 548, 549, 549, 550, 550, 552, 551, 553, 551,
4348 554, 551, 555, 555, 556, 556, 557, 557, 558, 558,
4349 558, 558, 558, 558, 558, 558, 559, 559, 560, 560,
4350 560, 562, 561, 563, 564, 564, 565, 565, 566, 566,
4351 567, 567, 568, 568, 569, 569, 570, 570, 570, 570,
4352 570, 570, 571, 571, 572, 572, 572, 572, 572, 573,
4353 573, 574, 574, 575, 575, 575, 575, 575, 575, 575,
4354 575, 576, 576, 577, 577, 577, 577, 578, 578, 579,
4355 579, 580, 580, 580, 580, 581, 581, 582, 582, 583,
4356 583, 584, 584, 585, 585
4359 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
4360 static const yytype_int8 yyr2[] =
4362 0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
4363 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
4364 1, 3, 2, 2, 1, 1, 1, 2, 2, 2,
4365 1, 2, 3, 2, 1, 1, 1, 1, 2, 2,
4366 2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
4367 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
4368 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
4369 3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
4370 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4371 1, 1, 3, 1, 2, 3, 2, 2, 4, 2,
4372 3, 4, 2, 3, 4, 0, 6, 2, 3, 2,
4373 3, 3, 4, 1, 1, 2, 3, 3, 2, 3,
4374 2, 1, 2, 1, 1, 1, 3, 4, 6, 5,
4375 1, 2, 3, 5, 4, 1, 2, 1, 1, 1,
4376 1, 1, 1, 1, 1, 1, 4, 1, 3, 1,
4377 3, 1, 1, 1, 2, 1, 1, 1, 1, 1,
4378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4382 4, 1, 1, 3, 2, 3, 2, 3, 3, 4,
4383 1, 0, 3, 1, 3, 1, 1, 1, 1, 1,
4384 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4406 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4409 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1,
4415 1, 1, 1, 0, 6, 0, 5, 1, 2, 3,
4416 4, 1, 3, 1, 2, 1, 3, 4, 2, 1,
4417 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4418 1, 1, 2, 2, 0, 0, 5, 1, 1, 0,
4419 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
4420 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
4421 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
4422 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
4423 2, 3, 2, 2, 2, 2, 1, 2, 1, 1,
4424 1, 0, 3, 5, 1, 3, 1, 4, 1, 3,
4425 5, 5, 1, 3, 1, 3, 4, 6, 6, 8,
4426 6, 8, 1, 3, 1, 1, 1, 1, 1, 1,
4427 3, 4, 6, 4, 6, 6, 8, 6, 8, 6,
4428 8, 1, 3, 1, 1, 1, 1, 1, 3, 1,
4429 3, 6, 8, 4, 6, 1, 3, 1, 1, 4,
4434 enum { YYENOMEM = -2 };
4436 #define yyerrok (yyerrstatus = 0)
4437 #define yyclearin (yychar = YYEMPTY)
4439 #define YYACCEPT goto yyacceptlab
4440 #define YYABORT goto yyabortlab
4441 #define YYERROR goto yyerrorlab
4444 #define YYRECOVERING() (!!yyerrstatus)
4446 #define YYBACKUP(Token, Value) \
4448 if (yychar == YYEMPTY) \
4452 YYPOPSTACK (yylen); \
4458 yyerror (pParseContext, YY_("syntax error: cannot back up")); \
4463 /* Backward compatibility with an undocumented macro.
4464 Use YYerror or YYUNDEF. */
4465 #define YYERRCODE YYUNDEF
4468 /* Enable debugging if requested. */
4472 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
4473 # define YYFPRINTF fprintf
4476 # define YYDPRINTF(Args) \
4482 /* This macro is provided for backward compatibility. */
4483 # ifndef YY_LOCATION_PRINT
4484 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4488 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
4492 YYFPRINTF (stderr, "%s ", Title); \
4493 yy_symbol_print (stderr, \
4494 Kind, Value, pParseContext); \
4495 YYFPRINTF (stderr, "\n"); \
4500 /*-----------------------------------.
4501 | Print this symbol's value on YYO. |
4502 `-----------------------------------*/
4505 yy_symbol_value_print (FILE *yyo,
4506 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4508 FILE *yyoutput = yyo;
4510 YYUSE (pParseContext);
4514 if (yykind < YYNTOKENS)
4515 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
4517 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4519 YY_IGNORE_MAYBE_UNINITIALIZED_END
4523 /*---------------------------.
4524 | Print this symbol on YYO. |
4525 `---------------------------*/
4528 yy_symbol_print (FILE *yyo,
4529 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4531 YYFPRINTF (yyo, "%s %s (",
4532 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
4534 yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
4535 YYFPRINTF (yyo, ")");
4538 /*------------------------------------------------------------------.
4539 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4541 `------------------------------------------------------------------*/
4544 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
4546 YYFPRINTF (stderr, "Stack now");
4547 for (; yybottom <= yytop; yybottom++)
4549 int yybot = *yybottom;
4550 YYFPRINTF (stderr, " %d", yybot);
4552 YYFPRINTF (stderr, "\n");
4555 # define YY_STACK_PRINT(Bottom, Top) \
4558 yy_stack_print ((Bottom), (Top)); \
4562 /*------------------------------------------------.
4563 | Report that the YYRULE is going to be reduced. |
4564 `------------------------------------------------*/
4567 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
4568 int yyrule, glslang::TParseContext* pParseContext)
4570 int yylno = yyrline[yyrule];
4571 int yynrhs = yyr2[yyrule];
4573 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
4575 /* The symbols being reduced. */
4576 for (yyi = 0; yyi < yynrhs; yyi++)
4578 YYFPRINTF (stderr, " $%d = ", yyi + 1);
4579 yy_symbol_print (stderr,
4580 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
4581 &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
4582 YYFPRINTF (stderr, "\n");
4586 # define YY_REDUCE_PRINT(Rule) \
4589 yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
4592 /* Nonzero means print parse trace. It is left uninitialized so that
4593 multiple parsers can coexist. */
4595 #else /* !YYDEBUG */
4596 # define YYDPRINTF(Args) ((void) 0)
4597 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
4598 # define YY_STACK_PRINT(Bottom, Top)
4599 # define YY_REDUCE_PRINT(Rule)
4600 #endif /* !YYDEBUG */
4603 /* YYINITDEPTH -- initial size of the parser's stacks. */
4605 # define YYINITDEPTH 200
4608 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4609 if the built-in stack extension method is used).
4611 Do not make this value too large; the results are undefined if
4612 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4613 evaluated with infinite-precision integer arithmetic. */
4616 # define YYMAXDEPTH 10000
4620 /* Context of a parse error. */
4624 yysymbol_kind_t yytoken;
4627 /* Put in YYARG at most YYARGN of the expected tokens given the
4628 current YYCTX, and return the number of tokens stored in YYARG. If
4629 YYARG is null, return the number of expected tokens (guaranteed to
4630 be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
4631 Return 0 if there are more than YYARGN expected tokens, yet fill
4632 YYARG up to YYARGN. */
4634 yypcontext_expected_tokens (const yypcontext_t *yyctx,
4635 yysymbol_kind_t yyarg[], int yyargn)
4637 /* Actual size of YYARG. */
4639 int yyn = yypact[+*yyctx->yyssp];
4640 if (!yypact_value_is_default (yyn))
4642 /* Start YYX at -YYN if negative to avoid negative indexes in
4643 YYCHECK. In other words, skip the first -YYN actions for
4644 this state because they are default actions. */
4645 int yyxbegin = yyn < 0 ? -yyn : 0;
4646 /* Stay within bounds of both yycheck and yytname. */
4647 int yychecklim = YYLAST - yyn + 1;
4648 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4650 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4651 if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
4652 && !yytable_value_is_error (yytable[yyx + yyn]))
4656 else if (yycount == yyargn)
4659 yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
4662 if (yyarg && yycount == 0 && 0 < yyargn)
4663 yyarg[0] = YYSYMBOL_YYEMPTY;
4671 # if defined __GLIBC__ && defined _STRING_H
4672 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
4674 /* Return the length of YYSTR. */
4676 yystrlen (const char *yystr)
4679 for (yylen = 0; yystr[yylen]; yylen++)
4687 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4688 # define yystpcpy stpcpy
4690 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4693 yystpcpy (char *yydest, const char *yysrc)
4696 const char *yys = yysrc;
4698 while ((*yyd++ = *yys++) != '\0')
4707 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4708 quotes and backslashes, so that it's suitable for yyerror. The
4709 heuristic is that double-quoting is unnecessary unless the string
4710 contains an apostrophe, a comma, or backslash (other than
4711 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4712 null, do not copy; instead, return the length of what the result
4715 yytnamerr (char *yyres, const char *yystr)
4719 YYPTRDIFF_T yyn = 0;
4720 char const *yyp = yystr;
4726 goto do_not_strip_quotes;
4730 goto do_not_strip_quotes;
4746 do_not_strip_quotes: ;
4750 return yystpcpy (yyres, yystr) - yyres;
4752 return yystrlen (yystr);
4758 yy_syntax_error_arguments (const yypcontext_t *yyctx,
4759 yysymbol_kind_t yyarg[], int yyargn)
4761 /* Actual size of YYARG. */
4763 /* There are many possibilities here to consider:
4764 - If this state is a consistent state with a default action, then
4765 the only way this function was invoked is if the default action
4766 is an error action. In that case, don't check for expected
4767 tokens because there are none.
4768 - The only way there can be no lookahead present (in yychar) is if
4769 this state is a consistent state with a default action. Thus,
4770 detecting the absence of a lookahead is sufficient to determine
4771 that there is no unexpected or expected token to report. In that
4772 case, just report a simple "syntax error".
4773 - Don't assume there isn't a lookahead just because this state is a
4774 consistent state with a default action. There might have been a
4775 previous inconsistent state, consistent state with a non-default
4776 action, or user semantic action that manipulated yychar.
4777 - Of course, the expected token list depends on states to have
4778 correct lookahead information, and it depends on the parser not
4779 to perform extra reductions after fetching a lookahead from the
4780 scanner and before detecting a syntax error. Thus, state merging
4781 (from LALR or IELR) and default reductions corrupt the expected
4782 token list. However, the list is correct for canonical LR with
4783 one exception: it will still contain any token that will not be
4784 accepted due to an error action in a later state.
4786 if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
4790 yyarg[yycount] = yyctx->yytoken;
4792 yyn = yypcontext_expected_tokens (yyctx,
4793 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4794 if (yyn == YYENOMEM)
4802 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
4803 about the unexpected token YYTOKEN for the state stack whose top is
4806 Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
4807 not large enough to hold the message. In that case, also set
4808 *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
4809 required number of bytes is too large to store. */
4811 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
4812 const yypcontext_t *yyctx)
4814 enum { YYARGS_MAX = 5 };
4815 /* Internationalized format string. */
4816 const char *yyformat = YY_NULLPTR;
4817 /* Arguments of yyformat: reported tokens (one for the "unexpected",
4818 one per "expected"). */
4819 yysymbol_kind_t yyarg[YYARGS_MAX];
4820 /* Cumulated lengths of YYARG. */
4821 YYPTRDIFF_T yysize = 0;
4823 /* Actual size of YYARG. */
4824 int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
4825 if (yycount == YYENOMEM)
4830 #define YYCASE_(N, S) \
4834 default: /* Avoid compiler warnings. */
4835 YYCASE_(0, YY_("syntax error"));
4836 YYCASE_(1, YY_("syntax error, unexpected %s"));
4837 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
4838 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
4839 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
4840 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4844 /* Compute error message size. Don't count the "%s"s, but reserve
4845 room for the terminator. */
4846 yysize = yystrlen (yyformat) - 2 * yycount + 1;
4849 for (yyi = 0; yyi < yycount; ++yyi)
4852 = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
4853 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
4860 if (*yymsg_alloc < yysize)
4862 *yymsg_alloc = 2 * yysize;
4863 if (! (yysize <= *yymsg_alloc
4864 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
4865 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
4869 /* Avoid sprintf, as that infringes on the user's name space.
4870 Don't have undefined behavior even if the translation
4871 produced a string with the wrong number of "%s"s. */
4875 while ((*yyp = *yyformat) != '\0')
4876 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4878 yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
4891 /*-----------------------------------------------.
4892 | Release the memory associated to this symbol. |
4893 `-----------------------------------------------*/
4896 yydestruct (const char *yymsg,
4897 yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
4900 YYUSE (pParseContext);
4903 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4905 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4907 YY_IGNORE_MAYBE_UNINITIALIZED_END
4920 yyparse (glslang::TParseContext* pParseContext)
4922 /* Lookahead token kind. */
4926 /* The semantic value of the lookahead symbol. */
4927 /* Default value used for initialization, for pacifying older GCCs
4928 or non-GCC compilers. */
4929 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4930 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4932 /* Number of syntax errors so far. */
4935 yy_state_fast_t yystate = 0;
4936 /* Number of tokens to shift before error messages enabled. */
4937 int yyerrstatus = 0;
4939 /* Refer to the stacks through separate pointers, to allow yyoverflow
4940 to reallocate them elsewhere. */
4943 YYPTRDIFF_T yystacksize = YYINITDEPTH;
4945 /* The state stack: array, bottom, top. */
4946 yy_state_t yyssa[YYINITDEPTH];
4947 yy_state_t *yyss = yyssa;
4948 yy_state_t *yyssp = yyss;
4950 /* The semantic value stack: array, bottom, top. */
4951 YYSTYPE yyvsa[YYINITDEPTH];
4952 YYSTYPE *yyvs = yyvsa;
4953 YYSTYPE *yyvsp = yyvs;
4956 /* The return value of yyparse. */
4958 /* Lookahead symbol kind. */
4959 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4960 /* The variables used to return semantic value and location from the
4964 /* Buffer for error messages, and its allocated size. */
4966 char *yymsg = yymsgbuf;
4967 YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
4969 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4971 /* The number of symbols on the RHS of the reduced rule.
4972 Keep to zero when no symbol should be popped. */
4975 YYDPRINTF ((stderr, "Starting parse\n"));
4977 yychar = YYEMPTY; /* Cause a token to be read. */
4981 /*------------------------------------------------------------.
4982 | yynewstate -- push a new state, which is found in yystate. |
4983 `------------------------------------------------------------*/
4985 /* In all cases, when you get here, the value and location stacks
4986 have just been pushed. So pushing a state here evens the stacks. */
4990 /*--------------------------------------------------------------------.
4991 | yysetstate -- set current state (the top of the stack) to yystate. |
4992 `--------------------------------------------------------------------*/
4994 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4995 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
4996 YY_IGNORE_USELESS_CAST_BEGIN
4997 *yyssp = YY_CAST (yy_state_t, yystate);
4998 YY_IGNORE_USELESS_CAST_END
4999 YY_STACK_PRINT (yyss, yyssp);
5001 if (yyss + yystacksize - 1 <= yyssp)
5002 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
5003 goto yyexhaustedlab;
5006 /* Get the current used size of the three stacks, in elements. */
5007 YYPTRDIFF_T yysize = yyssp - yyss + 1;
5009 # if defined yyoverflow
5011 /* Give user a chance to reallocate the stack. Use copies of
5012 these so that the &'s don't force the real ones into
5014 yy_state_t *yyss1 = yyss;
5015 YYSTYPE *yyvs1 = yyvs;
5017 /* Each stack pointer address is followed by the size of the
5018 data in use in that stack, in bytes. This used to be a
5019 conditional around just the two extra args, but that might
5020 be undefined if yyoverflow is a macro. */
5021 yyoverflow (YY_("memory exhausted"),
5022 &yyss1, yysize * YYSIZEOF (*yyssp),
5023 &yyvs1, yysize * YYSIZEOF (*yyvsp),
5028 # else /* defined YYSTACK_RELOCATE */
5029 /* Extend the stack our own way. */
5030 if (YYMAXDEPTH <= yystacksize)
5031 goto yyexhaustedlab;
5033 if (YYMAXDEPTH < yystacksize)
5034 yystacksize = YYMAXDEPTH;
5037 yy_state_t *yyss1 = yyss;
5038 union yyalloc *yyptr =
5039 YY_CAST (union yyalloc *,
5040 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
5042 goto yyexhaustedlab;
5043 YYSTACK_RELOCATE (yyss_alloc, yyss);
5044 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
5045 # undef YYSTACK_RELOCATE
5047 YYSTACK_FREE (yyss1);
5051 yyssp = yyss + yysize - 1;
5052 yyvsp = yyvs + yysize - 1;
5054 YY_IGNORE_USELESS_CAST_BEGIN
5055 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
5056 YY_CAST (long, yystacksize)));
5057 YY_IGNORE_USELESS_CAST_END
5059 if (yyss + yystacksize - 1 <= yyssp)
5062 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
5064 if (yystate == YYFINAL)
5074 /* Do appropriate processing given the current state. Read a
5075 lookahead token if we need one and don't already have one. */
5077 /* First try to decide what to do without reference to lookahead token. */
5078 yyn = yypact[yystate];
5079 if (yypact_value_is_default (yyn))
5082 /* Not known => get a lookahead token if don't already have one. */
5084 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
5085 if (yychar == YYEMPTY)
5087 YYDPRINTF ((stderr, "Reading a token\n"));
5088 yychar = yylex (&yylval, parseContext);
5091 if (yychar <= YYEOF)
5094 yytoken = YYSYMBOL_YYEOF;
5095 YYDPRINTF ((stderr, "Now at end of input.\n"));
5097 else if (yychar == YYerror)
5099 /* The scanner already issued an error message, process directly
5100 to error recovery. But do not keep the error token as
5101 lookahead, it is too special and may lead us to an endless
5102 loop in error recovery. */
5104 yytoken = YYSYMBOL_YYerror;
5109 yytoken = YYTRANSLATE (yychar);
5110 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5113 /* If the proper action on seeing token YYTOKEN is to reduce or to
5114 detect an error, take that action. */
5116 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5121 if (yytable_value_is_error (yyn))
5127 /* Count tokens shifted since error; after three, turn off error
5132 /* Shift the lookahead token. */
5133 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5135 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5137 YY_IGNORE_MAYBE_UNINITIALIZED_END
5139 /* Discard the shifted token. */
5144 /*-----------------------------------------------------------.
5145 | yydefault -- do the default action for the current state. |
5146 `-----------------------------------------------------------*/
5148 yyn = yydefact[yystate];
5154 /*-----------------------------.
5155 | yyreduce -- do a reduction. |
5156 `-----------------------------*/
5158 /* yyn is the number of a rule to reduce with. */
5161 /* If YYLEN is nonzero, implement the default value of the action:
5164 Otherwise, the following line sets YYVAL to garbage.
5165 This behavior is undocumented and Bison
5166 users should not rely upon it. Assigning to YYVAL
5167 unconditionally makes the parser a bit smaller, and it avoids a
5168 GCC warning that YYVAL may be used uninitialized. */
5169 yyval = yyvsp[1-yylen];
5172 YY_REDUCE_PRINT (yyn);
5175 case 2: /* variable_identifier: IDENTIFIER */
5176 #line 392 "MachineIndependent/glslang.y"
5178 (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
5180 #line 5181 "MachineIndependent/glslang_tab.cpp"
5183 case 3: /* primary_expression: variable_identifier */
5184 #line 398 "MachineIndependent/glslang.y"
5186 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5188 #line 5189 "MachineIndependent/glslang_tab.cpp"
5191 case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
5192 #line 401 "MachineIndependent/glslang.y"
5194 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
5195 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5196 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5198 #line 5199 "MachineIndependent/glslang_tab.cpp"
5201 case 5: /* primary_expression: FLOATCONSTANT */
5202 #line 406 "MachineIndependent/glslang.y"
5204 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
5206 #line 5207 "MachineIndependent/glslang_tab.cpp"
5209 case 6: /* primary_expression: INTCONSTANT */
5210 #line 409 "MachineIndependent/glslang.y"
5212 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5214 #line 5215 "MachineIndependent/glslang_tab.cpp"
5217 case 7: /* primary_expression: UINTCONSTANT */
5218 #line 412 "MachineIndependent/glslang.y"
5220 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
5221 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5223 #line 5224 "MachineIndependent/glslang_tab.cpp"
5226 case 8: /* primary_expression: BOOLCONSTANT */
5227 #line 416 "MachineIndependent/glslang.y"
5229 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
5231 #line 5232 "MachineIndependent/glslang_tab.cpp"
5234 case 9: /* primary_expression: STRING_LITERAL */
5235 #line 420 "MachineIndependent/glslang.y"
5237 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
5239 #line 5240 "MachineIndependent/glslang_tab.cpp"
5242 case 10: /* primary_expression: INT32CONSTANT */
5243 #line 423 "MachineIndependent/glslang.y"
5245 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5246 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5248 #line 5249 "MachineIndependent/glslang_tab.cpp"
5251 case 11: /* primary_expression: UINT32CONSTANT */
5252 #line 427 "MachineIndependent/glslang.y"
5254 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5255 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5257 #line 5258 "MachineIndependent/glslang_tab.cpp"
5260 case 12: /* primary_expression: INT64CONSTANT */
5261 #line 431 "MachineIndependent/glslang.y"
5263 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
5264 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
5266 #line 5267 "MachineIndependent/glslang_tab.cpp"
5269 case 13: /* primary_expression: UINT64CONSTANT */
5270 #line 435 "MachineIndependent/glslang.y"
5272 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
5273 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
5275 #line 5276 "MachineIndependent/glslang_tab.cpp"
5278 case 14: /* primary_expression: INT16CONSTANT */
5279 #line 439 "MachineIndependent/glslang.y"
5281 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
5282 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5284 #line 5285 "MachineIndependent/glslang_tab.cpp"
5287 case 15: /* primary_expression: UINT16CONSTANT */
5288 #line 443 "MachineIndependent/glslang.y"
5290 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
5291 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5293 #line 5294 "MachineIndependent/glslang_tab.cpp"
5296 case 16: /* primary_expression: DOUBLECONSTANT */
5297 #line 447 "MachineIndependent/glslang.y"
5299 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
5300 if (! parseContext.symbolTable.atBuiltInLevel())
5301 parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
5302 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
5304 #line 5305 "MachineIndependent/glslang_tab.cpp"
5307 case 17: /* primary_expression: FLOAT16CONSTANT */
5308 #line 453 "MachineIndependent/glslang.y"
5310 parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
5311 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
5313 #line 5314 "MachineIndependent/glslang_tab.cpp"
5316 case 18: /* postfix_expression: primary_expression */
5317 #line 461 "MachineIndependent/glslang.y"
5319 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5321 #line 5322 "MachineIndependent/glslang_tab.cpp"
5324 case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
5325 #line 464 "MachineIndependent/glslang.y"
5327 (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
5329 #line 5330 "MachineIndependent/glslang_tab.cpp"
5332 case 20: /* postfix_expression: function_call */
5333 #line 467 "MachineIndependent/glslang.y"
5335 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5337 #line 5338 "MachineIndependent/glslang_tab.cpp"
5340 case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
5341 #line 470 "MachineIndependent/glslang.y"
5343 (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
5345 #line 5346 "MachineIndependent/glslang_tab.cpp"
5348 case 22: /* postfix_expression: postfix_expression INC_OP */
5349 #line 473 "MachineIndependent/glslang.y"
5351 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5352 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
5353 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
5355 #line 5356 "MachineIndependent/glslang_tab.cpp"
5358 case 23: /* postfix_expression: postfix_expression DEC_OP */
5359 #line 478 "MachineIndependent/glslang.y"
5361 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5362 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
5363 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
5365 #line 5366 "MachineIndependent/glslang_tab.cpp"
5368 case 24: /* integer_expression: expression */
5369 #line 486 "MachineIndependent/glslang.y"
5371 parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
5372 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5374 #line 5375 "MachineIndependent/glslang_tab.cpp"
5377 case 25: /* function_call: function_call_or_method */
5378 #line 493 "MachineIndependent/glslang.y"
5380 (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
5381 delete (yyvsp[0].interm).function;
5383 #line 5384 "MachineIndependent/glslang_tab.cpp"
5386 case 26: /* function_call_or_method: function_call_generic */
5387 #line 500 "MachineIndependent/glslang.y"
5389 (yyval.interm) = (yyvsp[0].interm);
5391 #line 5392 "MachineIndependent/glslang_tab.cpp"
5394 case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
5395 #line 506 "MachineIndependent/glslang.y"
5397 (yyval.interm) = (yyvsp[-1].interm);
5398 (yyval.interm).loc = (yyvsp[0].lex).loc;
5400 #line 5401 "MachineIndependent/glslang_tab.cpp"
5403 case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
5404 #line 510 "MachineIndependent/glslang.y"
5406 (yyval.interm) = (yyvsp[-1].interm);
5407 (yyval.interm).loc = (yyvsp[0].lex).loc;
5409 #line 5410 "MachineIndependent/glslang_tab.cpp"
5412 case 29: /* function_call_header_no_parameters: function_call_header VOID */
5413 #line 517 "MachineIndependent/glslang.y"
5415 (yyval.interm) = (yyvsp[-1].interm);
5417 #line 5418 "MachineIndependent/glslang_tab.cpp"
5420 case 30: /* function_call_header_no_parameters: function_call_header */
5421 #line 520 "MachineIndependent/glslang.y"
5423 (yyval.interm) = (yyvsp[0].interm);
5425 #line 5426 "MachineIndependent/glslang_tab.cpp"
5428 case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
5429 #line 526 "MachineIndependent/glslang.y"
5431 TParameter param = { 0, new TType };
5432 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5433 (yyvsp[-1].interm).function->addParameter(param);
5434 (yyval.interm).function = (yyvsp[-1].interm).function;
5435 (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
5437 #line 5438 "MachineIndependent/glslang_tab.cpp"
5440 case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
5441 #line 533 "MachineIndependent/glslang.y"
5443 TParameter param = { 0, new TType };
5444 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5445 (yyvsp[-2].interm).function->addParameter(param);
5446 (yyval.interm).function = (yyvsp[-2].interm).function;
5447 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5449 #line 5450 "MachineIndependent/glslang_tab.cpp"
5452 case 33: /* function_call_header: function_identifier LEFT_PAREN */
5453 #line 543 "MachineIndependent/glslang.y"
5455 (yyval.interm) = (yyvsp[-1].interm);
5457 #line 5458 "MachineIndependent/glslang_tab.cpp"
5460 case 34: /* function_identifier: type_specifier */
5461 #line 551 "MachineIndependent/glslang.y"
5464 (yyval.interm).intermNode = 0;
5465 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5467 #line 5468 "MachineIndependent/glslang_tab.cpp"
5470 case 35: /* function_identifier: postfix_expression */
5471 #line 556 "MachineIndependent/glslang.y"
5474 // Should be a method or subroutine call, but we haven't recognized the arguments yet.
5476 (yyval.interm).function = 0;
5477 (yyval.interm).intermNode = 0;
5479 TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
5481 (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
5482 (yyval.interm).intermNode = method->getObject();
5484 TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
5486 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
5487 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
5488 (yyval.interm).function = function;
5490 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
5493 if ((yyval.interm).function == 0) {
5495 TString* empty = NewPoolTString("");
5496 (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
5499 #line 5500 "MachineIndependent/glslang_tab.cpp"
5502 case 36: /* function_identifier: non_uniform_qualifier */
5503 #line 584 "MachineIndependent/glslang.y"
5506 (yyval.interm).intermNode = 0;
5507 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5509 #line 5510 "MachineIndependent/glslang_tab.cpp"
5512 case 37: /* unary_expression: postfix_expression */
5513 #line 593 "MachineIndependent/glslang.y"
5515 parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
5516 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5517 if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
5518 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
5520 #line 5521 "MachineIndependent/glslang_tab.cpp"
5523 case 38: /* unary_expression: INC_OP unary_expression */
5524 #line 599 "MachineIndependent/glslang.y"
5526 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
5527 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
5529 #line 5530 "MachineIndependent/glslang_tab.cpp"
5532 case 39: /* unary_expression: DEC_OP unary_expression */
5533 #line 603 "MachineIndependent/glslang.y"
5535 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
5536 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
5538 #line 5539 "MachineIndependent/glslang_tab.cpp"
5541 case 40: /* unary_expression: unary_operator unary_expression */
5542 #line 607 "MachineIndependent/glslang.y"
5544 if ((yyvsp[-1].interm).op != EOpNull) {
5545 char errorOp[2] = {0, 0};
5546 switch((yyvsp[-1].interm).op) {
5547 case EOpNegative: errorOp[0] = '-'; break;
5548 case EOpLogicalNot: errorOp[0] = '!'; break;
5549 case EOpBitwiseNot: errorOp[0] = '~'; break;
5550 default: break; // some compilers want this
5552 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
5554 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5555 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5556 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5559 #line 5560 "MachineIndependent/glslang_tab.cpp"
5562 case 41: /* unary_operator: PLUS */
5563 #line 627 "MachineIndependent/glslang.y"
5564 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
5565 #line 5566 "MachineIndependent/glslang_tab.cpp"
5568 case 42: /* unary_operator: DASH */
5569 #line 628 "MachineIndependent/glslang.y"
5570 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
5571 #line 5572 "MachineIndependent/glslang_tab.cpp"
5574 case 43: /* unary_operator: BANG */
5575 #line 629 "MachineIndependent/glslang.y"
5576 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
5577 #line 5578 "MachineIndependent/glslang_tab.cpp"
5580 case 44: /* unary_operator: TILDE */
5581 #line 630 "MachineIndependent/glslang.y"
5582 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
5583 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
5584 #line 5585 "MachineIndependent/glslang_tab.cpp"
5587 case 45: /* multiplicative_expression: unary_expression */
5588 #line 636 "MachineIndependent/glslang.y"
5589 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5590 #line 5591 "MachineIndependent/glslang_tab.cpp"
5593 case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
5594 #line 637 "MachineIndependent/glslang.y"
5596 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5597 if ((yyval.interm.intermTypedNode) == 0)
5598 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5600 #line 5601 "MachineIndependent/glslang_tab.cpp"
5603 case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
5604 #line 642 "MachineIndependent/glslang.y"
5606 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5607 if ((yyval.interm.intermTypedNode) == 0)
5608 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5610 #line 5611 "MachineIndependent/glslang_tab.cpp"
5613 case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
5614 #line 647 "MachineIndependent/glslang.y"
5616 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
5617 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5618 if ((yyval.interm.intermTypedNode) == 0)
5619 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5621 #line 5622 "MachineIndependent/glslang_tab.cpp"
5624 case 49: /* additive_expression: multiplicative_expression */
5625 #line 656 "MachineIndependent/glslang.y"
5626 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5627 #line 5628 "MachineIndependent/glslang_tab.cpp"
5630 case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
5631 #line 657 "MachineIndependent/glslang.y"
5633 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5634 if ((yyval.interm.intermTypedNode) == 0)
5635 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5637 #line 5638 "MachineIndependent/glslang_tab.cpp"
5640 case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
5641 #line 662 "MachineIndependent/glslang.y"
5643 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5644 if ((yyval.interm.intermTypedNode) == 0)
5645 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5647 #line 5648 "MachineIndependent/glslang_tab.cpp"
5650 case 52: /* shift_expression: additive_expression */
5651 #line 670 "MachineIndependent/glslang.y"
5652 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5653 #line 5654 "MachineIndependent/glslang_tab.cpp"
5656 case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
5657 #line 671 "MachineIndependent/glslang.y"
5659 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
5660 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5661 if ((yyval.interm.intermTypedNode) == 0)
5662 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5664 #line 5665 "MachineIndependent/glslang_tab.cpp"
5667 case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
5668 #line 677 "MachineIndependent/glslang.y"
5670 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
5671 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5672 if ((yyval.interm.intermTypedNode) == 0)
5673 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5675 #line 5676 "MachineIndependent/glslang_tab.cpp"
5678 case 55: /* relational_expression: shift_expression */
5679 #line 686 "MachineIndependent/glslang.y"
5680 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5681 #line 5682 "MachineIndependent/glslang_tab.cpp"
5684 case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
5685 #line 687 "MachineIndependent/glslang.y"
5687 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5688 if ((yyval.interm.intermTypedNode) == 0)
5689 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5691 #line 5692 "MachineIndependent/glslang_tab.cpp"
5694 case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
5695 #line 692 "MachineIndependent/glslang.y"
5697 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5698 if ((yyval.interm.intermTypedNode) == 0)
5699 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5701 #line 5702 "MachineIndependent/glslang_tab.cpp"
5704 case 58: /* relational_expression: relational_expression LE_OP shift_expression */
5705 #line 697 "MachineIndependent/glslang.y"
5707 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5708 if ((yyval.interm.intermTypedNode) == 0)
5709 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5711 #line 5712 "MachineIndependent/glslang_tab.cpp"
5714 case 59: /* relational_expression: relational_expression GE_OP shift_expression */
5715 #line 702 "MachineIndependent/glslang.y"
5717 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5718 if ((yyval.interm.intermTypedNode) == 0)
5719 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5721 #line 5722 "MachineIndependent/glslang_tab.cpp"
5724 case 60: /* equality_expression: relational_expression */
5725 #line 710 "MachineIndependent/glslang.y"
5726 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5727 #line 5728 "MachineIndependent/glslang_tab.cpp"
5730 case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
5731 #line 711 "MachineIndependent/glslang.y"
5733 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5734 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5735 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5736 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5737 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5738 if ((yyval.interm.intermTypedNode) == 0)
5739 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5741 #line 5742 "MachineIndependent/glslang_tab.cpp"
5744 case 62: /* equality_expression: equality_expression NE_OP relational_expression */
5745 #line 720 "MachineIndependent/glslang.y"
5747 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5748 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5749 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5750 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5751 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5752 if ((yyval.interm.intermTypedNode) == 0)
5753 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5755 #line 5756 "MachineIndependent/glslang_tab.cpp"
5758 case 63: /* and_expression: equality_expression */
5759 #line 732 "MachineIndependent/glslang.y"
5760 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5761 #line 5762 "MachineIndependent/glslang_tab.cpp"
5764 case 64: /* and_expression: and_expression AMPERSAND equality_expression */
5765 #line 733 "MachineIndependent/glslang.y"
5767 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
5768 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5769 if ((yyval.interm.intermTypedNode) == 0)
5770 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5772 #line 5773 "MachineIndependent/glslang_tab.cpp"
5775 case 65: /* exclusive_or_expression: and_expression */
5776 #line 742 "MachineIndependent/glslang.y"
5777 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5778 #line 5779 "MachineIndependent/glslang_tab.cpp"
5781 case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
5782 #line 743 "MachineIndependent/glslang.y"
5784 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
5785 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5786 if ((yyval.interm.intermTypedNode) == 0)
5787 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5789 #line 5790 "MachineIndependent/glslang_tab.cpp"
5792 case 67: /* inclusive_or_expression: exclusive_or_expression */
5793 #line 752 "MachineIndependent/glslang.y"
5794 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5795 #line 5796 "MachineIndependent/glslang_tab.cpp"
5798 case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
5799 #line 753 "MachineIndependent/glslang.y"
5801 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
5802 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5803 if ((yyval.interm.intermTypedNode) == 0)
5804 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5806 #line 5807 "MachineIndependent/glslang_tab.cpp"
5809 case 69: /* logical_and_expression: inclusive_or_expression */
5810 #line 762 "MachineIndependent/glslang.y"
5811 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5812 #line 5813 "MachineIndependent/glslang_tab.cpp"
5815 case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
5816 #line 763 "MachineIndependent/glslang.y"
5818 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5819 if ((yyval.interm.intermTypedNode) == 0)
5820 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5822 #line 5823 "MachineIndependent/glslang_tab.cpp"
5825 case 71: /* logical_xor_expression: logical_and_expression */
5826 #line 771 "MachineIndependent/glslang.y"
5827 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5828 #line 5829 "MachineIndependent/glslang_tab.cpp"
5831 case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
5832 #line 772 "MachineIndependent/glslang.y"
5834 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5835 if ((yyval.interm.intermTypedNode) == 0)
5836 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5838 #line 5839 "MachineIndependent/glslang_tab.cpp"
5841 case 73: /* logical_or_expression: logical_xor_expression */
5842 #line 780 "MachineIndependent/glslang.y"
5843 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5844 #line 5845 "MachineIndependent/glslang_tab.cpp"
5847 case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
5848 #line 781 "MachineIndependent/glslang.y"
5850 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5851 if ((yyval.interm.intermTypedNode) == 0)
5852 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5854 #line 5855 "MachineIndependent/glslang_tab.cpp"
5857 case 75: /* conditional_expression: logical_or_expression */
5858 #line 789 "MachineIndependent/glslang.y"
5859 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5860 #line 5861 "MachineIndependent/glslang_tab.cpp"
5863 case 76: /* $@1: %empty */
5864 #line 790 "MachineIndependent/glslang.y"
5866 ++parseContext.controlFlowNestingLevel;
5868 #line 5869 "MachineIndependent/glslang_tab.cpp"
5871 case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
5872 #line 793 "MachineIndependent/glslang.y"
5874 --parseContext.controlFlowNestingLevel;
5875 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
5876 parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
5877 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
5878 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
5879 (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
5880 if ((yyval.interm.intermTypedNode) == 0) {
5881 parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5882 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5885 #line 5886 "MachineIndependent/glslang_tab.cpp"
5888 case 78: /* assignment_expression: conditional_expression */
5889 #line 808 "MachineIndependent/glslang.y"
5890 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5891 #line 5892 "MachineIndependent/glslang_tab.cpp"
5894 case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
5895 #line 809 "MachineIndependent/glslang.y"
5897 parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
5898 parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5899 parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5900 parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5901 parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
5902 parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
5903 (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5904 if ((yyval.interm.intermTypedNode) == 0) {
5905 parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5906 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5909 #line 5910 "MachineIndependent/glslang_tab.cpp"
5912 case 80: /* assignment_operator: EQUAL */
5913 #line 825 "MachineIndependent/glslang.y"
5915 (yyval.interm).loc = (yyvsp[0].lex).loc;
5916 (yyval.interm).op = EOpAssign;
5918 #line 5919 "MachineIndependent/glslang_tab.cpp"
5921 case 81: /* assignment_operator: MUL_ASSIGN */
5922 #line 829 "MachineIndependent/glslang.y"
5924 (yyval.interm).loc = (yyvsp[0].lex).loc;
5925 (yyval.interm).op = EOpMulAssign;
5927 #line 5928 "MachineIndependent/glslang_tab.cpp"
5930 case 82: /* assignment_operator: DIV_ASSIGN */
5931 #line 833 "MachineIndependent/glslang.y"
5933 (yyval.interm).loc = (yyvsp[0].lex).loc;
5934 (yyval.interm).op = EOpDivAssign;
5936 #line 5937 "MachineIndependent/glslang_tab.cpp"
5939 case 83: /* assignment_operator: MOD_ASSIGN */
5940 #line 837 "MachineIndependent/glslang.y"
5942 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
5943 (yyval.interm).loc = (yyvsp[0].lex).loc;
5944 (yyval.interm).op = EOpModAssign;
5946 #line 5947 "MachineIndependent/glslang_tab.cpp"
5949 case 84: /* assignment_operator: ADD_ASSIGN */
5950 #line 842 "MachineIndependent/glslang.y"
5952 (yyval.interm).loc = (yyvsp[0].lex).loc;
5953 (yyval.interm).op = EOpAddAssign;
5955 #line 5956 "MachineIndependent/glslang_tab.cpp"
5958 case 85: /* assignment_operator: SUB_ASSIGN */
5959 #line 846 "MachineIndependent/glslang.y"
5961 (yyval.interm).loc = (yyvsp[0].lex).loc;
5962 (yyval.interm).op = EOpSubAssign;
5964 #line 5965 "MachineIndependent/glslang_tab.cpp"
5967 case 86: /* assignment_operator: LEFT_ASSIGN */
5968 #line 850 "MachineIndependent/glslang.y"
5970 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5971 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5973 #line 5974 "MachineIndependent/glslang_tab.cpp"
5976 case 87: /* assignment_operator: RIGHT_ASSIGN */
5977 #line 854 "MachineIndependent/glslang.y"
5979 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5980 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5982 #line 5983 "MachineIndependent/glslang_tab.cpp"
5985 case 88: /* assignment_operator: AND_ASSIGN */
5986 #line 858 "MachineIndependent/glslang.y"
5988 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5989 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5991 #line 5992 "MachineIndependent/glslang_tab.cpp"
5994 case 89: /* assignment_operator: XOR_ASSIGN */
5995 #line 862 "MachineIndependent/glslang.y"
5997 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5998 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
6000 #line 6001 "MachineIndependent/glslang_tab.cpp"
6003 case 90: /* assignment_operator: OR_ASSIGN */
6004 #line 866 "MachineIndependent/glslang.y"
6006 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
6007 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
6009 #line 6010 "MachineIndependent/glslang_tab.cpp"
6012 case 91: /* expression: assignment_expression */
6013 #line 873 "MachineIndependent/glslang.y"
6015 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6017 #line 6018 "MachineIndependent/glslang_tab.cpp"
6020 case 92: /* expression: expression COMMA assignment_expression */
6021 #line 876 "MachineIndependent/glslang.y"
6023 parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
6024 (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6025 if ((yyval.interm.intermTypedNode) == 0) {
6026 parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
6027 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6030 #line 6031 "MachineIndependent/glslang_tab.cpp"
6033 case 93: /* constant_expression: conditional_expression */
6034 #line 887 "MachineIndependent/glslang.y"
6036 parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
6037 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6039 #line 6040 "MachineIndependent/glslang_tab.cpp"
6042 case 94: /* declaration: function_prototype SEMICOLON */
6043 #line 894 "MachineIndependent/glslang.y"
6045 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6046 (yyval.interm.intermNode) = 0;
6047 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6049 #line 6050 "MachineIndependent/glslang_tab.cpp"
6052 case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON */
6053 #line 900 "MachineIndependent/glslang.y"
6055 parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
6056 (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
6057 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6058 (yyval.interm.intermNode) = 0;
6059 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6061 #line 6062 "MachineIndependent/glslang_tab.cpp"
6064 case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON */
6065 #line 907 "MachineIndependent/glslang.y"
6067 parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
6068 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
6069 (yyval.interm.intermNode) = 0;
6071 #line 6072 "MachineIndependent/glslang_tab.cpp"
6074 case 97: /* declaration: init_declarator_list SEMICOLON */
6075 #line 913 "MachineIndependent/glslang.y"
6077 if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
6078 (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
6079 (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
6081 #line 6082 "MachineIndependent/glslang_tab.cpp"
6084 case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
6085 #line 918 "MachineIndependent/glslang.y"
6087 parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
6088 // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
6089 parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
6090 parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
6091 (yyval.interm.intermNode) = 0;
6093 #line 6094 "MachineIndependent/glslang_tab.cpp"
6096 case 99: /* declaration: block_structure SEMICOLON */
6097 #line 925 "MachineIndependent/glslang.y"
6099 parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
6100 (yyval.interm.intermNode) = 0;
6102 #line 6103 "MachineIndependent/glslang_tab.cpp"
6105 case 100: /* declaration: block_structure IDENTIFIER SEMICOLON */
6106 #line 929 "MachineIndependent/glslang.y"
6108 parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
6109 (yyval.interm.intermNode) = 0;
6111 #line 6112 "MachineIndependent/glslang_tab.cpp"
6114 case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
6115 #line 933 "MachineIndependent/glslang.y"
6117 parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
6118 (yyval.interm.intermNode) = 0;
6120 #line 6121 "MachineIndependent/glslang_tab.cpp"
6123 case 102: /* declaration: type_qualifier SEMICOLON */
6124 #line 937 "MachineIndependent/glslang.y"
6126 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6127 parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
6128 (yyval.interm.intermNode) = 0;
6130 #line 6131 "MachineIndependent/glslang_tab.cpp"
6133 case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
6134 #line 942 "MachineIndependent/glslang.y"
6136 parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
6137 parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
6138 (yyval.interm.intermNode) = 0;
6140 #line 6141 "MachineIndependent/glslang_tab.cpp"
6143 case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
6144 #line 947 "MachineIndependent/glslang.y"
6146 parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
6147 (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
6148 parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
6149 (yyval.interm.intermNode) = 0;
6151 #line 6152 "MachineIndependent/glslang_tab.cpp"
6154 case 105: /* $@2: %empty */
6155 #line 956 "MachineIndependent/glslang.y"
6156 { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
6157 #line 6158 "MachineIndependent/glslang_tab.cpp"
6160 case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
6161 #line 956 "MachineIndependent/glslang.y"
6163 --parseContext.blockNestingLevel;
6164 parseContext.blockName = (yyvsp[-4].lex).string;
6165 parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
6166 parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
6167 parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
6168 (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
6169 (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
6171 #line 6172 "MachineIndependent/glslang_tab.cpp"
6174 case 107: /* identifier_list: COMMA IDENTIFIER */
6175 #line 967 "MachineIndependent/glslang.y"
6177 (yyval.interm.identifierList) = new TIdentifierList;
6178 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6180 #line 6181 "MachineIndependent/glslang_tab.cpp"
6183 case 108: /* identifier_list: identifier_list COMMA IDENTIFIER */
6184 #line 971 "MachineIndependent/glslang.y"
6186 (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
6187 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6189 #line 6190 "MachineIndependent/glslang_tab.cpp"
6192 case 109: /* function_prototype: function_declarator RIGHT_PAREN */
6193 #line 978 "MachineIndependent/glslang.y"
6195 (yyval.interm).function = (yyvsp[-1].interm.function);
6196 (yyval.interm).loc = (yyvsp[0].lex).loc;
6198 #line 6199 "MachineIndependent/glslang_tab.cpp"
6201 case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute */
6202 #line 982 "MachineIndependent/glslang.y"
6204 (yyval.interm).function = (yyvsp[-2].interm.function);
6205 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6206 parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6207 parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6209 #line 6210 "MachineIndependent/glslang_tab.cpp"
6212 case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN */
6213 #line 988 "MachineIndependent/glslang.y"
6215 (yyval.interm).function = (yyvsp[-1].interm.function);
6216 (yyval.interm).loc = (yyvsp[0].lex).loc;
6217 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6218 parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes));
6220 #line 6221 "MachineIndependent/glslang_tab.cpp"
6223 case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute */
6224 #line 994 "MachineIndependent/glslang.y"
6226 (yyval.interm).function = (yyvsp[-2].interm.function);
6227 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6228 parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6229 parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes));
6230 parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6232 #line 6233 "MachineIndependent/glslang_tab.cpp"
6235 case 113: /* function_declarator: function_header */
6236 #line 1004 "MachineIndependent/glslang.y"
6238 (yyval.interm.function) = (yyvsp[0].interm.function);
6240 #line 6241 "MachineIndependent/glslang_tab.cpp"
6243 case 114: /* function_declarator: function_header_with_parameters */
6244 #line 1007 "MachineIndependent/glslang.y"
6246 (yyval.interm.function) = (yyvsp[0].interm.function);
6248 #line 6249 "MachineIndependent/glslang_tab.cpp"
6251 case 115: /* function_header_with_parameters: function_header parameter_declaration */
6252 #line 1014 "MachineIndependent/glslang.y"
6254 // Add the parameter
6255 (yyval.interm.function) = (yyvsp[-1].interm.function);
6256 if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
6257 (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
6259 delete (yyvsp[0].interm).param.type;
6261 #line 6262 "MachineIndependent/glslang_tab.cpp"
6264 case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
6265 #line 1022 "MachineIndependent/glslang.y"
6268 // Only first parameter of one-parameter functions can be void
6269 // The check for named parameters not being void is done in parameter_declarator
6271 if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
6273 // This parameter > first is void
6275 parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
6276 delete (yyvsp[0].interm).param.type;
6278 // Add the parameter
6279 (yyval.interm.function) = (yyvsp[-2].interm.function);
6280 (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
6283 #line 6284 "MachineIndependent/glslang_tab.cpp"
6286 case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
6287 #line 1042 "MachineIndependent/glslang.y"
6289 if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
6290 parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
6291 GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
6293 if ((yyvsp[-2].interm.type).arraySizes)
6294 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6296 // Add the function as a prototype after parsing it (we do not support recursion)
6297 TFunction *function;
6298 TType type((yyvsp[-2].interm.type));
6300 // Potentially rename shader entry point function. No-op most of the time.
6301 parseContext.renameShaderFunction((yyvsp[-1].lex).string);
6303 // Make the function
6304 function = new TFunction((yyvsp[-1].lex).string, type);
6305 (yyval.interm.function) = function;
6307 #line 6308 "MachineIndependent/glslang_tab.cpp"
6310 case 118: /* parameter_declarator: type_specifier IDENTIFIER */
6311 #line 1065 "MachineIndependent/glslang.y"
6313 if ((yyvsp[-1].interm.type).arraySizes) {
6314 parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6315 parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6316 parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
6318 if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
6319 parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
6321 parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
6323 TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
6324 (yyval.interm).loc = (yyvsp[0].lex).loc;
6325 (yyval.interm).param = param;
6327 #line 6328 "MachineIndependent/glslang_tab.cpp"
6330 case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
6331 #line 1080 "MachineIndependent/glslang.y"
6333 if ((yyvsp[-2].interm.type).arraySizes) {
6334 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6335 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6336 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6338 TType* type = new TType((yyvsp[-2].interm.type));
6339 type->transferArraySizes((yyvsp[0].interm).arraySizes);
6340 type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
6342 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
6343 parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
6344 parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
6346 TParameter param = { (yyvsp[-1].lex).string, type };
6348 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6349 (yyval.interm).param = param;
6351 #line 6352 "MachineIndependent/glslang_tab.cpp"
6354 case 120: /* parameter_declaration: type_qualifier parameter_declarator */
6355 #line 1105 "MachineIndependent/glslang.y"
6357 (yyval.interm) = (yyvsp[0].interm);
6358 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6359 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6360 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6362 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6363 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6364 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6367 #line 6368 "MachineIndependent/glslang_tab.cpp"
6370 case 121: /* parameter_declaration: parameter_declarator */
6371 #line 1116 "MachineIndependent/glslang.y"
6373 (yyval.interm) = (yyvsp[0].interm);
6375 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6376 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6377 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6379 #line 6380 "MachineIndependent/glslang_tab.cpp"
6382 case 122: /* parameter_declaration: type_qualifier parameter_type_specifier */
6383 #line 1126 "MachineIndependent/glslang.y"
6385 (yyval.interm) = (yyvsp[0].interm);
6386 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6387 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6388 parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6390 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6391 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6392 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6394 #line 6395 "MachineIndependent/glslang_tab.cpp"
6397 case 123: /* parameter_declaration: parameter_type_specifier */
6398 #line 1136 "MachineIndependent/glslang.y"
6400 (yyval.interm) = (yyvsp[0].interm);
6402 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6403 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6404 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6406 #line 6407 "MachineIndependent/glslang_tab.cpp"
6409 case 124: /* parameter_type_specifier: type_specifier */
6410 #line 1146 "MachineIndependent/glslang.y"
6412 TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
6413 (yyval.interm).param = param;
6414 if ((yyvsp[0].interm.type).arraySizes)
6415 parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
6417 #line 6418 "MachineIndependent/glslang_tab.cpp"
6420 case 125: /* init_declarator_list: single_declaration */
6421 #line 1155 "MachineIndependent/glslang.y"
6423 (yyval.interm) = (yyvsp[0].interm);
6425 #line 6426 "MachineIndependent/glslang_tab.cpp"
6428 case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
6429 #line 1158 "MachineIndependent/glslang.y"
6431 (yyval.interm) = (yyvsp[-2].interm);
6432 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
6434 #line 6435 "MachineIndependent/glslang_tab.cpp"
6437 case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
6438 #line 1162 "MachineIndependent/glslang.y"
6440 (yyval.interm) = (yyvsp[-3].interm);
6441 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
6443 #line 6444 "MachineIndependent/glslang_tab.cpp"
6446 case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
6447 #line 1166 "MachineIndependent/glslang.y"
6449 (yyval.interm).type = (yyvsp[-5].interm).type;
6450 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6451 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6453 #line 6454 "MachineIndependent/glslang_tab.cpp"
6456 case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
6457 #line 1171 "MachineIndependent/glslang.y"
6459 (yyval.interm).type = (yyvsp[-4].interm).type;
6460 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
6461 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6463 #line 6464 "MachineIndependent/glslang_tab.cpp"
6466 case 130: /* single_declaration: fully_specified_type */
6467 #line 1179 "MachineIndependent/glslang.y"
6469 (yyval.interm).type = (yyvsp[0].interm.type);
6470 (yyval.interm).intermNode = 0;
6472 parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
6475 #line 6476 "MachineIndependent/glslang_tab.cpp"
6478 case 131: /* single_declaration: fully_specified_type IDENTIFIER */
6479 #line 1186 "MachineIndependent/glslang.y"
6481 (yyval.interm).type = (yyvsp[-1].interm.type);
6482 (yyval.interm).intermNode = 0;
6483 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
6485 #line 6486 "MachineIndependent/glslang_tab.cpp"
6488 case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
6489 #line 1191 "MachineIndependent/glslang.y"
6491 (yyval.interm).type = (yyvsp[-2].interm.type);
6492 (yyval.interm).intermNode = 0;
6493 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
6495 #line 6496 "MachineIndependent/glslang_tab.cpp"
6498 case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
6499 #line 1196 "MachineIndependent/glslang.y"
6501 (yyval.interm).type = (yyvsp[-4].interm.type);
6502 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6503 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6505 #line 6506 "MachineIndependent/glslang_tab.cpp"
6508 case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
6509 #line 1201 "MachineIndependent/glslang.y"
6511 (yyval.interm).type = (yyvsp[-3].interm.type);
6512 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
6513 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6515 #line 6516 "MachineIndependent/glslang_tab.cpp"
6518 case 135: /* fully_specified_type: type_specifier */
6519 #line 1210 "MachineIndependent/glslang.y"
6521 (yyval.interm.type) = (yyvsp[0].interm.type);
6523 parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
6524 if ((yyvsp[0].interm.type).arraySizes) {
6525 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6526 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6528 parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
6530 #line 6531 "MachineIndependent/glslang_tab.cpp"
6533 case 136: /* fully_specified_type: type_qualifier type_specifier */
6534 #line 1220 "MachineIndependent/glslang.y"
6536 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6537 parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
6539 if ((yyvsp[0].interm.type).arraySizes) {
6540 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6541 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6544 if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
6545 (yyvsp[0].interm.type).arraySizes = nullptr;
6547 parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6548 (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
6549 parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
6550 parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
6552 (yyval.interm.type) = (yyvsp[0].interm.type);
6554 if (! (yyval.interm.type).qualifier.isInterpolation() &&
6555 ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
6556 (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
6557 (yyval.interm.type).qualifier.smooth = true;
6559 #line 6560 "MachineIndependent/glslang_tab.cpp"
6562 case 137: /* invariant_qualifier: INVARIANT */
6563 #line 1247 "MachineIndependent/glslang.y"
6565 parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
6566 parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
6567 (yyval.interm.type).init((yyvsp[0].lex).loc);
6568 (yyval.interm.type).qualifier.invariant = true;
6570 #line 6571 "MachineIndependent/glslang_tab.cpp"
6573 case 138: /* interpolation_qualifier: SMOOTH */
6574 #line 1256 "MachineIndependent/glslang.y"
6576 parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
6577 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
6578 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
6579 (yyval.interm.type).init((yyvsp[0].lex).loc);
6580 (yyval.interm.type).qualifier.smooth = true;
6582 #line 6583 "MachineIndependent/glslang_tab.cpp"
6585 case 139: /* interpolation_qualifier: FLAT */
6586 #line 1263 "MachineIndependent/glslang.y"
6588 parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
6589 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
6590 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
6591 (yyval.interm.type).init((yyvsp[0].lex).loc);
6592 (yyval.interm.type).qualifier.flat = true;
6594 #line 6595 "MachineIndependent/glslang_tab.cpp"
6597 case 140: /* interpolation_qualifier: NOPERSPECTIVE */
6598 #line 1271 "MachineIndependent/glslang.y"
6600 parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
6601 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
6602 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
6603 (yyval.interm.type).init((yyvsp[0].lex).loc);
6604 (yyval.interm.type).qualifier.nopersp = true;
6606 #line 6607 "MachineIndependent/glslang_tab.cpp"
6609 case 141: /* interpolation_qualifier: EXPLICITINTERPAMD */
6610 #line 1278 "MachineIndependent/glslang.y"
6612 parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
6613 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6614 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6615 (yyval.interm.type).init((yyvsp[0].lex).loc);
6616 (yyval.interm.type).qualifier.explicitInterp = true;
6618 #line 6619 "MachineIndependent/glslang_tab.cpp"
6621 case 142: /* interpolation_qualifier: PERVERTEXNV */
6622 #line 1285 "MachineIndependent/glslang.y"
6624 parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
6625 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6626 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6627 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6628 (yyval.interm.type).init((yyvsp[0].lex).loc);
6629 (yyval.interm.type).qualifier.pervertexNV = true;
6631 #line 6632 "MachineIndependent/glslang_tab.cpp"
6634 case 143: /* interpolation_qualifier: PERPRIMITIVENV */
6635 #line 1293 "MachineIndependent/glslang.y"
6637 // No need for profile version or extension check. Shader stage already checks both.
6638 parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
6639 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
6640 // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6641 if (parseContext.language == EShLangFragment)
6642 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
6643 (yyval.interm.type).init((yyvsp[0].lex).loc);
6644 (yyval.interm.type).qualifier.perPrimitiveNV = true;
6646 #line 6647 "MachineIndependent/glslang_tab.cpp"
6649 case 144: /* interpolation_qualifier: PERVIEWNV */
6650 #line 1303 "MachineIndependent/glslang.y"
6652 // No need for profile version or extension check. Shader stage already checks both.
6653 parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
6654 parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
6655 (yyval.interm.type).init((yyvsp[0].lex).loc);
6656 (yyval.interm.type).qualifier.perViewNV = true;
6658 #line 6659 "MachineIndependent/glslang_tab.cpp"
6661 case 145: /* interpolation_qualifier: PERTASKNV */
6662 #line 1310 "MachineIndependent/glslang.y"
6664 // No need for profile version or extension check. Shader stage already checks both.
6665 parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
6666 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
6667 (yyval.interm.type).init((yyvsp[0].lex).loc);
6668 (yyval.interm.type).qualifier.perTaskNV = true;
6670 #line 6671 "MachineIndependent/glslang_tab.cpp"
6673 case 146: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
6674 #line 1321 "MachineIndependent/glslang.y"
6676 (yyval.interm.type) = (yyvsp[-1].interm.type);
6678 #line 6679 "MachineIndependent/glslang_tab.cpp"
6681 case 147: /* layout_qualifier_id_list: layout_qualifier_id */
6682 #line 1327 "MachineIndependent/glslang.y"
6684 (yyval.interm.type) = (yyvsp[0].interm.type);
6686 #line 6687 "MachineIndependent/glslang_tab.cpp"
6689 case 148: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
6690 #line 1330 "MachineIndependent/glslang.y"
6692 (yyval.interm.type) = (yyvsp[-2].interm.type);
6693 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6694 parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6696 #line 6697 "MachineIndependent/glslang_tab.cpp"
6699 case 149: /* layout_qualifier_id: IDENTIFIER */
6700 #line 1337 "MachineIndependent/glslang.y"
6702 (yyval.interm.type).init((yyvsp[0].lex).loc);
6703 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
6705 #line 6706 "MachineIndependent/glslang_tab.cpp"
6708 case 150: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
6709 #line 1341 "MachineIndependent/glslang.y"
6711 (yyval.interm.type).init((yyvsp[-2].lex).loc);
6712 parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
6714 #line 6715 "MachineIndependent/glslang_tab.cpp"
6717 case 151: /* layout_qualifier_id: SHARED */
6718 #line 1345 "MachineIndependent/glslang.y"
6719 { // because "shared" is both an identifier and a keyword
6720 (yyval.interm.type).init((yyvsp[0].lex).loc);
6721 TString strShared("shared");
6722 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
6724 #line 6725 "MachineIndependent/glslang_tab.cpp"
6727 case 152: /* precise_qualifier: PRECISE */
6728 #line 1354 "MachineIndependent/glslang.y"
6730 parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
6731 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
6732 (yyval.interm.type).init((yyvsp[0].lex).loc);
6733 (yyval.interm.type).qualifier.noContraction = true;
6735 #line 6736 "MachineIndependent/glslang_tab.cpp"
6738 case 153: /* type_qualifier: single_type_qualifier */
6739 #line 1364 "MachineIndependent/glslang.y"
6741 (yyval.interm.type) = (yyvsp[0].interm.type);
6743 #line 6744 "MachineIndependent/glslang_tab.cpp"
6746 case 154: /* type_qualifier: type_qualifier single_type_qualifier */
6747 #line 1367 "MachineIndependent/glslang.y"
6749 (yyval.interm.type) = (yyvsp[-1].interm.type);
6750 if ((yyval.interm.type).basicType == EbtVoid)
6751 (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
6753 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6754 parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6756 #line 6757 "MachineIndependent/glslang_tab.cpp"
6759 case 155: /* single_type_qualifier: storage_qualifier */
6760 #line 1378 "MachineIndependent/glslang.y"
6762 (yyval.interm.type) = (yyvsp[0].interm.type);
6764 #line 6765 "MachineIndependent/glslang_tab.cpp"
6767 case 156: /* single_type_qualifier: layout_qualifier */
6768 #line 1381 "MachineIndependent/glslang.y"
6770 (yyval.interm.type) = (yyvsp[0].interm.type);
6772 #line 6773 "MachineIndependent/glslang_tab.cpp"
6775 case 157: /* single_type_qualifier: precision_qualifier */
6776 #line 1384 "MachineIndependent/glslang.y"
6778 parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
6779 (yyval.interm.type) = (yyvsp[0].interm.type);
6781 #line 6782 "MachineIndependent/glslang_tab.cpp"
6784 case 158: /* single_type_qualifier: interpolation_qualifier */
6785 #line 1388 "MachineIndependent/glslang.y"
6787 // allow inheritance of storage qualifier from block declaration
6788 (yyval.interm.type) = (yyvsp[0].interm.type);
6790 #line 6791 "MachineIndependent/glslang_tab.cpp"
6793 case 159: /* single_type_qualifier: invariant_qualifier */
6794 #line 1392 "MachineIndependent/glslang.y"
6796 // allow inheritance of storage qualifier from block declaration
6797 (yyval.interm.type) = (yyvsp[0].interm.type);
6799 #line 6800 "MachineIndependent/glslang_tab.cpp"
6802 case 160: /* single_type_qualifier: precise_qualifier */
6803 #line 1397 "MachineIndependent/glslang.y"
6805 // allow inheritance of storage qualifier from block declaration
6806 (yyval.interm.type) = (yyvsp[0].interm.type);
6808 #line 6809 "MachineIndependent/glslang_tab.cpp"
6811 case 161: /* single_type_qualifier: non_uniform_qualifier */
6812 #line 1401 "MachineIndependent/glslang.y"
6814 (yyval.interm.type) = (yyvsp[0].interm.type);
6816 #line 6817 "MachineIndependent/glslang_tab.cpp"
6819 case 162: /* single_type_qualifier: spirv_storage_class_qualifier */
6820 #line 1404 "MachineIndependent/glslang.y"
6822 parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
6823 parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
6824 (yyval.interm.type) = (yyvsp[0].interm.type);
6826 #line 6827 "MachineIndependent/glslang_tab.cpp"
6829 case 163: /* single_type_qualifier: spirv_decorate_qualifier */
6830 #line 1409 "MachineIndependent/glslang.y"
6832 parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
6833 (yyval.interm.type) = (yyvsp[0].interm.type);
6835 #line 6836 "MachineIndependent/glslang_tab.cpp"
6838 case 164: /* single_type_qualifier: SPIRV_BY_REFERENCE */
6839 #line 1413 "MachineIndependent/glslang.y"
6841 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
6842 (yyval.interm.type).init((yyvsp[0].lex).loc);
6843 (yyval.interm.type).qualifier.setSpirvByReference();
6845 #line 6846 "MachineIndependent/glslang_tab.cpp"
6848 case 165: /* single_type_qualifier: SPIRV_LITERAL */
6849 #line 1418 "MachineIndependent/glslang.y"
6851 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
6852 (yyval.interm.type).init((yyvsp[0].lex).loc);
6853 (yyval.interm.type).qualifier.setSpirvLiteral();
6855 #line 6856 "MachineIndependent/glslang_tab.cpp"
6858 case 166: /* storage_qualifier: CONST */
6859 #line 1427 "MachineIndependent/glslang.y"
6861 (yyval.interm.type).init((yyvsp[0].lex).loc);
6862 (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
6864 #line 6865 "MachineIndependent/glslang_tab.cpp"
6867 case 167: /* storage_qualifier: INOUT */
6868 #line 1431 "MachineIndependent/glslang.y"
6870 parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
6871 (yyval.interm.type).init((yyvsp[0].lex).loc);
6872 (yyval.interm.type).qualifier.storage = EvqInOut;
6874 #line 6875 "MachineIndependent/glslang_tab.cpp"
6877 case 168: /* storage_qualifier: IN */
6878 #line 1436 "MachineIndependent/glslang.y"
6880 parseContext.globalCheck((yyvsp[0].lex).loc, "in");
6881 (yyval.interm.type).init((yyvsp[0].lex).loc);
6882 // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
6883 (yyval.interm.type).qualifier.storage = EvqIn;
6885 #line 6886 "MachineIndependent/glslang_tab.cpp"
6888 case 169: /* storage_qualifier: OUT */
6889 #line 1442 "MachineIndependent/glslang.y"
6891 parseContext.globalCheck((yyvsp[0].lex).loc, "out");
6892 (yyval.interm.type).init((yyvsp[0].lex).loc);
6893 // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
6894 (yyval.interm.type).qualifier.storage = EvqOut;
6896 #line 6897 "MachineIndependent/glslang_tab.cpp"
6899 case 170: /* storage_qualifier: CENTROID */
6900 #line 1448 "MachineIndependent/glslang.y"
6902 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
6903 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
6904 parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
6905 (yyval.interm.type).init((yyvsp[0].lex).loc);
6906 (yyval.interm.type).qualifier.centroid = true;
6908 #line 6909 "MachineIndependent/glslang_tab.cpp"
6911 case 171: /* storage_qualifier: UNIFORM */
6912 #line 1455 "MachineIndependent/glslang.y"
6914 parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
6915 (yyval.interm.type).init((yyvsp[0].lex).loc);
6916 (yyval.interm.type).qualifier.storage = EvqUniform;
6918 #line 6919 "MachineIndependent/glslang_tab.cpp"
6921 case 172: /* storage_qualifier: SHARED */
6922 #line 1460 "MachineIndependent/glslang.y"
6924 parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
6925 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
6926 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
6927 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
6928 (yyval.interm.type).init((yyvsp[0].lex).loc);
6929 (yyval.interm.type).qualifier.storage = EvqShared;
6931 #line 6932 "MachineIndependent/glslang_tab.cpp"
6934 case 173: /* storage_qualifier: BUFFER */
6935 #line 1468 "MachineIndependent/glslang.y"
6937 parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
6938 (yyval.interm.type).init((yyvsp[0].lex).loc);
6939 (yyval.interm.type).qualifier.storage = EvqBuffer;
6941 #line 6942 "MachineIndependent/glslang_tab.cpp"
6944 case 174: /* storage_qualifier: ATTRIBUTE */
6945 #line 1474 "MachineIndependent/glslang.y"
6947 parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
6948 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
6949 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
6950 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
6951 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
6953 parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
6955 (yyval.interm.type).init((yyvsp[0].lex).loc);
6956 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6958 #line 6959 "MachineIndependent/glslang_tab.cpp"
6961 case 175: /* storage_qualifier: VARYING */
6962 #line 1486 "MachineIndependent/glslang.y"
6964 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
6965 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
6966 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
6967 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
6969 parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
6971 (yyval.interm.type).init((yyvsp[0].lex).loc);
6972 if (parseContext.language == EShLangVertex)
6973 (yyval.interm.type).qualifier.storage = EvqVaryingOut;
6975 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6977 #line 6978 "MachineIndependent/glslang_tab.cpp"
6980 case 176: /* storage_qualifier: PATCH */
6981 #line 1500 "MachineIndependent/glslang.y"
6983 parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
6984 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
6985 (yyval.interm.type).init((yyvsp[0].lex).loc);
6986 (yyval.interm.type).qualifier.patch = true;
6988 #line 6989 "MachineIndependent/glslang_tab.cpp"
6991 case 177: /* storage_qualifier: SAMPLE */
6992 #line 1506 "MachineIndependent/glslang.y"
6994 parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
6995 (yyval.interm.type).init((yyvsp[0].lex).loc);
6996 (yyval.interm.type).qualifier.sample = true;
6998 #line 6999 "MachineIndependent/glslang_tab.cpp"
7001 case 178: /* storage_qualifier: HITATTRNV */
7002 #line 1511 "MachineIndependent/glslang.y"
7004 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7005 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7006 | EShLangAnyHitMask), "hitAttributeNV");
7007 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
7008 (yyval.interm.type).init((yyvsp[0].lex).loc);
7009 (yyval.interm.type).qualifier.storage = EvqHitAttr;
7011 #line 7012 "MachineIndependent/glslang_tab.cpp"
7014 case 179: /* storage_qualifier: HITATTREXT */
7015 #line 1519 "MachineIndependent/glslang.y"
7017 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
7018 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7019 | EShLangAnyHitMask), "hitAttributeEXT");
7020 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
7021 (yyval.interm.type).init((yyvsp[0].lex).loc);
7022 (yyval.interm.type).qualifier.storage = EvqHitAttr;
7024 #line 7025 "MachineIndependent/glslang_tab.cpp"
7027 case 180: /* storage_qualifier: PAYLOADNV */
7028 #line 1527 "MachineIndependent/glslang.y"
7030 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
7031 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7032 EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
7033 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
7034 (yyval.interm.type).init((yyvsp[0].lex).loc);
7035 (yyval.interm.type).qualifier.storage = EvqPayload;
7037 #line 7038 "MachineIndependent/glslang_tab.cpp"
7040 case 181: /* storage_qualifier: PAYLOADEXT */
7041 #line 1535 "MachineIndependent/glslang.y"
7043 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
7044 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7045 EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
7046 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
7047 (yyval.interm.type).init((yyvsp[0].lex).loc);
7048 (yyval.interm.type).qualifier.storage = EvqPayload;
7050 #line 7051 "MachineIndependent/glslang_tab.cpp"
7053 case 182: /* storage_qualifier: PAYLOADINNV */
7054 #line 1543 "MachineIndependent/glslang.y"
7056 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
7057 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7058 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
7059 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
7060 (yyval.interm.type).init((yyvsp[0].lex).loc);
7061 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7063 #line 7064 "MachineIndependent/glslang_tab.cpp"
7066 case 183: /* storage_qualifier: PAYLOADINEXT */
7067 #line 1551 "MachineIndependent/glslang.y"
7069 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
7070 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7071 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
7072 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
7073 (yyval.interm.type).init((yyvsp[0].lex).loc);
7074 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7076 #line 7077 "MachineIndependent/glslang_tab.cpp"
7079 case 184: /* storage_qualifier: CALLDATANV */
7080 #line 1559 "MachineIndependent/glslang.y"
7082 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
7083 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7084 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
7085 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
7086 (yyval.interm.type).init((yyvsp[0].lex).loc);
7087 (yyval.interm.type).qualifier.storage = EvqCallableData;
7089 #line 7090 "MachineIndependent/glslang_tab.cpp"
7092 case 185: /* storage_qualifier: CALLDATAEXT */
7093 #line 1567 "MachineIndependent/glslang.y"
7095 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
7096 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7097 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
7098 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
7099 (yyval.interm.type).init((yyvsp[0].lex).loc);
7100 (yyval.interm.type).qualifier.storage = EvqCallableData;
7102 #line 7103 "MachineIndependent/glslang_tab.cpp"
7105 case 186: /* storage_qualifier: CALLDATAINNV */
7106 #line 1575 "MachineIndependent/glslang.y"
7108 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
7109 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
7110 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
7111 (yyval.interm.type).init((yyvsp[0].lex).loc);
7112 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7114 #line 7115 "MachineIndependent/glslang_tab.cpp"
7117 case 187: /* storage_qualifier: CALLDATAINEXT */
7118 #line 1582 "MachineIndependent/glslang.y"
7120 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
7121 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
7122 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
7123 (yyval.interm.type).init((yyvsp[0].lex).loc);
7124 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7126 #line 7127 "MachineIndependent/glslang_tab.cpp"
7129 case 188: /* storage_qualifier: COHERENT */
7130 #line 1589 "MachineIndependent/glslang.y"
7132 (yyval.interm.type).init((yyvsp[0].lex).loc);
7133 (yyval.interm.type).qualifier.coherent = true;
7135 #line 7136 "MachineIndependent/glslang_tab.cpp"
7138 case 189: /* storage_qualifier: DEVICECOHERENT */
7139 #line 1593 "MachineIndependent/glslang.y"
7141 (yyval.interm.type).init((yyvsp[0].lex).loc);
7142 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
7143 (yyval.interm.type).qualifier.devicecoherent = true;
7145 #line 7146 "MachineIndependent/glslang_tab.cpp"
7148 case 190: /* storage_qualifier: QUEUEFAMILYCOHERENT */
7149 #line 1598 "MachineIndependent/glslang.y"
7151 (yyval.interm.type).init((yyvsp[0].lex).loc);
7152 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
7153 (yyval.interm.type).qualifier.queuefamilycoherent = true;
7155 #line 7156 "MachineIndependent/glslang_tab.cpp"
7158 case 191: /* storage_qualifier: WORKGROUPCOHERENT */
7159 #line 1603 "MachineIndependent/glslang.y"
7161 (yyval.interm.type).init((yyvsp[0].lex).loc);
7162 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
7163 (yyval.interm.type).qualifier.workgroupcoherent = true;
7165 #line 7166 "MachineIndependent/glslang_tab.cpp"
7168 case 192: /* storage_qualifier: SUBGROUPCOHERENT */
7169 #line 1608 "MachineIndependent/glslang.y"
7171 (yyval.interm.type).init((yyvsp[0].lex).loc);
7172 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
7173 (yyval.interm.type).qualifier.subgroupcoherent = true;
7175 #line 7176 "MachineIndependent/glslang_tab.cpp"
7178 case 193: /* storage_qualifier: NONPRIVATE */
7179 #line 1613 "MachineIndependent/glslang.y"
7181 (yyval.interm.type).init((yyvsp[0].lex).loc);
7182 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
7183 (yyval.interm.type).qualifier.nonprivate = true;
7185 #line 7186 "MachineIndependent/glslang_tab.cpp"
7188 case 194: /* storage_qualifier: SHADERCALLCOHERENT */
7189 #line 1618 "MachineIndependent/glslang.y"
7191 (yyval.interm.type).init((yyvsp[0].lex).loc);
7192 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
7193 (yyval.interm.type).qualifier.shadercallcoherent = true;
7195 #line 7196 "MachineIndependent/glslang_tab.cpp"
7198 case 195: /* storage_qualifier: VOLATILE */
7199 #line 1623 "MachineIndependent/glslang.y"
7201 (yyval.interm.type).init((yyvsp[0].lex).loc);
7202 (yyval.interm.type).qualifier.volatil = true;
7204 #line 7205 "MachineIndependent/glslang_tab.cpp"
7207 case 196: /* storage_qualifier: RESTRICT */
7208 #line 1627 "MachineIndependent/glslang.y"
7210 (yyval.interm.type).init((yyvsp[0].lex).loc);
7211 (yyval.interm.type).qualifier.restrict = true;
7213 #line 7214 "MachineIndependent/glslang_tab.cpp"
7216 case 197: /* storage_qualifier: READONLY */
7217 #line 1631 "MachineIndependent/glslang.y"
7219 (yyval.interm.type).init((yyvsp[0].lex).loc);
7220 (yyval.interm.type).qualifier.readonly = true;
7222 #line 7223 "MachineIndependent/glslang_tab.cpp"
7225 case 198: /* storage_qualifier: WRITEONLY */
7226 #line 1635 "MachineIndependent/glslang.y"
7228 (yyval.interm.type).init((yyvsp[0].lex).loc);
7229 (yyval.interm.type).qualifier.writeonly = true;
7231 #line 7232 "MachineIndependent/glslang_tab.cpp"
7234 case 199: /* storage_qualifier: SUBROUTINE */
7235 #line 1639 "MachineIndependent/glslang.y"
7237 parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
7238 parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
7239 parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
7240 (yyval.interm.type).init((yyvsp[0].lex).loc);
7242 #line 7243 "MachineIndependent/glslang_tab.cpp"
7245 case 200: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
7246 #line 1645 "MachineIndependent/glslang.y"
7248 parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
7249 parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
7250 parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
7251 (yyval.interm.type).init((yyvsp[-3].lex).loc);
7253 #line 7254 "MachineIndependent/glslang_tab.cpp"
7256 case 201: /* non_uniform_qualifier: NONUNIFORM */
7257 #line 1656 "MachineIndependent/glslang.y"
7259 (yyval.interm.type).init((yyvsp[0].lex).loc);
7260 (yyval.interm.type).qualifier.nonUniform = true;
7262 #line 7263 "MachineIndependent/glslang_tab.cpp"
7265 case 202: /* type_name_list: IDENTIFIER */
7266 #line 1663 "MachineIndependent/glslang.y"
7270 #line 7271 "MachineIndependent/glslang_tab.cpp"
7273 case 203: /* type_name_list: type_name_list COMMA IDENTIFIER */
7274 #line 1666 "MachineIndependent/glslang.y"
7276 // TODO: 4.0 semantics: subroutines
7277 // 1) make sure each identifier is a type declared earlier with SUBROUTINE
7278 // 2) save all of the identifiers for future comparison with the declared function
7280 #line 7281 "MachineIndependent/glslang_tab.cpp"
7283 case 204: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
7284 #line 1675 "MachineIndependent/glslang.y"
7286 (yyval.interm.type) = (yyvsp[-1].interm.type);
7287 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7288 (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
7290 #line 7291 "MachineIndependent/glslang_tab.cpp"
7293 case 205: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
7294 #line 1680 "MachineIndependent/glslang.y"
7296 parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
7297 (yyval.interm.type) = (yyvsp[-2].interm.type);
7298 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7299 (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
7300 (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
7302 #line 7303 "MachineIndependent/glslang_tab.cpp"
7305 case 206: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
7306 #line 1690 "MachineIndependent/glslang.y"
7308 (yyval.interm).loc = (yyvsp[-1].lex).loc;
7309 (yyval.interm).arraySizes = new TArraySizes;
7310 (yyval.interm).arraySizes->addInnerSize();
7312 #line 7313 "MachineIndependent/glslang_tab.cpp"
7315 case 207: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
7316 #line 1695 "MachineIndependent/glslang.y"
7318 (yyval.interm).loc = (yyvsp[-2].lex).loc;
7319 (yyval.interm).arraySizes = new TArraySizes;
7322 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7323 (yyval.interm).arraySizes->addInnerSize(size);
7325 #line 7326 "MachineIndependent/glslang_tab.cpp"
7328 case 208: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
7329 #line 1703 "MachineIndependent/glslang.y"
7331 (yyval.interm) = (yyvsp[-2].interm);
7332 (yyval.interm).arraySizes->addInnerSize();
7334 #line 7335 "MachineIndependent/glslang_tab.cpp"
7337 case 209: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
7338 #line 1707 "MachineIndependent/glslang.y"
7340 (yyval.interm) = (yyvsp[-3].interm);
7343 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7344 (yyval.interm).arraySizes->addInnerSize(size);
7346 #line 7347 "MachineIndependent/glslang_tab.cpp"
7349 case 210: /* type_parameter_specifier_opt: type_parameter_specifier */
7350 #line 1717 "MachineIndependent/glslang.y"
7352 (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
7354 #line 7355 "MachineIndependent/glslang_tab.cpp"
7357 case 211: /* type_parameter_specifier_opt: %empty */
7358 #line 1720 "MachineIndependent/glslang.y"
7360 (yyval.interm.typeParameters) = 0;
7362 #line 7363 "MachineIndependent/glslang_tab.cpp"
7365 case 212: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
7366 #line 1726 "MachineIndependent/glslang.y"
7368 (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
7370 #line 7371 "MachineIndependent/glslang_tab.cpp"
7373 case 213: /* type_parameter_specifier_list: unary_expression */
7374 #line 1732 "MachineIndependent/glslang.y"
7376 (yyval.interm.typeParameters) = new TArraySizes;
7379 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
7380 (yyval.interm.typeParameters)->addInnerSize(size);
7382 #line 7383 "MachineIndependent/glslang_tab.cpp"
7385 case 214: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
7386 #line 1739 "MachineIndependent/glslang.y"
7388 (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
7391 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
7392 (yyval.interm.typeParameters)->addInnerSize(size);
7394 #line 7395 "MachineIndependent/glslang_tab.cpp"
7397 case 215: /* type_specifier_nonarray: VOID */
7398 #line 1749 "MachineIndependent/glslang.y"
7400 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7401 (yyval.interm.type).basicType = EbtVoid;
7403 #line 7404 "MachineIndependent/glslang_tab.cpp"
7406 case 216: /* type_specifier_nonarray: FLOAT */
7407 #line 1753 "MachineIndependent/glslang.y"
7409 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7410 (yyval.interm.type).basicType = EbtFloat;
7412 #line 7413 "MachineIndependent/glslang_tab.cpp"
7415 case 217: /* type_specifier_nonarray: INT */
7416 #line 1757 "MachineIndependent/glslang.y"
7418 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419 (yyval.interm.type).basicType = EbtInt;
7421 #line 7422 "MachineIndependent/glslang_tab.cpp"
7424 case 218: /* type_specifier_nonarray: UINT */
7425 #line 1761 "MachineIndependent/glslang.y"
7427 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
7428 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7429 (yyval.interm.type).basicType = EbtUint;
7431 #line 7432 "MachineIndependent/glslang_tab.cpp"
7434 case 219: /* type_specifier_nonarray: BOOL */
7435 #line 1766 "MachineIndependent/glslang.y"
7437 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7438 (yyval.interm.type).basicType = EbtBool;
7440 #line 7441 "MachineIndependent/glslang_tab.cpp"
7443 case 220: /* type_specifier_nonarray: VEC2 */
7444 #line 1770 "MachineIndependent/glslang.y"
7446 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7447 (yyval.interm.type).basicType = EbtFloat;
7448 (yyval.interm.type).setVector(2);
7450 #line 7451 "MachineIndependent/glslang_tab.cpp"
7453 case 221: /* type_specifier_nonarray: VEC3 */
7454 #line 1775 "MachineIndependent/glslang.y"
7456 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7457 (yyval.interm.type).basicType = EbtFloat;
7458 (yyval.interm.type).setVector(3);
7460 #line 7461 "MachineIndependent/glslang_tab.cpp"
7463 case 222: /* type_specifier_nonarray: VEC4 */
7464 #line 1780 "MachineIndependent/glslang.y"
7466 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7467 (yyval.interm.type).basicType = EbtFloat;
7468 (yyval.interm.type).setVector(4);
7470 #line 7471 "MachineIndependent/glslang_tab.cpp"
7473 case 223: /* type_specifier_nonarray: BVEC2 */
7474 #line 1785 "MachineIndependent/glslang.y"
7476 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7477 (yyval.interm.type).basicType = EbtBool;
7478 (yyval.interm.type).setVector(2);
7480 #line 7481 "MachineIndependent/glslang_tab.cpp"
7483 case 224: /* type_specifier_nonarray: BVEC3 */
7484 #line 1790 "MachineIndependent/glslang.y"
7486 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7487 (yyval.interm.type).basicType = EbtBool;
7488 (yyval.interm.type).setVector(3);
7490 #line 7491 "MachineIndependent/glslang_tab.cpp"
7493 case 225: /* type_specifier_nonarray: BVEC4 */
7494 #line 1795 "MachineIndependent/glslang.y"
7496 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7497 (yyval.interm.type).basicType = EbtBool;
7498 (yyval.interm.type).setVector(4);
7500 #line 7501 "MachineIndependent/glslang_tab.cpp"
7503 case 226: /* type_specifier_nonarray: IVEC2 */
7504 #line 1800 "MachineIndependent/glslang.y"
7506 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507 (yyval.interm.type).basicType = EbtInt;
7508 (yyval.interm.type).setVector(2);
7510 #line 7511 "MachineIndependent/glslang_tab.cpp"
7513 case 227: /* type_specifier_nonarray: IVEC3 */
7514 #line 1805 "MachineIndependent/glslang.y"
7516 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7517 (yyval.interm.type).basicType = EbtInt;
7518 (yyval.interm.type).setVector(3);
7520 #line 7521 "MachineIndependent/glslang_tab.cpp"
7523 case 228: /* type_specifier_nonarray: IVEC4 */
7524 #line 1810 "MachineIndependent/glslang.y"
7526 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7527 (yyval.interm.type).basicType = EbtInt;
7528 (yyval.interm.type).setVector(4);
7530 #line 7531 "MachineIndependent/glslang_tab.cpp"
7533 case 229: /* type_specifier_nonarray: UVEC2 */
7534 #line 1815 "MachineIndependent/glslang.y"
7536 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7537 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7538 (yyval.interm.type).basicType = EbtUint;
7539 (yyval.interm.type).setVector(2);
7541 #line 7542 "MachineIndependent/glslang_tab.cpp"
7544 case 230: /* type_specifier_nonarray: UVEC3 */
7545 #line 1821 "MachineIndependent/glslang.y"
7547 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7548 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7549 (yyval.interm.type).basicType = EbtUint;
7550 (yyval.interm.type).setVector(3);
7552 #line 7553 "MachineIndependent/glslang_tab.cpp"
7555 case 231: /* type_specifier_nonarray: UVEC4 */
7556 #line 1827 "MachineIndependent/glslang.y"
7558 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7559 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7560 (yyval.interm.type).basicType = EbtUint;
7561 (yyval.interm.type).setVector(4);
7563 #line 7564 "MachineIndependent/glslang_tab.cpp"
7566 case 232: /* type_specifier_nonarray: MAT2 */
7567 #line 1833 "MachineIndependent/glslang.y"
7569 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7570 (yyval.interm.type).basicType = EbtFloat;
7571 (yyval.interm.type).setMatrix(2, 2);
7573 #line 7574 "MachineIndependent/glslang_tab.cpp"
7576 case 233: /* type_specifier_nonarray: MAT3 */
7577 #line 1838 "MachineIndependent/glslang.y"
7579 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7580 (yyval.interm.type).basicType = EbtFloat;
7581 (yyval.interm.type).setMatrix(3, 3);
7583 #line 7584 "MachineIndependent/glslang_tab.cpp"
7586 case 234: /* type_specifier_nonarray: MAT4 */
7587 #line 1843 "MachineIndependent/glslang.y"
7589 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7590 (yyval.interm.type).basicType = EbtFloat;
7591 (yyval.interm.type).setMatrix(4, 4);
7593 #line 7594 "MachineIndependent/glslang_tab.cpp"
7596 case 235: /* type_specifier_nonarray: MAT2X2 */
7597 #line 1848 "MachineIndependent/glslang.y"
7599 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7600 (yyval.interm.type).basicType = EbtFloat;
7601 (yyval.interm.type).setMatrix(2, 2);
7603 #line 7604 "MachineIndependent/glslang_tab.cpp"
7606 case 236: /* type_specifier_nonarray: MAT2X3 */
7607 #line 1853 "MachineIndependent/glslang.y"
7609 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7610 (yyval.interm.type).basicType = EbtFloat;
7611 (yyval.interm.type).setMatrix(2, 3);
7613 #line 7614 "MachineIndependent/glslang_tab.cpp"
7616 case 237: /* type_specifier_nonarray: MAT2X4 */
7617 #line 1858 "MachineIndependent/glslang.y"
7619 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7620 (yyval.interm.type).basicType = EbtFloat;
7621 (yyval.interm.type).setMatrix(2, 4);
7623 #line 7624 "MachineIndependent/glslang_tab.cpp"
7626 case 238: /* type_specifier_nonarray: MAT3X2 */
7627 #line 1863 "MachineIndependent/glslang.y"
7629 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7630 (yyval.interm.type).basicType = EbtFloat;
7631 (yyval.interm.type).setMatrix(3, 2);
7633 #line 7634 "MachineIndependent/glslang_tab.cpp"
7636 case 239: /* type_specifier_nonarray: MAT3X3 */
7637 #line 1868 "MachineIndependent/glslang.y"
7639 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7640 (yyval.interm.type).basicType = EbtFloat;
7641 (yyval.interm.type).setMatrix(3, 3);
7643 #line 7644 "MachineIndependent/glslang_tab.cpp"
7646 case 240: /* type_specifier_nonarray: MAT3X4 */
7647 #line 1873 "MachineIndependent/glslang.y"
7649 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7650 (yyval.interm.type).basicType = EbtFloat;
7651 (yyval.interm.type).setMatrix(3, 4);
7653 #line 7654 "MachineIndependent/glslang_tab.cpp"
7656 case 241: /* type_specifier_nonarray: MAT4X2 */
7657 #line 1878 "MachineIndependent/glslang.y"
7659 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7660 (yyval.interm.type).basicType = EbtFloat;
7661 (yyval.interm.type).setMatrix(4, 2);
7663 #line 7664 "MachineIndependent/glslang_tab.cpp"
7666 case 242: /* type_specifier_nonarray: MAT4X3 */
7667 #line 1883 "MachineIndependent/glslang.y"
7669 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7670 (yyval.interm.type).basicType = EbtFloat;
7671 (yyval.interm.type).setMatrix(4, 3);
7673 #line 7674 "MachineIndependent/glslang_tab.cpp"
7676 case 243: /* type_specifier_nonarray: MAT4X4 */
7677 #line 1888 "MachineIndependent/glslang.y"
7679 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7680 (yyval.interm.type).basicType = EbtFloat;
7681 (yyval.interm.type).setMatrix(4, 4);
7683 #line 7684 "MachineIndependent/glslang_tab.cpp"
7686 case 244: /* type_specifier_nonarray: DOUBLE */
7687 #line 1894 "MachineIndependent/glslang.y"
7689 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
7690 if (! parseContext.symbolTable.atBuiltInLevel())
7691 parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
7692 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7693 (yyval.interm.type).basicType = EbtDouble;
7695 #line 7696 "MachineIndependent/glslang_tab.cpp"
7698 case 245: /* type_specifier_nonarray: FLOAT16_T */
7699 #line 1901 "MachineIndependent/glslang.y"
7701 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
7702 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7703 (yyval.interm.type).basicType = EbtFloat16;
7705 #line 7706 "MachineIndependent/glslang_tab.cpp"
7708 case 246: /* type_specifier_nonarray: FLOAT32_T */
7709 #line 1906 "MachineIndependent/glslang.y"
7711 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
7712 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7713 (yyval.interm.type).basicType = EbtFloat;
7715 #line 7716 "MachineIndependent/glslang_tab.cpp"
7718 case 247: /* type_specifier_nonarray: FLOAT64_T */
7719 #line 1911 "MachineIndependent/glslang.y"
7721 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
7722 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7723 (yyval.interm.type).basicType = EbtDouble;
7725 #line 7726 "MachineIndependent/glslang_tab.cpp"
7728 case 248: /* type_specifier_nonarray: INT8_T */
7729 #line 1916 "MachineIndependent/glslang.y"
7731 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7732 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7733 (yyval.interm.type).basicType = EbtInt8;
7735 #line 7736 "MachineIndependent/glslang_tab.cpp"
7738 case 249: /* type_specifier_nonarray: UINT8_T */
7739 #line 1921 "MachineIndependent/glslang.y"
7741 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7742 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7743 (yyval.interm.type).basicType = EbtUint8;
7745 #line 7746 "MachineIndependent/glslang_tab.cpp"
7748 case 250: /* type_specifier_nonarray: INT16_T */
7749 #line 1926 "MachineIndependent/glslang.y"
7751 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7752 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7753 (yyval.interm.type).basicType = EbtInt16;
7755 #line 7756 "MachineIndependent/glslang_tab.cpp"
7758 case 251: /* type_specifier_nonarray: UINT16_T */
7759 #line 1931 "MachineIndependent/glslang.y"
7761 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7762 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7763 (yyval.interm.type).basicType = EbtUint16;
7765 #line 7766 "MachineIndependent/glslang_tab.cpp"
7768 case 252: /* type_specifier_nonarray: INT32_T */
7769 #line 1936 "MachineIndependent/glslang.y"
7771 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7772 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7773 (yyval.interm.type).basicType = EbtInt;
7775 #line 7776 "MachineIndependent/glslang_tab.cpp"
7778 case 253: /* type_specifier_nonarray: UINT32_T */
7779 #line 1941 "MachineIndependent/glslang.y"
7781 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7782 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7783 (yyval.interm.type).basicType = EbtUint;
7785 #line 7786 "MachineIndependent/glslang_tab.cpp"
7788 case 254: /* type_specifier_nonarray: INT64_T */
7789 #line 1946 "MachineIndependent/glslang.y"
7791 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
7792 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7793 (yyval.interm.type).basicType = EbtInt64;
7795 #line 7796 "MachineIndependent/glslang_tab.cpp"
7798 case 255: /* type_specifier_nonarray: UINT64_T */
7799 #line 1951 "MachineIndependent/glslang.y"
7801 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7802 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7803 (yyval.interm.type).basicType = EbtUint64;
7805 #line 7806 "MachineIndependent/glslang_tab.cpp"
7808 case 256: /* type_specifier_nonarray: DVEC2 */
7809 #line 1956 "MachineIndependent/glslang.y"
7811 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7812 if (! parseContext.symbolTable.atBuiltInLevel())
7813 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7814 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7815 (yyval.interm.type).basicType = EbtDouble;
7816 (yyval.interm.type).setVector(2);
7818 #line 7819 "MachineIndependent/glslang_tab.cpp"
7821 case 257: /* type_specifier_nonarray: DVEC3 */
7822 #line 1964 "MachineIndependent/glslang.y"
7824 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7825 if (! parseContext.symbolTable.atBuiltInLevel())
7826 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7827 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7828 (yyval.interm.type).basicType = EbtDouble;
7829 (yyval.interm.type).setVector(3);
7831 #line 7832 "MachineIndependent/glslang_tab.cpp"
7834 case 258: /* type_specifier_nonarray: DVEC4 */
7835 #line 1972 "MachineIndependent/glslang.y"
7837 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7838 if (! parseContext.symbolTable.atBuiltInLevel())
7839 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7840 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7841 (yyval.interm.type).basicType = EbtDouble;
7842 (yyval.interm.type).setVector(4);
7844 #line 7845 "MachineIndependent/glslang_tab.cpp"
7847 case 259: /* type_specifier_nonarray: F16VEC2 */
7848 #line 1980 "MachineIndependent/glslang.y"
7850 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7851 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7852 (yyval.interm.type).basicType = EbtFloat16;
7853 (yyval.interm.type).setVector(2);
7855 #line 7856 "MachineIndependent/glslang_tab.cpp"
7858 case 260: /* type_specifier_nonarray: F16VEC3 */
7859 #line 1986 "MachineIndependent/glslang.y"
7861 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7862 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7863 (yyval.interm.type).basicType = EbtFloat16;
7864 (yyval.interm.type).setVector(3);
7866 #line 7867 "MachineIndependent/glslang_tab.cpp"
7869 case 261: /* type_specifier_nonarray: F16VEC4 */
7870 #line 1992 "MachineIndependent/glslang.y"
7872 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7873 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7874 (yyval.interm.type).basicType = EbtFloat16;
7875 (yyval.interm.type).setVector(4);
7877 #line 7878 "MachineIndependent/glslang_tab.cpp"
7880 case 262: /* type_specifier_nonarray: F32VEC2 */
7881 #line 1998 "MachineIndependent/glslang.y"
7883 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7884 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7885 (yyval.interm.type).basicType = EbtFloat;
7886 (yyval.interm.type).setVector(2);
7888 #line 7889 "MachineIndependent/glslang_tab.cpp"
7891 case 263: /* type_specifier_nonarray: F32VEC3 */
7892 #line 2004 "MachineIndependent/glslang.y"
7894 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7895 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7896 (yyval.interm.type).basicType = EbtFloat;
7897 (yyval.interm.type).setVector(3);
7899 #line 7900 "MachineIndependent/glslang_tab.cpp"
7902 case 264: /* type_specifier_nonarray: F32VEC4 */
7903 #line 2010 "MachineIndependent/glslang.y"
7905 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7906 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7907 (yyval.interm.type).basicType = EbtFloat;
7908 (yyval.interm.type).setVector(4);
7910 #line 7911 "MachineIndependent/glslang_tab.cpp"
7913 case 265: /* type_specifier_nonarray: F64VEC2 */
7914 #line 2016 "MachineIndependent/glslang.y"
7916 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7917 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7918 (yyval.interm.type).basicType = EbtDouble;
7919 (yyval.interm.type).setVector(2);
7921 #line 7922 "MachineIndependent/glslang_tab.cpp"
7924 case 266: /* type_specifier_nonarray: F64VEC3 */
7925 #line 2022 "MachineIndependent/glslang.y"
7927 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7928 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7929 (yyval.interm.type).basicType = EbtDouble;
7930 (yyval.interm.type).setVector(3);
7932 #line 7933 "MachineIndependent/glslang_tab.cpp"
7935 case 267: /* type_specifier_nonarray: F64VEC4 */
7936 #line 2028 "MachineIndependent/glslang.y"
7938 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7939 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7940 (yyval.interm.type).basicType = EbtDouble;
7941 (yyval.interm.type).setVector(4);
7943 #line 7944 "MachineIndependent/glslang_tab.cpp"
7946 case 268: /* type_specifier_nonarray: I8VEC2 */
7947 #line 2034 "MachineIndependent/glslang.y"
7949 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7950 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7951 (yyval.interm.type).basicType = EbtInt8;
7952 (yyval.interm.type).setVector(2);
7954 #line 7955 "MachineIndependent/glslang_tab.cpp"
7957 case 269: /* type_specifier_nonarray: I8VEC3 */
7958 #line 2040 "MachineIndependent/glslang.y"
7960 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7961 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7962 (yyval.interm.type).basicType = EbtInt8;
7963 (yyval.interm.type).setVector(3);
7965 #line 7966 "MachineIndependent/glslang_tab.cpp"
7968 case 270: /* type_specifier_nonarray: I8VEC4 */
7969 #line 2046 "MachineIndependent/glslang.y"
7971 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7972 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7973 (yyval.interm.type).basicType = EbtInt8;
7974 (yyval.interm.type).setVector(4);
7976 #line 7977 "MachineIndependent/glslang_tab.cpp"
7979 case 271: /* type_specifier_nonarray: I16VEC2 */
7980 #line 2052 "MachineIndependent/glslang.y"
7982 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7983 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7984 (yyval.interm.type).basicType = EbtInt16;
7985 (yyval.interm.type).setVector(2);
7987 #line 7988 "MachineIndependent/glslang_tab.cpp"
7990 case 272: /* type_specifier_nonarray: I16VEC3 */
7991 #line 2058 "MachineIndependent/glslang.y"
7993 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7994 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7995 (yyval.interm.type).basicType = EbtInt16;
7996 (yyval.interm.type).setVector(3);
7998 #line 7999 "MachineIndependent/glslang_tab.cpp"
8001 case 273: /* type_specifier_nonarray: I16VEC4 */
8002 #line 2064 "MachineIndependent/glslang.y"
8004 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8005 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8006 (yyval.interm.type).basicType = EbtInt16;
8007 (yyval.interm.type).setVector(4);
8009 #line 8010 "MachineIndependent/glslang_tab.cpp"
8012 case 274: /* type_specifier_nonarray: I32VEC2 */
8013 #line 2070 "MachineIndependent/glslang.y"
8015 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8016 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8017 (yyval.interm.type).basicType = EbtInt;
8018 (yyval.interm.type).setVector(2);
8020 #line 8021 "MachineIndependent/glslang_tab.cpp"
8023 case 275: /* type_specifier_nonarray: I32VEC3 */
8024 #line 2076 "MachineIndependent/glslang.y"
8026 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8027 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8028 (yyval.interm.type).basicType = EbtInt;
8029 (yyval.interm.type).setVector(3);
8031 #line 8032 "MachineIndependent/glslang_tab.cpp"
8034 case 276: /* type_specifier_nonarray: I32VEC4 */
8035 #line 2082 "MachineIndependent/glslang.y"
8037 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8038 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8039 (yyval.interm.type).basicType = EbtInt;
8040 (yyval.interm.type).setVector(4);
8042 #line 8043 "MachineIndependent/glslang_tab.cpp"
8045 case 277: /* type_specifier_nonarray: I64VEC2 */
8046 #line 2088 "MachineIndependent/glslang.y"
8048 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8049 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8050 (yyval.interm.type).basicType = EbtInt64;
8051 (yyval.interm.type).setVector(2);
8053 #line 8054 "MachineIndependent/glslang_tab.cpp"
8056 case 278: /* type_specifier_nonarray: I64VEC3 */
8057 #line 2094 "MachineIndependent/glslang.y"
8059 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8060 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8061 (yyval.interm.type).basicType = EbtInt64;
8062 (yyval.interm.type).setVector(3);
8064 #line 8065 "MachineIndependent/glslang_tab.cpp"
8067 case 279: /* type_specifier_nonarray: I64VEC4 */
8068 #line 2100 "MachineIndependent/glslang.y"
8070 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8071 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8072 (yyval.interm.type).basicType = EbtInt64;
8073 (yyval.interm.type).setVector(4);
8075 #line 8076 "MachineIndependent/glslang_tab.cpp"
8078 case 280: /* type_specifier_nonarray: U8VEC2 */
8079 #line 2106 "MachineIndependent/glslang.y"
8081 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8082 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8083 (yyval.interm.type).basicType = EbtUint8;
8084 (yyval.interm.type).setVector(2);
8086 #line 8087 "MachineIndependent/glslang_tab.cpp"
8089 case 281: /* type_specifier_nonarray: U8VEC3 */
8090 #line 2112 "MachineIndependent/glslang.y"
8092 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8093 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8094 (yyval.interm.type).basicType = EbtUint8;
8095 (yyval.interm.type).setVector(3);
8097 #line 8098 "MachineIndependent/glslang_tab.cpp"
8100 case 282: /* type_specifier_nonarray: U8VEC4 */
8101 #line 2118 "MachineIndependent/glslang.y"
8103 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8104 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8105 (yyval.interm.type).basicType = EbtUint8;
8106 (yyval.interm.type).setVector(4);
8108 #line 8109 "MachineIndependent/glslang_tab.cpp"
8111 case 283: /* type_specifier_nonarray: U16VEC2 */
8112 #line 2124 "MachineIndependent/glslang.y"
8114 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8115 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8116 (yyval.interm.type).basicType = EbtUint16;
8117 (yyval.interm.type).setVector(2);
8119 #line 8120 "MachineIndependent/glslang_tab.cpp"
8122 case 284: /* type_specifier_nonarray: U16VEC3 */
8123 #line 2130 "MachineIndependent/glslang.y"
8125 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8126 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8127 (yyval.interm.type).basicType = EbtUint16;
8128 (yyval.interm.type).setVector(3);
8130 #line 8131 "MachineIndependent/glslang_tab.cpp"
8133 case 285: /* type_specifier_nonarray: U16VEC4 */
8134 #line 2136 "MachineIndependent/glslang.y"
8136 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8137 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8138 (yyval.interm.type).basicType = EbtUint16;
8139 (yyval.interm.type).setVector(4);
8141 #line 8142 "MachineIndependent/glslang_tab.cpp"
8144 case 286: /* type_specifier_nonarray: U32VEC2 */
8145 #line 2142 "MachineIndependent/glslang.y"
8147 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8148 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8149 (yyval.interm.type).basicType = EbtUint;
8150 (yyval.interm.type).setVector(2);
8152 #line 8153 "MachineIndependent/glslang_tab.cpp"
8155 case 287: /* type_specifier_nonarray: U32VEC3 */
8156 #line 2148 "MachineIndependent/glslang.y"
8158 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8159 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8160 (yyval.interm.type).basicType = EbtUint;
8161 (yyval.interm.type).setVector(3);
8163 #line 8164 "MachineIndependent/glslang_tab.cpp"
8166 case 288: /* type_specifier_nonarray: U32VEC4 */
8167 #line 2154 "MachineIndependent/glslang.y"
8169 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8170 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8171 (yyval.interm.type).basicType = EbtUint;
8172 (yyval.interm.type).setVector(4);
8174 #line 8175 "MachineIndependent/glslang_tab.cpp"
8177 case 289: /* type_specifier_nonarray: U64VEC2 */
8178 #line 2160 "MachineIndependent/glslang.y"
8180 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8181 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8182 (yyval.interm.type).basicType = EbtUint64;
8183 (yyval.interm.type).setVector(2);
8185 #line 8186 "MachineIndependent/glslang_tab.cpp"
8188 case 290: /* type_specifier_nonarray: U64VEC3 */
8189 #line 2166 "MachineIndependent/glslang.y"
8191 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8192 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8193 (yyval.interm.type).basicType = EbtUint64;
8194 (yyval.interm.type).setVector(3);
8196 #line 8197 "MachineIndependent/glslang_tab.cpp"
8199 case 291: /* type_specifier_nonarray: U64VEC4 */
8200 #line 2172 "MachineIndependent/glslang.y"
8202 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8203 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8204 (yyval.interm.type).basicType = EbtUint64;
8205 (yyval.interm.type).setVector(4);
8207 #line 8208 "MachineIndependent/glslang_tab.cpp"
8210 case 292: /* type_specifier_nonarray: DMAT2 */
8211 #line 2178 "MachineIndependent/glslang.y"
8213 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8214 if (! parseContext.symbolTable.atBuiltInLevel())
8215 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8216 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8217 (yyval.interm.type).basicType = EbtDouble;
8218 (yyval.interm.type).setMatrix(2, 2);
8220 #line 8221 "MachineIndependent/glslang_tab.cpp"
8223 case 293: /* type_specifier_nonarray: DMAT3 */
8224 #line 2186 "MachineIndependent/glslang.y"
8226 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8227 if (! parseContext.symbolTable.atBuiltInLevel())
8228 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8229 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8230 (yyval.interm.type).basicType = EbtDouble;
8231 (yyval.interm.type).setMatrix(3, 3);
8233 #line 8234 "MachineIndependent/glslang_tab.cpp"
8236 case 294: /* type_specifier_nonarray: DMAT4 */
8237 #line 2194 "MachineIndependent/glslang.y"
8239 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8240 if (! parseContext.symbolTable.atBuiltInLevel())
8241 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8242 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8243 (yyval.interm.type).basicType = EbtDouble;
8244 (yyval.interm.type).setMatrix(4, 4);
8246 #line 8247 "MachineIndependent/glslang_tab.cpp"
8249 case 295: /* type_specifier_nonarray: DMAT2X2 */
8250 #line 2202 "MachineIndependent/glslang.y"
8252 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8253 if (! parseContext.symbolTable.atBuiltInLevel())
8254 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8255 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8256 (yyval.interm.type).basicType = EbtDouble;
8257 (yyval.interm.type).setMatrix(2, 2);
8259 #line 8260 "MachineIndependent/glslang_tab.cpp"
8262 case 296: /* type_specifier_nonarray: DMAT2X3 */
8263 #line 2210 "MachineIndependent/glslang.y"
8265 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8266 if (! parseContext.symbolTable.atBuiltInLevel())
8267 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8268 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8269 (yyval.interm.type).basicType = EbtDouble;
8270 (yyval.interm.type).setMatrix(2, 3);
8272 #line 8273 "MachineIndependent/glslang_tab.cpp"
8275 case 297: /* type_specifier_nonarray: DMAT2X4 */
8276 #line 2218 "MachineIndependent/glslang.y"
8278 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8279 if (! parseContext.symbolTable.atBuiltInLevel())
8280 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8281 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8282 (yyval.interm.type).basicType = EbtDouble;
8283 (yyval.interm.type).setMatrix(2, 4);
8285 #line 8286 "MachineIndependent/glslang_tab.cpp"
8288 case 298: /* type_specifier_nonarray: DMAT3X2 */
8289 #line 2226 "MachineIndependent/glslang.y"
8291 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8292 if (! parseContext.symbolTable.atBuiltInLevel())
8293 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8294 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8295 (yyval.interm.type).basicType = EbtDouble;
8296 (yyval.interm.type).setMatrix(3, 2);
8298 #line 8299 "MachineIndependent/glslang_tab.cpp"
8301 case 299: /* type_specifier_nonarray: DMAT3X3 */
8302 #line 2234 "MachineIndependent/glslang.y"
8304 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8305 if (! parseContext.symbolTable.atBuiltInLevel())
8306 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8307 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8308 (yyval.interm.type).basicType = EbtDouble;
8309 (yyval.interm.type).setMatrix(3, 3);
8311 #line 8312 "MachineIndependent/glslang_tab.cpp"
8314 case 300: /* type_specifier_nonarray: DMAT3X4 */
8315 #line 2242 "MachineIndependent/glslang.y"
8317 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8318 if (! parseContext.symbolTable.atBuiltInLevel())
8319 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8320 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8321 (yyval.interm.type).basicType = EbtDouble;
8322 (yyval.interm.type).setMatrix(3, 4);
8324 #line 8325 "MachineIndependent/glslang_tab.cpp"
8327 case 301: /* type_specifier_nonarray: DMAT4X2 */
8328 #line 2250 "MachineIndependent/glslang.y"
8330 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8331 if (! parseContext.symbolTable.atBuiltInLevel())
8332 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8333 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8334 (yyval.interm.type).basicType = EbtDouble;
8335 (yyval.interm.type).setMatrix(4, 2);
8337 #line 8338 "MachineIndependent/glslang_tab.cpp"
8340 case 302: /* type_specifier_nonarray: DMAT4X3 */
8341 #line 2258 "MachineIndependent/glslang.y"
8343 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8344 if (! parseContext.symbolTable.atBuiltInLevel())
8345 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8346 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8347 (yyval.interm.type).basicType = EbtDouble;
8348 (yyval.interm.type).setMatrix(4, 3);
8350 #line 8351 "MachineIndependent/glslang_tab.cpp"
8353 case 303: /* type_specifier_nonarray: DMAT4X4 */
8354 #line 2266 "MachineIndependent/glslang.y"
8356 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8357 if (! parseContext.symbolTable.atBuiltInLevel())
8358 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8359 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8360 (yyval.interm.type).basicType = EbtDouble;
8361 (yyval.interm.type).setMatrix(4, 4);
8363 #line 8364 "MachineIndependent/glslang_tab.cpp"
8366 case 304: /* type_specifier_nonarray: F16MAT2 */
8367 #line 2274 "MachineIndependent/glslang.y"
8369 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8370 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8371 (yyval.interm.type).basicType = EbtFloat16;
8372 (yyval.interm.type).setMatrix(2, 2);
8374 #line 8375 "MachineIndependent/glslang_tab.cpp"
8377 case 305: /* type_specifier_nonarray: F16MAT3 */
8378 #line 2280 "MachineIndependent/glslang.y"
8380 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8381 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8382 (yyval.interm.type).basicType = EbtFloat16;
8383 (yyval.interm.type).setMatrix(3, 3);
8385 #line 8386 "MachineIndependent/glslang_tab.cpp"
8388 case 306: /* type_specifier_nonarray: F16MAT4 */
8389 #line 2286 "MachineIndependent/glslang.y"
8391 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8392 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8393 (yyval.interm.type).basicType = EbtFloat16;
8394 (yyval.interm.type).setMatrix(4, 4);
8396 #line 8397 "MachineIndependent/glslang_tab.cpp"
8399 case 307: /* type_specifier_nonarray: F16MAT2X2 */
8400 #line 2292 "MachineIndependent/glslang.y"
8402 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8403 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8404 (yyval.interm.type).basicType = EbtFloat16;
8405 (yyval.interm.type).setMatrix(2, 2);
8407 #line 8408 "MachineIndependent/glslang_tab.cpp"
8410 case 308: /* type_specifier_nonarray: F16MAT2X3 */
8411 #line 2298 "MachineIndependent/glslang.y"
8413 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8414 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8415 (yyval.interm.type).basicType = EbtFloat16;
8416 (yyval.interm.type).setMatrix(2, 3);
8418 #line 8419 "MachineIndependent/glslang_tab.cpp"
8421 case 309: /* type_specifier_nonarray: F16MAT2X4 */
8422 #line 2304 "MachineIndependent/glslang.y"
8424 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8425 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8426 (yyval.interm.type).basicType = EbtFloat16;
8427 (yyval.interm.type).setMatrix(2, 4);
8429 #line 8430 "MachineIndependent/glslang_tab.cpp"
8432 case 310: /* type_specifier_nonarray: F16MAT3X2 */
8433 #line 2310 "MachineIndependent/glslang.y"
8435 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8436 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8437 (yyval.interm.type).basicType = EbtFloat16;
8438 (yyval.interm.type).setMatrix(3, 2);
8440 #line 8441 "MachineIndependent/glslang_tab.cpp"
8443 case 311: /* type_specifier_nonarray: F16MAT3X3 */
8444 #line 2316 "MachineIndependent/glslang.y"
8446 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8447 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8448 (yyval.interm.type).basicType = EbtFloat16;
8449 (yyval.interm.type).setMatrix(3, 3);
8451 #line 8452 "MachineIndependent/glslang_tab.cpp"
8454 case 312: /* type_specifier_nonarray: F16MAT3X4 */
8455 #line 2322 "MachineIndependent/glslang.y"
8457 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8458 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8459 (yyval.interm.type).basicType = EbtFloat16;
8460 (yyval.interm.type).setMatrix(3, 4);
8462 #line 8463 "MachineIndependent/glslang_tab.cpp"
8465 case 313: /* type_specifier_nonarray: F16MAT4X2 */
8466 #line 2328 "MachineIndependent/glslang.y"
8468 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8469 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8470 (yyval.interm.type).basicType = EbtFloat16;
8471 (yyval.interm.type).setMatrix(4, 2);
8473 #line 8474 "MachineIndependent/glslang_tab.cpp"
8476 case 314: /* type_specifier_nonarray: F16MAT4X3 */
8477 #line 2334 "MachineIndependent/glslang.y"
8479 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8480 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8481 (yyval.interm.type).basicType = EbtFloat16;
8482 (yyval.interm.type).setMatrix(4, 3);
8484 #line 8485 "MachineIndependent/glslang_tab.cpp"
8487 case 315: /* type_specifier_nonarray: F16MAT4X4 */
8488 #line 2340 "MachineIndependent/glslang.y"
8490 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8491 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8492 (yyval.interm.type).basicType = EbtFloat16;
8493 (yyval.interm.type).setMatrix(4, 4);
8495 #line 8496 "MachineIndependent/glslang_tab.cpp"
8498 case 316: /* type_specifier_nonarray: F32MAT2 */
8499 #line 2346 "MachineIndependent/glslang.y"
8501 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8502 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8503 (yyval.interm.type).basicType = EbtFloat;
8504 (yyval.interm.type).setMatrix(2, 2);
8506 #line 8507 "MachineIndependent/glslang_tab.cpp"
8509 case 317: /* type_specifier_nonarray: F32MAT3 */
8510 #line 2352 "MachineIndependent/glslang.y"
8512 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8513 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8514 (yyval.interm.type).basicType = EbtFloat;
8515 (yyval.interm.type).setMatrix(3, 3);
8517 #line 8518 "MachineIndependent/glslang_tab.cpp"
8520 case 318: /* type_specifier_nonarray: F32MAT4 */
8521 #line 2358 "MachineIndependent/glslang.y"
8523 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8524 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8525 (yyval.interm.type).basicType = EbtFloat;
8526 (yyval.interm.type).setMatrix(4, 4);
8528 #line 8529 "MachineIndependent/glslang_tab.cpp"
8531 case 319: /* type_specifier_nonarray: F32MAT2X2 */
8532 #line 2364 "MachineIndependent/glslang.y"
8534 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8535 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8536 (yyval.interm.type).basicType = EbtFloat;
8537 (yyval.interm.type).setMatrix(2, 2);
8539 #line 8540 "MachineIndependent/glslang_tab.cpp"
8542 case 320: /* type_specifier_nonarray: F32MAT2X3 */
8543 #line 2370 "MachineIndependent/glslang.y"
8545 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8546 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8547 (yyval.interm.type).basicType = EbtFloat;
8548 (yyval.interm.type).setMatrix(2, 3);
8550 #line 8551 "MachineIndependent/glslang_tab.cpp"
8553 case 321: /* type_specifier_nonarray: F32MAT2X4 */
8554 #line 2376 "MachineIndependent/glslang.y"
8556 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8557 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8558 (yyval.interm.type).basicType = EbtFloat;
8559 (yyval.interm.type).setMatrix(2, 4);
8561 #line 8562 "MachineIndependent/glslang_tab.cpp"
8564 case 322: /* type_specifier_nonarray: F32MAT3X2 */
8565 #line 2382 "MachineIndependent/glslang.y"
8567 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8568 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8569 (yyval.interm.type).basicType = EbtFloat;
8570 (yyval.interm.type).setMatrix(3, 2);
8572 #line 8573 "MachineIndependent/glslang_tab.cpp"
8575 case 323: /* type_specifier_nonarray: F32MAT3X3 */
8576 #line 2388 "MachineIndependent/glslang.y"
8578 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8579 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8580 (yyval.interm.type).basicType = EbtFloat;
8581 (yyval.interm.type).setMatrix(3, 3);
8583 #line 8584 "MachineIndependent/glslang_tab.cpp"
8586 case 324: /* type_specifier_nonarray: F32MAT3X4 */
8587 #line 2394 "MachineIndependent/glslang.y"
8589 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8590 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8591 (yyval.interm.type).basicType = EbtFloat;
8592 (yyval.interm.type).setMatrix(3, 4);
8594 #line 8595 "MachineIndependent/glslang_tab.cpp"
8597 case 325: /* type_specifier_nonarray: F32MAT4X2 */
8598 #line 2400 "MachineIndependent/glslang.y"
8600 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8601 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8602 (yyval.interm.type).basicType = EbtFloat;
8603 (yyval.interm.type).setMatrix(4, 2);
8605 #line 8606 "MachineIndependent/glslang_tab.cpp"
8608 case 326: /* type_specifier_nonarray: F32MAT4X3 */
8609 #line 2406 "MachineIndependent/glslang.y"
8611 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8612 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8613 (yyval.interm.type).basicType = EbtFloat;
8614 (yyval.interm.type).setMatrix(4, 3);
8616 #line 8617 "MachineIndependent/glslang_tab.cpp"
8619 case 327: /* type_specifier_nonarray: F32MAT4X4 */
8620 #line 2412 "MachineIndependent/glslang.y"
8622 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8623 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8624 (yyval.interm.type).basicType = EbtFloat;
8625 (yyval.interm.type).setMatrix(4, 4);
8627 #line 8628 "MachineIndependent/glslang_tab.cpp"
8630 case 328: /* type_specifier_nonarray: F64MAT2 */
8631 #line 2418 "MachineIndependent/glslang.y"
8633 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8634 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8635 (yyval.interm.type).basicType = EbtDouble;
8636 (yyval.interm.type).setMatrix(2, 2);
8638 #line 8639 "MachineIndependent/glslang_tab.cpp"
8641 case 329: /* type_specifier_nonarray: F64MAT3 */
8642 #line 2424 "MachineIndependent/glslang.y"
8644 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8645 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8646 (yyval.interm.type).basicType = EbtDouble;
8647 (yyval.interm.type).setMatrix(3, 3);
8649 #line 8650 "MachineIndependent/glslang_tab.cpp"
8652 case 330: /* type_specifier_nonarray: F64MAT4 */
8653 #line 2430 "MachineIndependent/glslang.y"
8655 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8656 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8657 (yyval.interm.type).basicType = EbtDouble;
8658 (yyval.interm.type).setMatrix(4, 4);
8660 #line 8661 "MachineIndependent/glslang_tab.cpp"
8663 case 331: /* type_specifier_nonarray: F64MAT2X2 */
8664 #line 2436 "MachineIndependent/glslang.y"
8666 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8667 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8668 (yyval.interm.type).basicType = EbtDouble;
8669 (yyval.interm.type).setMatrix(2, 2);
8671 #line 8672 "MachineIndependent/glslang_tab.cpp"
8674 case 332: /* type_specifier_nonarray: F64MAT2X3 */
8675 #line 2442 "MachineIndependent/glslang.y"
8677 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8678 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8679 (yyval.interm.type).basicType = EbtDouble;
8680 (yyval.interm.type).setMatrix(2, 3);
8682 #line 8683 "MachineIndependent/glslang_tab.cpp"
8685 case 333: /* type_specifier_nonarray: F64MAT2X4 */
8686 #line 2448 "MachineIndependent/glslang.y"
8688 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8689 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8690 (yyval.interm.type).basicType = EbtDouble;
8691 (yyval.interm.type).setMatrix(2, 4);
8693 #line 8694 "MachineIndependent/glslang_tab.cpp"
8696 case 334: /* type_specifier_nonarray: F64MAT3X2 */
8697 #line 2454 "MachineIndependent/glslang.y"
8699 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8700 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8701 (yyval.interm.type).basicType = EbtDouble;
8702 (yyval.interm.type).setMatrix(3, 2);
8704 #line 8705 "MachineIndependent/glslang_tab.cpp"
8707 case 335: /* type_specifier_nonarray: F64MAT3X3 */
8708 #line 2460 "MachineIndependent/glslang.y"
8710 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8711 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8712 (yyval.interm.type).basicType = EbtDouble;
8713 (yyval.interm.type).setMatrix(3, 3);
8715 #line 8716 "MachineIndependent/glslang_tab.cpp"
8718 case 336: /* type_specifier_nonarray: F64MAT3X4 */
8719 #line 2466 "MachineIndependent/glslang.y"
8721 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8722 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8723 (yyval.interm.type).basicType = EbtDouble;
8724 (yyval.interm.type).setMatrix(3, 4);
8726 #line 8727 "MachineIndependent/glslang_tab.cpp"
8729 case 337: /* type_specifier_nonarray: F64MAT4X2 */
8730 #line 2472 "MachineIndependent/glslang.y"
8732 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8733 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8734 (yyval.interm.type).basicType = EbtDouble;
8735 (yyval.interm.type).setMatrix(4, 2);
8737 #line 8738 "MachineIndependent/glslang_tab.cpp"
8740 case 338: /* type_specifier_nonarray: F64MAT4X3 */
8741 #line 2478 "MachineIndependent/glslang.y"
8743 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8744 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8745 (yyval.interm.type).basicType = EbtDouble;
8746 (yyval.interm.type).setMatrix(4, 3);
8748 #line 8749 "MachineIndependent/glslang_tab.cpp"
8751 case 339: /* type_specifier_nonarray: F64MAT4X4 */
8752 #line 2484 "MachineIndependent/glslang.y"
8754 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8755 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8756 (yyval.interm.type).basicType = EbtDouble;
8757 (yyval.interm.type).setMatrix(4, 4);
8759 #line 8760 "MachineIndependent/glslang_tab.cpp"
8762 case 340: /* type_specifier_nonarray: ACCSTRUCTNV */
8763 #line 2490 "MachineIndependent/glslang.y"
8765 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8766 (yyval.interm.type).basicType = EbtAccStruct;
8768 #line 8769 "MachineIndependent/glslang_tab.cpp"
8771 case 341: /* type_specifier_nonarray: ACCSTRUCTEXT */
8772 #line 2494 "MachineIndependent/glslang.y"
8774 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8775 (yyval.interm.type).basicType = EbtAccStruct;
8777 #line 8778 "MachineIndependent/glslang_tab.cpp"
8780 case 342: /* type_specifier_nonarray: RAYQUERYEXT */
8781 #line 2498 "MachineIndependent/glslang.y"
8783 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8784 (yyval.interm.type).basicType = EbtRayQuery;
8786 #line 8787 "MachineIndependent/glslang_tab.cpp"
8789 case 343: /* type_specifier_nonarray: ATOMIC_UINT */
8790 #line 2502 "MachineIndependent/glslang.y"
8792 parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
8793 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8794 (yyval.interm.type).basicType = EbtAtomicUint;
8796 #line 8797 "MachineIndependent/glslang_tab.cpp"
8799 case 344: /* type_specifier_nonarray: SAMPLER1D */
8800 #line 2507 "MachineIndependent/glslang.y"
8802 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8803 (yyval.interm.type).basicType = EbtSampler;
8804 (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
8806 #line 8807 "MachineIndependent/glslang_tab.cpp"
8809 case 345: /* type_specifier_nonarray: SAMPLER2D */
8810 #line 2513 "MachineIndependent/glslang.y"
8812 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8813 (yyval.interm.type).basicType = EbtSampler;
8814 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
8816 #line 8817 "MachineIndependent/glslang_tab.cpp"
8819 case 346: /* type_specifier_nonarray: SAMPLER3D */
8820 #line 2518 "MachineIndependent/glslang.y"
8822 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8823 (yyval.interm.type).basicType = EbtSampler;
8824 (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
8826 #line 8827 "MachineIndependent/glslang_tab.cpp"
8829 case 347: /* type_specifier_nonarray: SAMPLERCUBE */
8830 #line 2523 "MachineIndependent/glslang.y"
8832 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8833 (yyval.interm.type).basicType = EbtSampler;
8834 (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
8836 #line 8837 "MachineIndependent/glslang_tab.cpp"
8839 case 348: /* type_specifier_nonarray: SAMPLER2DSHADOW */
8840 #line 2528 "MachineIndependent/glslang.y"
8842 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8843 (yyval.interm.type).basicType = EbtSampler;
8844 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
8846 #line 8847 "MachineIndependent/glslang_tab.cpp"
8849 case 349: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
8850 #line 2533 "MachineIndependent/glslang.y"
8852 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8853 (yyval.interm.type).basicType = EbtSampler;
8854 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
8856 #line 8857 "MachineIndependent/glslang_tab.cpp"
8859 case 350: /* type_specifier_nonarray: SAMPLER2DARRAY */
8860 #line 2538 "MachineIndependent/glslang.y"
8862 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8863 (yyval.interm.type).basicType = EbtSampler;
8864 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
8866 #line 8867 "MachineIndependent/glslang_tab.cpp"
8869 case 351: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
8870 #line 2543 "MachineIndependent/glslang.y"
8872 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8873 (yyval.interm.type).basicType = EbtSampler;
8874 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
8876 #line 8877 "MachineIndependent/glslang_tab.cpp"
8879 case 352: /* type_specifier_nonarray: SAMPLER1DSHADOW */
8880 #line 2549 "MachineIndependent/glslang.y"
8882 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8883 (yyval.interm.type).basicType = EbtSampler;
8884 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
8886 #line 8887 "MachineIndependent/glslang_tab.cpp"
8889 case 353: /* type_specifier_nonarray: SAMPLER1DARRAY */
8890 #line 2554 "MachineIndependent/glslang.y"
8892 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8893 (yyval.interm.type).basicType = EbtSampler;
8894 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
8896 #line 8897 "MachineIndependent/glslang_tab.cpp"
8899 case 354: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
8900 #line 2559 "MachineIndependent/glslang.y"
8902 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8903 (yyval.interm.type).basicType = EbtSampler;
8904 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
8906 #line 8907 "MachineIndependent/glslang_tab.cpp"
8909 case 355: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
8910 #line 2564 "MachineIndependent/glslang.y"
8912 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8913 (yyval.interm.type).basicType = EbtSampler;
8914 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
8916 #line 8917 "MachineIndependent/glslang_tab.cpp"
8919 case 356: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
8920 #line 2569 "MachineIndependent/glslang.y"
8922 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8923 (yyval.interm.type).basicType = EbtSampler;
8924 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
8926 #line 8927 "MachineIndependent/glslang_tab.cpp"
8929 case 357: /* type_specifier_nonarray: F16SAMPLER1D */
8930 #line 2574 "MachineIndependent/glslang.y"
8932 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8933 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8934 (yyval.interm.type).basicType = EbtSampler;
8935 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
8937 #line 8938 "MachineIndependent/glslang_tab.cpp"
8940 case 358: /* type_specifier_nonarray: F16SAMPLER2D */
8941 #line 2580 "MachineIndependent/glslang.y"
8943 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8944 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8945 (yyval.interm.type).basicType = EbtSampler;
8946 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
8948 #line 8949 "MachineIndependent/glslang_tab.cpp"
8951 case 359: /* type_specifier_nonarray: F16SAMPLER3D */
8952 #line 2586 "MachineIndependent/glslang.y"
8954 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8955 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8956 (yyval.interm.type).basicType = EbtSampler;
8957 (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
8959 #line 8960 "MachineIndependent/glslang_tab.cpp"
8962 case 360: /* type_specifier_nonarray: F16SAMPLERCUBE */
8963 #line 2592 "MachineIndependent/glslang.y"
8965 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8966 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8967 (yyval.interm.type).basicType = EbtSampler;
8968 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
8970 #line 8971 "MachineIndependent/glslang_tab.cpp"
8973 case 361: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
8974 #line 2598 "MachineIndependent/glslang.y"
8976 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8977 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8978 (yyval.interm.type).basicType = EbtSampler;
8979 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
8981 #line 8982 "MachineIndependent/glslang_tab.cpp"
8984 case 362: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
8985 #line 2604 "MachineIndependent/glslang.y"
8987 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8988 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8989 (yyval.interm.type).basicType = EbtSampler;
8990 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
8992 #line 8993 "MachineIndependent/glslang_tab.cpp"
8995 case 363: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
8996 #line 2610 "MachineIndependent/glslang.y"
8998 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8999 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000 (yyval.interm.type).basicType = EbtSampler;
9001 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
9003 #line 9004 "MachineIndependent/glslang_tab.cpp"
9006 case 364: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
9007 #line 2616 "MachineIndependent/glslang.y"
9009 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9010 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9011 (yyval.interm.type).basicType = EbtSampler;
9012 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
9014 #line 9015 "MachineIndependent/glslang_tab.cpp"
9017 case 365: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
9018 #line 2622 "MachineIndependent/glslang.y"
9020 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9021 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9022 (yyval.interm.type).basicType = EbtSampler;
9023 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
9025 #line 9026 "MachineIndependent/glslang_tab.cpp"
9028 case 366: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
9029 #line 2628 "MachineIndependent/glslang.y"
9031 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9032 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9033 (yyval.interm.type).basicType = EbtSampler;
9034 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
9036 #line 9037 "MachineIndependent/glslang_tab.cpp"
9039 case 367: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
9040 #line 2634 "MachineIndependent/glslang.y"
9042 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9043 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9044 (yyval.interm.type).basicType = EbtSampler;
9045 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
9047 #line 9048 "MachineIndependent/glslang_tab.cpp"
9050 case 368: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
9051 #line 2640 "MachineIndependent/glslang.y"
9053 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9054 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9055 (yyval.interm.type).basicType = EbtSampler;
9056 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
9058 #line 9059 "MachineIndependent/glslang_tab.cpp"
9061 case 369: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
9062 #line 2646 "MachineIndependent/glslang.y"
9064 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9065 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9066 (yyval.interm.type).basicType = EbtSampler;
9067 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
9069 #line 9070 "MachineIndependent/glslang_tab.cpp"
9072 case 370: /* type_specifier_nonarray: ISAMPLER1D */
9073 #line 2652 "MachineIndependent/glslang.y"
9075 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9076 (yyval.interm.type).basicType = EbtSampler;
9077 (yyval.interm.type).sampler.set(EbtInt, Esd1D);
9079 #line 9080 "MachineIndependent/glslang_tab.cpp"
9082 case 371: /* type_specifier_nonarray: ISAMPLER2D */
9083 #line 2658 "MachineIndependent/glslang.y"
9085 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9086 (yyval.interm.type).basicType = EbtSampler;
9087 (yyval.interm.type).sampler.set(EbtInt, Esd2D);
9089 #line 9090 "MachineIndependent/glslang_tab.cpp"
9092 case 372: /* type_specifier_nonarray: ISAMPLER3D */
9093 #line 2663 "MachineIndependent/glslang.y"
9095 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9096 (yyval.interm.type).basicType = EbtSampler;
9097 (yyval.interm.type).sampler.set(EbtInt, Esd3D);
9099 #line 9100 "MachineIndependent/glslang_tab.cpp"
9102 case 373: /* type_specifier_nonarray: ISAMPLERCUBE */
9103 #line 2668 "MachineIndependent/glslang.y"
9105 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9106 (yyval.interm.type).basicType = EbtSampler;
9107 (yyval.interm.type).sampler.set(EbtInt, EsdCube);
9109 #line 9110 "MachineIndependent/glslang_tab.cpp"
9112 case 374: /* type_specifier_nonarray: ISAMPLER2DARRAY */
9113 #line 2673 "MachineIndependent/glslang.y"
9115 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9116 (yyval.interm.type).basicType = EbtSampler;
9117 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
9119 #line 9120 "MachineIndependent/glslang_tab.cpp"
9122 case 375: /* type_specifier_nonarray: USAMPLER2D */
9123 #line 2678 "MachineIndependent/glslang.y"
9125 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9126 (yyval.interm.type).basicType = EbtSampler;
9127 (yyval.interm.type).sampler.set(EbtUint, Esd2D);
9129 #line 9130 "MachineIndependent/glslang_tab.cpp"
9132 case 376: /* type_specifier_nonarray: USAMPLER3D */
9133 #line 2683 "MachineIndependent/glslang.y"
9135 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9136 (yyval.interm.type).basicType = EbtSampler;
9137 (yyval.interm.type).sampler.set(EbtUint, Esd3D);
9139 #line 9140 "MachineIndependent/glslang_tab.cpp"
9142 case 377: /* type_specifier_nonarray: USAMPLERCUBE */
9143 #line 2688 "MachineIndependent/glslang.y"
9145 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9146 (yyval.interm.type).basicType = EbtSampler;
9147 (yyval.interm.type).sampler.set(EbtUint, EsdCube);
9149 #line 9150 "MachineIndependent/glslang_tab.cpp"
9152 case 378: /* type_specifier_nonarray: ISAMPLER1DARRAY */
9153 #line 2694 "MachineIndependent/glslang.y"
9155 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9156 (yyval.interm.type).basicType = EbtSampler;
9157 (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
9159 #line 9160 "MachineIndependent/glslang_tab.cpp"
9162 case 379: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
9163 #line 2699 "MachineIndependent/glslang.y"
9165 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9166 (yyval.interm.type).basicType = EbtSampler;
9167 (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
9169 #line 9170 "MachineIndependent/glslang_tab.cpp"
9172 case 380: /* type_specifier_nonarray: USAMPLER1D */
9173 #line 2704 "MachineIndependent/glslang.y"
9175 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9176 (yyval.interm.type).basicType = EbtSampler;
9177 (yyval.interm.type).sampler.set(EbtUint, Esd1D);
9179 #line 9180 "MachineIndependent/glslang_tab.cpp"
9182 case 381: /* type_specifier_nonarray: USAMPLER1DARRAY */
9183 #line 2709 "MachineIndependent/glslang.y"
9185 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9186 (yyval.interm.type).basicType = EbtSampler;
9187 (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
9189 #line 9190 "MachineIndependent/glslang_tab.cpp"
9192 case 382: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
9193 #line 2714 "MachineIndependent/glslang.y"
9195 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9196 (yyval.interm.type).basicType = EbtSampler;
9197 (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
9199 #line 9200 "MachineIndependent/glslang_tab.cpp"
9202 case 383: /* type_specifier_nonarray: TEXTURECUBEARRAY */
9203 #line 2719 "MachineIndependent/glslang.y"
9205 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9206 (yyval.interm.type).basicType = EbtSampler;
9207 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
9209 #line 9210 "MachineIndependent/glslang_tab.cpp"
9212 case 384: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
9213 #line 2724 "MachineIndependent/glslang.y"
9215 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9216 (yyval.interm.type).basicType = EbtSampler;
9217 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
9219 #line 9220 "MachineIndependent/glslang_tab.cpp"
9222 case 385: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
9223 #line 2729 "MachineIndependent/glslang.y"
9225 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9226 (yyval.interm.type).basicType = EbtSampler;
9227 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
9229 #line 9230 "MachineIndependent/glslang_tab.cpp"
9232 case 386: /* type_specifier_nonarray: USAMPLER2DARRAY */
9233 #line 2735 "MachineIndependent/glslang.y"
9235 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9236 (yyval.interm.type).basicType = EbtSampler;
9237 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
9239 #line 9240 "MachineIndependent/glslang_tab.cpp"
9242 case 387: /* type_specifier_nonarray: TEXTURE2D */
9243 #line 2740 "MachineIndependent/glslang.y"
9245 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9246 (yyval.interm.type).basicType = EbtSampler;
9247 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
9249 #line 9250 "MachineIndependent/glslang_tab.cpp"
9252 case 388: /* type_specifier_nonarray: TEXTURE3D */
9253 #line 2745 "MachineIndependent/glslang.y"
9255 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9256 (yyval.interm.type).basicType = EbtSampler;
9257 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
9259 #line 9260 "MachineIndependent/glslang_tab.cpp"
9262 case 389: /* type_specifier_nonarray: TEXTURE2DARRAY */
9263 #line 2750 "MachineIndependent/glslang.y"
9265 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266 (yyval.interm.type).basicType = EbtSampler;
9267 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
9269 #line 9270 "MachineIndependent/glslang_tab.cpp"
9272 case 390: /* type_specifier_nonarray: TEXTURECUBE */
9273 #line 2755 "MachineIndependent/glslang.y"
9275 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9276 (yyval.interm.type).basicType = EbtSampler;
9277 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
9279 #line 9280 "MachineIndependent/glslang_tab.cpp"
9282 case 391: /* type_specifier_nonarray: ITEXTURE2D */
9283 #line 2760 "MachineIndependent/glslang.y"
9285 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9286 (yyval.interm.type).basicType = EbtSampler;
9287 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
9289 #line 9290 "MachineIndependent/glslang_tab.cpp"
9292 case 392: /* type_specifier_nonarray: ITEXTURE3D */
9293 #line 2765 "MachineIndependent/glslang.y"
9295 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9296 (yyval.interm.type).basicType = EbtSampler;
9297 (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
9299 #line 9300 "MachineIndependent/glslang_tab.cpp"
9302 case 393: /* type_specifier_nonarray: ITEXTURECUBE */
9303 #line 2770 "MachineIndependent/glslang.y"
9305 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9306 (yyval.interm.type).basicType = EbtSampler;
9307 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
9309 #line 9310 "MachineIndependent/glslang_tab.cpp"
9312 case 394: /* type_specifier_nonarray: ITEXTURE2DARRAY */
9313 #line 2775 "MachineIndependent/glslang.y"
9315 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9316 (yyval.interm.type).basicType = EbtSampler;
9317 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
9319 #line 9320 "MachineIndependent/glslang_tab.cpp"
9322 case 395: /* type_specifier_nonarray: UTEXTURE2D */
9323 #line 2780 "MachineIndependent/glslang.y"
9325 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9326 (yyval.interm.type).basicType = EbtSampler;
9327 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
9329 #line 9330 "MachineIndependent/glslang_tab.cpp"
9332 case 396: /* type_specifier_nonarray: UTEXTURE3D */
9333 #line 2785 "MachineIndependent/glslang.y"
9335 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9336 (yyval.interm.type).basicType = EbtSampler;
9337 (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
9339 #line 9340 "MachineIndependent/glslang_tab.cpp"
9342 case 397: /* type_specifier_nonarray: UTEXTURECUBE */
9343 #line 2790 "MachineIndependent/glslang.y"
9345 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9346 (yyval.interm.type).basicType = EbtSampler;
9347 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
9349 #line 9350 "MachineIndependent/glslang_tab.cpp"
9352 case 398: /* type_specifier_nonarray: UTEXTURE2DARRAY */
9353 #line 2795 "MachineIndependent/glslang.y"
9355 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9356 (yyval.interm.type).basicType = EbtSampler;
9357 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
9359 #line 9360 "MachineIndependent/glslang_tab.cpp"
9362 case 399: /* type_specifier_nonarray: SAMPLER */
9363 #line 2800 "MachineIndependent/glslang.y"
9365 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9366 (yyval.interm.type).basicType = EbtSampler;
9367 (yyval.interm.type).sampler.setPureSampler(false);
9369 #line 9370 "MachineIndependent/glslang_tab.cpp"
9372 case 400: /* type_specifier_nonarray: SAMPLERSHADOW */
9373 #line 2805 "MachineIndependent/glslang.y"
9375 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9376 (yyval.interm.type).basicType = EbtSampler;
9377 (yyval.interm.type).sampler.setPureSampler(true);
9379 #line 9380 "MachineIndependent/glslang_tab.cpp"
9382 case 401: /* type_specifier_nonarray: SAMPLER2DRECT */
9383 #line 2811 "MachineIndependent/glslang.y"
9385 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9386 (yyval.interm.type).basicType = EbtSampler;
9387 (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
9389 #line 9390 "MachineIndependent/glslang_tab.cpp"
9392 case 402: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
9393 #line 2816 "MachineIndependent/glslang.y"
9395 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9396 (yyval.interm.type).basicType = EbtSampler;
9397 (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
9399 #line 9400 "MachineIndependent/glslang_tab.cpp"
9402 case 403: /* type_specifier_nonarray: F16SAMPLER2DRECT */
9403 #line 2821 "MachineIndependent/glslang.y"
9405 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9406 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9407 (yyval.interm.type).basicType = EbtSampler;
9408 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
9410 #line 9411 "MachineIndependent/glslang_tab.cpp"
9413 case 404: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
9414 #line 2827 "MachineIndependent/glslang.y"
9416 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9417 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9418 (yyval.interm.type).basicType = EbtSampler;
9419 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
9421 #line 9422 "MachineIndependent/glslang_tab.cpp"
9424 case 405: /* type_specifier_nonarray: ISAMPLER2DRECT */
9425 #line 2833 "MachineIndependent/glslang.y"
9427 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9428 (yyval.interm.type).basicType = EbtSampler;
9429 (yyval.interm.type).sampler.set(EbtInt, EsdRect);
9431 #line 9432 "MachineIndependent/glslang_tab.cpp"
9434 case 406: /* type_specifier_nonarray: USAMPLER2DRECT */
9435 #line 2838 "MachineIndependent/glslang.y"
9437 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9438 (yyval.interm.type).basicType = EbtSampler;
9439 (yyval.interm.type).sampler.set(EbtUint, EsdRect);
9441 #line 9442 "MachineIndependent/glslang_tab.cpp"
9444 case 407: /* type_specifier_nonarray: SAMPLERBUFFER */
9445 #line 2843 "MachineIndependent/glslang.y"
9447 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9448 (yyval.interm.type).basicType = EbtSampler;
9449 (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
9451 #line 9452 "MachineIndependent/glslang_tab.cpp"
9454 case 408: /* type_specifier_nonarray: F16SAMPLERBUFFER */
9455 #line 2848 "MachineIndependent/glslang.y"
9457 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9458 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9459 (yyval.interm.type).basicType = EbtSampler;
9460 (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
9462 #line 9463 "MachineIndependent/glslang_tab.cpp"
9465 case 409: /* type_specifier_nonarray: ISAMPLERBUFFER */
9466 #line 2854 "MachineIndependent/glslang.y"
9468 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9469 (yyval.interm.type).basicType = EbtSampler;
9470 (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
9472 #line 9473 "MachineIndependent/glslang_tab.cpp"
9475 case 410: /* type_specifier_nonarray: USAMPLERBUFFER */
9476 #line 2859 "MachineIndependent/glslang.y"
9478 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9479 (yyval.interm.type).basicType = EbtSampler;
9480 (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
9482 #line 9483 "MachineIndependent/glslang_tab.cpp"
9485 case 411: /* type_specifier_nonarray: SAMPLER2DMS */
9486 #line 2864 "MachineIndependent/glslang.y"
9488 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9489 (yyval.interm.type).basicType = EbtSampler;
9490 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
9492 #line 9493 "MachineIndependent/glslang_tab.cpp"
9495 case 412: /* type_specifier_nonarray: F16SAMPLER2DMS */
9496 #line 2869 "MachineIndependent/glslang.y"
9498 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9499 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9500 (yyval.interm.type).basicType = EbtSampler;
9501 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
9503 #line 9504 "MachineIndependent/glslang_tab.cpp"
9506 case 413: /* type_specifier_nonarray: ISAMPLER2DMS */
9507 #line 2875 "MachineIndependent/glslang.y"
9509 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9510 (yyval.interm.type).basicType = EbtSampler;
9511 (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
9513 #line 9514 "MachineIndependent/glslang_tab.cpp"
9516 case 414: /* type_specifier_nonarray: USAMPLER2DMS */
9517 #line 2880 "MachineIndependent/glslang.y"
9519 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9520 (yyval.interm.type).basicType = EbtSampler;
9521 (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
9523 #line 9524 "MachineIndependent/glslang_tab.cpp"
9526 case 415: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
9527 #line 2885 "MachineIndependent/glslang.y"
9529 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9530 (yyval.interm.type).basicType = EbtSampler;
9531 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
9533 #line 9534 "MachineIndependent/glslang_tab.cpp"
9536 case 416: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
9537 #line 2890 "MachineIndependent/glslang.y"
9539 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9540 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9541 (yyval.interm.type).basicType = EbtSampler;
9542 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
9544 #line 9545 "MachineIndependent/glslang_tab.cpp"
9547 case 417: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
9548 #line 2896 "MachineIndependent/glslang.y"
9550 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9551 (yyval.interm.type).basicType = EbtSampler;
9552 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
9554 #line 9555 "MachineIndependent/glslang_tab.cpp"
9557 case 418: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
9558 #line 2901 "MachineIndependent/glslang.y"
9560 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9561 (yyval.interm.type).basicType = EbtSampler;
9562 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
9564 #line 9565 "MachineIndependent/glslang_tab.cpp"
9567 case 419: /* type_specifier_nonarray: TEXTURE1D */
9568 #line 2906 "MachineIndependent/glslang.y"
9570 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9571 (yyval.interm.type).basicType = EbtSampler;
9572 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
9574 #line 9575 "MachineIndependent/glslang_tab.cpp"
9577 case 420: /* type_specifier_nonarray: F16TEXTURE1D */
9578 #line 2911 "MachineIndependent/glslang.y"
9580 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9581 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9582 (yyval.interm.type).basicType = EbtSampler;
9583 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
9585 #line 9586 "MachineIndependent/glslang_tab.cpp"
9588 case 421: /* type_specifier_nonarray: F16TEXTURE2D */
9589 #line 2917 "MachineIndependent/glslang.y"
9591 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9592 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9593 (yyval.interm.type).basicType = EbtSampler;
9594 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
9596 #line 9597 "MachineIndependent/glslang_tab.cpp"
9599 case 422: /* type_specifier_nonarray: F16TEXTURE3D */
9600 #line 2923 "MachineIndependent/glslang.y"
9602 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9603 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9604 (yyval.interm.type).basicType = EbtSampler;
9605 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
9607 #line 9608 "MachineIndependent/glslang_tab.cpp"
9610 case 423: /* type_specifier_nonarray: F16TEXTURECUBE */
9611 #line 2929 "MachineIndependent/glslang.y"
9613 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9614 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9615 (yyval.interm.type).basicType = EbtSampler;
9616 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
9618 #line 9619 "MachineIndependent/glslang_tab.cpp"
9621 case 424: /* type_specifier_nonarray: TEXTURE1DARRAY */
9622 #line 2935 "MachineIndependent/glslang.y"
9624 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9625 (yyval.interm.type).basicType = EbtSampler;
9626 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
9628 #line 9629 "MachineIndependent/glslang_tab.cpp"
9631 case 425: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
9632 #line 2940 "MachineIndependent/glslang.y"
9634 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9635 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9636 (yyval.interm.type).basicType = EbtSampler;
9637 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
9639 #line 9640 "MachineIndependent/glslang_tab.cpp"
9642 case 426: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
9643 #line 2946 "MachineIndependent/glslang.y"
9645 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", 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.setTexture(EbtFloat16, Esd2D, true);
9650 #line 9651 "MachineIndependent/glslang_tab.cpp"
9653 case 427: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
9654 #line 2952 "MachineIndependent/glslang.y"
9656 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9657 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9658 (yyval.interm.type).basicType = EbtSampler;
9659 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
9661 #line 9662 "MachineIndependent/glslang_tab.cpp"
9664 case 428: /* type_specifier_nonarray: ITEXTURE1D */
9665 #line 2958 "MachineIndependent/glslang.y"
9667 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9668 (yyval.interm.type).basicType = EbtSampler;
9669 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
9671 #line 9672 "MachineIndependent/glslang_tab.cpp"
9674 case 429: /* type_specifier_nonarray: ITEXTURE1DARRAY */
9675 #line 2963 "MachineIndependent/glslang.y"
9677 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9678 (yyval.interm.type).basicType = EbtSampler;
9679 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
9681 #line 9682 "MachineIndependent/glslang_tab.cpp"
9684 case 430: /* type_specifier_nonarray: UTEXTURE1D */
9685 #line 2968 "MachineIndependent/glslang.y"
9687 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9688 (yyval.interm.type).basicType = EbtSampler;
9689 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
9691 #line 9692 "MachineIndependent/glslang_tab.cpp"
9694 case 431: /* type_specifier_nonarray: UTEXTURE1DARRAY */
9695 #line 2973 "MachineIndependent/glslang.y"
9697 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9698 (yyval.interm.type).basicType = EbtSampler;
9699 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
9701 #line 9702 "MachineIndependent/glslang_tab.cpp"
9704 case 432: /* type_specifier_nonarray: TEXTURE2DRECT */
9705 #line 2978 "MachineIndependent/glslang.y"
9707 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9708 (yyval.interm.type).basicType = EbtSampler;
9709 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
9711 #line 9712 "MachineIndependent/glslang_tab.cpp"
9714 case 433: /* type_specifier_nonarray: F16TEXTURE2DRECT */
9715 #line 2983 "MachineIndependent/glslang.y"
9717 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9718 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9719 (yyval.interm.type).basicType = EbtSampler;
9720 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
9722 #line 9723 "MachineIndependent/glslang_tab.cpp"
9725 case 434: /* type_specifier_nonarray: ITEXTURE2DRECT */
9726 #line 2989 "MachineIndependent/glslang.y"
9728 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9729 (yyval.interm.type).basicType = EbtSampler;
9730 (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
9732 #line 9733 "MachineIndependent/glslang_tab.cpp"
9735 case 435: /* type_specifier_nonarray: UTEXTURE2DRECT */
9736 #line 2994 "MachineIndependent/glslang.y"
9738 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9739 (yyval.interm.type).basicType = EbtSampler;
9740 (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
9742 #line 9743 "MachineIndependent/glslang_tab.cpp"
9745 case 436: /* type_specifier_nonarray: TEXTUREBUFFER */
9746 #line 2999 "MachineIndependent/glslang.y"
9748 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9749 (yyval.interm.type).basicType = EbtSampler;
9750 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
9752 #line 9753 "MachineIndependent/glslang_tab.cpp"
9755 case 437: /* type_specifier_nonarray: F16TEXTUREBUFFER */
9756 #line 3004 "MachineIndependent/glslang.y"
9758 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9759 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9760 (yyval.interm.type).basicType = EbtSampler;
9761 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
9763 #line 9764 "MachineIndependent/glslang_tab.cpp"
9766 case 438: /* type_specifier_nonarray: ITEXTUREBUFFER */
9767 #line 3010 "MachineIndependent/glslang.y"
9769 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9770 (yyval.interm.type).basicType = EbtSampler;
9771 (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
9773 #line 9774 "MachineIndependent/glslang_tab.cpp"
9776 case 439: /* type_specifier_nonarray: UTEXTUREBUFFER */
9777 #line 3015 "MachineIndependent/glslang.y"
9779 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9780 (yyval.interm.type).basicType = EbtSampler;
9781 (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
9783 #line 9784 "MachineIndependent/glslang_tab.cpp"
9786 case 440: /* type_specifier_nonarray: TEXTURE2DMS */
9787 #line 3020 "MachineIndependent/glslang.y"
9789 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9790 (yyval.interm.type).basicType = EbtSampler;
9791 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
9793 #line 9794 "MachineIndependent/glslang_tab.cpp"
9796 case 441: /* type_specifier_nonarray: F16TEXTURE2DMS */
9797 #line 3025 "MachineIndependent/glslang.y"
9799 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9800 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9801 (yyval.interm.type).basicType = EbtSampler;
9802 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
9804 #line 9805 "MachineIndependent/glslang_tab.cpp"
9807 case 442: /* type_specifier_nonarray: ITEXTURE2DMS */
9808 #line 3031 "MachineIndependent/glslang.y"
9810 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9811 (yyval.interm.type).basicType = EbtSampler;
9812 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
9814 #line 9815 "MachineIndependent/glslang_tab.cpp"
9817 case 443: /* type_specifier_nonarray: UTEXTURE2DMS */
9818 #line 3036 "MachineIndependent/glslang.y"
9820 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9821 (yyval.interm.type).basicType = EbtSampler;
9822 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
9824 #line 9825 "MachineIndependent/glslang_tab.cpp"
9827 case 444: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
9828 #line 3041 "MachineIndependent/glslang.y"
9830 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9831 (yyval.interm.type).basicType = EbtSampler;
9832 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
9834 #line 9835 "MachineIndependent/glslang_tab.cpp"
9837 case 445: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
9838 #line 3046 "MachineIndependent/glslang.y"
9840 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9841 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9842 (yyval.interm.type).basicType = EbtSampler;
9843 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
9845 #line 9846 "MachineIndependent/glslang_tab.cpp"
9848 case 446: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
9849 #line 3052 "MachineIndependent/glslang.y"
9851 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9852 (yyval.interm.type).basicType = EbtSampler;
9853 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
9855 #line 9856 "MachineIndependent/glslang_tab.cpp"
9858 case 447: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
9859 #line 3057 "MachineIndependent/glslang.y"
9861 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9862 (yyval.interm.type).basicType = EbtSampler;
9863 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
9865 #line 9866 "MachineIndependent/glslang_tab.cpp"
9868 case 448: /* type_specifier_nonarray: IMAGE1D */
9869 #line 3062 "MachineIndependent/glslang.y"
9871 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9872 (yyval.interm.type).basicType = EbtSampler;
9873 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
9875 #line 9876 "MachineIndependent/glslang_tab.cpp"
9878 case 449: /* type_specifier_nonarray: F16IMAGE1D */
9879 #line 3067 "MachineIndependent/glslang.y"
9881 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9882 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9883 (yyval.interm.type).basicType = EbtSampler;
9884 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
9886 #line 9887 "MachineIndependent/glslang_tab.cpp"
9889 case 450: /* type_specifier_nonarray: IIMAGE1D */
9890 #line 3073 "MachineIndependent/glslang.y"
9892 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9893 (yyval.interm.type).basicType = EbtSampler;
9894 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
9896 #line 9897 "MachineIndependent/glslang_tab.cpp"
9899 case 451: /* type_specifier_nonarray: UIMAGE1D */
9900 #line 3078 "MachineIndependent/glslang.y"
9902 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9903 (yyval.interm.type).basicType = EbtSampler;
9904 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
9906 #line 9907 "MachineIndependent/glslang_tab.cpp"
9909 case 452: /* type_specifier_nonarray: IMAGE2D */
9910 #line 3083 "MachineIndependent/glslang.y"
9912 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9913 (yyval.interm.type).basicType = EbtSampler;
9914 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
9916 #line 9917 "MachineIndependent/glslang_tab.cpp"
9919 case 453: /* type_specifier_nonarray: F16IMAGE2D */
9920 #line 3088 "MachineIndependent/glslang.y"
9922 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9923 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9924 (yyval.interm.type).basicType = EbtSampler;
9925 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
9927 #line 9928 "MachineIndependent/glslang_tab.cpp"
9930 case 454: /* type_specifier_nonarray: IIMAGE2D */
9931 #line 3094 "MachineIndependent/glslang.y"
9933 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9934 (yyval.interm.type).basicType = EbtSampler;
9935 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
9937 #line 9938 "MachineIndependent/glslang_tab.cpp"
9940 case 455: /* type_specifier_nonarray: UIMAGE2D */
9941 #line 3099 "MachineIndependent/glslang.y"
9943 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9944 (yyval.interm.type).basicType = EbtSampler;
9945 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
9947 #line 9948 "MachineIndependent/glslang_tab.cpp"
9950 case 456: /* type_specifier_nonarray: IMAGE3D */
9951 #line 3104 "MachineIndependent/glslang.y"
9953 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9954 (yyval.interm.type).basicType = EbtSampler;
9955 (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
9957 #line 9958 "MachineIndependent/glslang_tab.cpp"
9960 case 457: /* type_specifier_nonarray: F16IMAGE3D */
9961 #line 3109 "MachineIndependent/glslang.y"
9963 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9964 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9965 (yyval.interm.type).basicType = EbtSampler;
9966 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
9968 #line 9969 "MachineIndependent/glslang_tab.cpp"
9971 case 458: /* type_specifier_nonarray: IIMAGE3D */
9972 #line 3115 "MachineIndependent/glslang.y"
9974 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9975 (yyval.interm.type).basicType = EbtSampler;
9976 (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
9978 #line 9979 "MachineIndependent/glslang_tab.cpp"
9981 case 459: /* type_specifier_nonarray: UIMAGE3D */
9982 #line 3120 "MachineIndependent/glslang.y"
9984 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9985 (yyval.interm.type).basicType = EbtSampler;
9986 (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
9988 #line 9989 "MachineIndependent/glslang_tab.cpp"
9991 case 460: /* type_specifier_nonarray: IMAGE2DRECT */
9992 #line 3125 "MachineIndependent/glslang.y"
9994 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9995 (yyval.interm.type).basicType = EbtSampler;
9996 (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
9998 #line 9999 "MachineIndependent/glslang_tab.cpp"
10001 case 461: /* type_specifier_nonarray: F16IMAGE2DRECT */
10002 #line 3130 "MachineIndependent/glslang.y"
10004 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10005 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10006 (yyval.interm.type).basicType = EbtSampler;
10007 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
10009 #line 10010 "MachineIndependent/glslang_tab.cpp"
10012 case 462: /* type_specifier_nonarray: IIMAGE2DRECT */
10013 #line 3136 "MachineIndependent/glslang.y"
10015 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10016 (yyval.interm.type).basicType = EbtSampler;
10017 (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
10019 #line 10020 "MachineIndependent/glslang_tab.cpp"
10022 case 463: /* type_specifier_nonarray: UIMAGE2DRECT */
10023 #line 3141 "MachineIndependent/glslang.y"
10025 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10026 (yyval.interm.type).basicType = EbtSampler;
10027 (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
10029 #line 10030 "MachineIndependent/glslang_tab.cpp"
10032 case 464: /* type_specifier_nonarray: IMAGECUBE */
10033 #line 3146 "MachineIndependent/glslang.y"
10035 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10036 (yyval.interm.type).basicType = EbtSampler;
10037 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
10039 #line 10040 "MachineIndependent/glslang_tab.cpp"
10042 case 465: /* type_specifier_nonarray: F16IMAGECUBE */
10043 #line 3151 "MachineIndependent/glslang.y"
10045 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10046 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10047 (yyval.interm.type).basicType = EbtSampler;
10048 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
10050 #line 10051 "MachineIndependent/glslang_tab.cpp"
10053 case 466: /* type_specifier_nonarray: IIMAGECUBE */
10054 #line 3157 "MachineIndependent/glslang.y"
10056 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10057 (yyval.interm.type).basicType = EbtSampler;
10058 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
10060 #line 10061 "MachineIndependent/glslang_tab.cpp"
10063 case 467: /* type_specifier_nonarray: UIMAGECUBE */
10064 #line 3162 "MachineIndependent/glslang.y"
10066 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10067 (yyval.interm.type).basicType = EbtSampler;
10068 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
10070 #line 10071 "MachineIndependent/glslang_tab.cpp"
10073 case 468: /* type_specifier_nonarray: IMAGEBUFFER */
10074 #line 3167 "MachineIndependent/glslang.y"
10076 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10077 (yyval.interm.type).basicType = EbtSampler;
10078 (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
10080 #line 10081 "MachineIndependent/glslang_tab.cpp"
10083 case 469: /* type_specifier_nonarray: F16IMAGEBUFFER */
10084 #line 3172 "MachineIndependent/glslang.y"
10086 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10087 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10088 (yyval.interm.type).basicType = EbtSampler;
10089 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
10091 #line 10092 "MachineIndependent/glslang_tab.cpp"
10094 case 470: /* type_specifier_nonarray: IIMAGEBUFFER */
10095 #line 3178 "MachineIndependent/glslang.y"
10097 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10098 (yyval.interm.type).basicType = EbtSampler;
10099 (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
10101 #line 10102 "MachineIndependent/glslang_tab.cpp"
10104 case 471: /* type_specifier_nonarray: UIMAGEBUFFER */
10105 #line 3183 "MachineIndependent/glslang.y"
10107 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10108 (yyval.interm.type).basicType = EbtSampler;
10109 (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
10111 #line 10112 "MachineIndependent/glslang_tab.cpp"
10114 case 472: /* type_specifier_nonarray: IMAGE1DARRAY */
10115 #line 3188 "MachineIndependent/glslang.y"
10117 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10118 (yyval.interm.type).basicType = EbtSampler;
10119 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
10121 #line 10122 "MachineIndependent/glslang_tab.cpp"
10124 case 473: /* type_specifier_nonarray: F16IMAGE1DARRAY */
10125 #line 3193 "MachineIndependent/glslang.y"
10127 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10128 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10129 (yyval.interm.type).basicType = EbtSampler;
10130 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
10132 #line 10133 "MachineIndependent/glslang_tab.cpp"
10135 case 474: /* type_specifier_nonarray: IIMAGE1DARRAY */
10136 #line 3199 "MachineIndependent/glslang.y"
10138 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10139 (yyval.interm.type).basicType = EbtSampler;
10140 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
10142 #line 10143 "MachineIndependent/glslang_tab.cpp"
10145 case 475: /* type_specifier_nonarray: UIMAGE1DARRAY */
10146 #line 3204 "MachineIndependent/glslang.y"
10148 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10149 (yyval.interm.type).basicType = EbtSampler;
10150 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
10152 #line 10153 "MachineIndependent/glslang_tab.cpp"
10155 case 476: /* type_specifier_nonarray: IMAGE2DARRAY */
10156 #line 3209 "MachineIndependent/glslang.y"
10158 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10159 (yyval.interm.type).basicType = EbtSampler;
10160 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
10162 #line 10163 "MachineIndependent/glslang_tab.cpp"
10165 case 477: /* type_specifier_nonarray: F16IMAGE2DARRAY */
10166 #line 3214 "MachineIndependent/glslang.y"
10168 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10169 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10170 (yyval.interm.type).basicType = EbtSampler;
10171 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
10173 #line 10174 "MachineIndependent/glslang_tab.cpp"
10176 case 478: /* type_specifier_nonarray: IIMAGE2DARRAY */
10177 #line 3220 "MachineIndependent/glslang.y"
10179 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10180 (yyval.interm.type).basicType = EbtSampler;
10181 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
10183 #line 10184 "MachineIndependent/glslang_tab.cpp"
10186 case 479: /* type_specifier_nonarray: UIMAGE2DARRAY */
10187 #line 3225 "MachineIndependent/glslang.y"
10189 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10190 (yyval.interm.type).basicType = EbtSampler;
10191 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
10193 #line 10194 "MachineIndependent/glslang_tab.cpp"
10196 case 480: /* type_specifier_nonarray: IMAGECUBEARRAY */
10197 #line 3230 "MachineIndependent/glslang.y"
10199 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10200 (yyval.interm.type).basicType = EbtSampler;
10201 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
10203 #line 10204 "MachineIndependent/glslang_tab.cpp"
10206 case 481: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
10207 #line 3235 "MachineIndependent/glslang.y"
10209 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10210 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10211 (yyval.interm.type).basicType = EbtSampler;
10212 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
10214 #line 10215 "MachineIndependent/glslang_tab.cpp"
10217 case 482: /* type_specifier_nonarray: IIMAGECUBEARRAY */
10218 #line 3241 "MachineIndependent/glslang.y"
10220 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10221 (yyval.interm.type).basicType = EbtSampler;
10222 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
10224 #line 10225 "MachineIndependent/glslang_tab.cpp"
10227 case 483: /* type_specifier_nonarray: UIMAGECUBEARRAY */
10228 #line 3246 "MachineIndependent/glslang.y"
10230 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10231 (yyval.interm.type).basicType = EbtSampler;
10232 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
10234 #line 10235 "MachineIndependent/glslang_tab.cpp"
10237 case 484: /* type_specifier_nonarray: IMAGE2DMS */
10238 #line 3251 "MachineIndependent/glslang.y"
10240 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10241 (yyval.interm.type).basicType = EbtSampler;
10242 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
10244 #line 10245 "MachineIndependent/glslang_tab.cpp"
10247 case 485: /* type_specifier_nonarray: F16IMAGE2DMS */
10248 #line 3256 "MachineIndependent/glslang.y"
10250 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10251 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10252 (yyval.interm.type).basicType = EbtSampler;
10253 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
10255 #line 10256 "MachineIndependent/glslang_tab.cpp"
10258 case 486: /* type_specifier_nonarray: IIMAGE2DMS */
10259 #line 3262 "MachineIndependent/glslang.y"
10261 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10262 (yyval.interm.type).basicType = EbtSampler;
10263 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
10265 #line 10266 "MachineIndependent/glslang_tab.cpp"
10268 case 487: /* type_specifier_nonarray: UIMAGE2DMS */
10269 #line 3267 "MachineIndependent/glslang.y"
10271 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10272 (yyval.interm.type).basicType = EbtSampler;
10273 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
10275 #line 10276 "MachineIndependent/glslang_tab.cpp"
10278 case 488: /* type_specifier_nonarray: IMAGE2DMSARRAY */
10279 #line 3272 "MachineIndependent/glslang.y"
10281 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10282 (yyval.interm.type).basicType = EbtSampler;
10283 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
10285 #line 10286 "MachineIndependent/glslang_tab.cpp"
10288 case 489: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
10289 #line 3277 "MachineIndependent/glslang.y"
10291 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10292 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10293 (yyval.interm.type).basicType = EbtSampler;
10294 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
10296 #line 10297 "MachineIndependent/glslang_tab.cpp"
10299 case 490: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
10300 #line 3283 "MachineIndependent/glslang.y"
10302 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10303 (yyval.interm.type).basicType = EbtSampler;
10304 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
10306 #line 10307 "MachineIndependent/glslang_tab.cpp"
10309 case 491: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
10310 #line 3288 "MachineIndependent/glslang.y"
10312 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10313 (yyval.interm.type).basicType = EbtSampler;
10314 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
10316 #line 10317 "MachineIndependent/glslang_tab.cpp"
10319 case 492: /* type_specifier_nonarray: I64IMAGE1D */
10320 #line 3293 "MachineIndependent/glslang.y"
10322 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10323 (yyval.interm.type).basicType = EbtSampler;
10324 (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
10326 #line 10327 "MachineIndependent/glslang_tab.cpp"
10329 case 493: /* type_specifier_nonarray: U64IMAGE1D */
10330 #line 3298 "MachineIndependent/glslang.y"
10332 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10333 (yyval.interm.type).basicType = EbtSampler;
10334 (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
10336 #line 10337 "MachineIndependent/glslang_tab.cpp"
10339 case 494: /* type_specifier_nonarray: I64IMAGE2D */
10340 #line 3303 "MachineIndependent/glslang.y"
10342 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10343 (yyval.interm.type).basicType = EbtSampler;
10344 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
10346 #line 10347 "MachineIndependent/glslang_tab.cpp"
10349 case 495: /* type_specifier_nonarray: U64IMAGE2D */
10350 #line 3308 "MachineIndependent/glslang.y"
10352 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10353 (yyval.interm.type).basicType = EbtSampler;
10354 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
10356 #line 10357 "MachineIndependent/glslang_tab.cpp"
10359 case 496: /* type_specifier_nonarray: I64IMAGE3D */
10360 #line 3313 "MachineIndependent/glslang.y"
10362 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10363 (yyval.interm.type).basicType = EbtSampler;
10364 (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
10366 #line 10367 "MachineIndependent/glslang_tab.cpp"
10369 case 497: /* type_specifier_nonarray: U64IMAGE3D */
10370 #line 3318 "MachineIndependent/glslang.y"
10372 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10373 (yyval.interm.type).basicType = EbtSampler;
10374 (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
10376 #line 10377 "MachineIndependent/glslang_tab.cpp"
10379 case 498: /* type_specifier_nonarray: I64IMAGE2DRECT */
10380 #line 3323 "MachineIndependent/glslang.y"
10382 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10383 (yyval.interm.type).basicType = EbtSampler;
10384 (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
10386 #line 10387 "MachineIndependent/glslang_tab.cpp"
10389 case 499: /* type_specifier_nonarray: U64IMAGE2DRECT */
10390 #line 3328 "MachineIndependent/glslang.y"
10392 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10393 (yyval.interm.type).basicType = EbtSampler;
10394 (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
10396 #line 10397 "MachineIndependent/glslang_tab.cpp"
10399 case 500: /* type_specifier_nonarray: I64IMAGECUBE */
10400 #line 3333 "MachineIndependent/glslang.y"
10402 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10403 (yyval.interm.type).basicType = EbtSampler;
10404 (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
10406 #line 10407 "MachineIndependent/glslang_tab.cpp"
10409 case 501: /* type_specifier_nonarray: U64IMAGECUBE */
10410 #line 3338 "MachineIndependent/glslang.y"
10412 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10413 (yyval.interm.type).basicType = EbtSampler;
10414 (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
10416 #line 10417 "MachineIndependent/glslang_tab.cpp"
10419 case 502: /* type_specifier_nonarray: I64IMAGEBUFFER */
10420 #line 3343 "MachineIndependent/glslang.y"
10422 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10423 (yyval.interm.type).basicType = EbtSampler;
10424 (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
10426 #line 10427 "MachineIndependent/glslang_tab.cpp"
10429 case 503: /* type_specifier_nonarray: U64IMAGEBUFFER */
10430 #line 3348 "MachineIndependent/glslang.y"
10432 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10433 (yyval.interm.type).basicType = EbtSampler;
10434 (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
10436 #line 10437 "MachineIndependent/glslang_tab.cpp"
10439 case 504: /* type_specifier_nonarray: I64IMAGE1DARRAY */
10440 #line 3353 "MachineIndependent/glslang.y"
10442 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10443 (yyval.interm.type).basicType = EbtSampler;
10444 (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
10446 #line 10447 "MachineIndependent/glslang_tab.cpp"
10449 case 505: /* type_specifier_nonarray: U64IMAGE1DARRAY */
10450 #line 3358 "MachineIndependent/glslang.y"
10452 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10453 (yyval.interm.type).basicType = EbtSampler;
10454 (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
10456 #line 10457 "MachineIndependent/glslang_tab.cpp"
10459 case 506: /* type_specifier_nonarray: I64IMAGE2DARRAY */
10460 #line 3363 "MachineIndependent/glslang.y"
10462 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10463 (yyval.interm.type).basicType = EbtSampler;
10464 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
10466 #line 10467 "MachineIndependent/glslang_tab.cpp"
10469 case 507: /* type_specifier_nonarray: U64IMAGE2DARRAY */
10470 #line 3368 "MachineIndependent/glslang.y"
10472 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10473 (yyval.interm.type).basicType = EbtSampler;
10474 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
10476 #line 10477 "MachineIndependent/glslang_tab.cpp"
10479 case 508: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
10480 #line 3373 "MachineIndependent/glslang.y"
10482 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10483 (yyval.interm.type).basicType = EbtSampler;
10484 (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
10486 #line 10487 "MachineIndependent/glslang_tab.cpp"
10489 case 509: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
10490 #line 3378 "MachineIndependent/glslang.y"
10492 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10493 (yyval.interm.type).basicType = EbtSampler;
10494 (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
10496 #line 10497 "MachineIndependent/glslang_tab.cpp"
10499 case 510: /* type_specifier_nonarray: I64IMAGE2DMS */
10500 #line 3383 "MachineIndependent/glslang.y"
10502 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10503 (yyval.interm.type).basicType = EbtSampler;
10504 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
10506 #line 10507 "MachineIndependent/glslang_tab.cpp"
10509 case 511: /* type_specifier_nonarray: U64IMAGE2DMS */
10510 #line 3388 "MachineIndependent/glslang.y"
10512 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10513 (yyval.interm.type).basicType = EbtSampler;
10514 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
10516 #line 10517 "MachineIndependent/glslang_tab.cpp"
10519 case 512: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
10520 #line 3393 "MachineIndependent/glslang.y"
10522 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10523 (yyval.interm.type).basicType = EbtSampler;
10524 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
10526 #line 10527 "MachineIndependent/glslang_tab.cpp"
10529 case 513: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
10530 #line 3398 "MachineIndependent/glslang.y"
10532 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10533 (yyval.interm.type).basicType = EbtSampler;
10534 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
10536 #line 10537 "MachineIndependent/glslang_tab.cpp"
10539 case 514: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
10540 #line 3403 "MachineIndependent/glslang.y"
10541 { // GL_OES_EGL_image_external
10542 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10543 (yyval.interm.type).basicType = EbtSampler;
10544 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10545 (yyval.interm.type).sampler.external = true;
10547 #line 10548 "MachineIndependent/glslang_tab.cpp"
10550 case 515: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
10551 #line 3409 "MachineIndependent/glslang.y"
10552 { // GL_EXT_YUV_target
10553 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10554 (yyval.interm.type).basicType = EbtSampler;
10555 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10556 (yyval.interm.type).sampler.yuv = true;
10558 #line 10559 "MachineIndependent/glslang_tab.cpp"
10561 case 516: /* type_specifier_nonarray: SUBPASSINPUT */
10562 #line 3415 "MachineIndependent/glslang.y"
10564 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10565 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10566 (yyval.interm.type).basicType = EbtSampler;
10567 (yyval.interm.type).sampler.setSubpass(EbtFloat);
10569 #line 10570 "MachineIndependent/glslang_tab.cpp"
10572 case 517: /* type_specifier_nonarray: SUBPASSINPUTMS */
10573 #line 3421 "MachineIndependent/glslang.y"
10575 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10576 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10577 (yyval.interm.type).basicType = EbtSampler;
10578 (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
10580 #line 10581 "MachineIndependent/glslang_tab.cpp"
10583 case 518: /* type_specifier_nonarray: F16SUBPASSINPUT */
10584 #line 3427 "MachineIndependent/glslang.y"
10586 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10587 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10588 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10589 (yyval.interm.type).basicType = EbtSampler;
10590 (yyval.interm.type).sampler.setSubpass(EbtFloat16);
10592 #line 10593 "MachineIndependent/glslang_tab.cpp"
10595 case 519: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
10596 #line 3434 "MachineIndependent/glslang.y"
10598 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10599 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10600 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10601 (yyval.interm.type).basicType = EbtSampler;
10602 (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
10604 #line 10605 "MachineIndependent/glslang_tab.cpp"
10607 case 520: /* type_specifier_nonarray: ISUBPASSINPUT */
10608 #line 3441 "MachineIndependent/glslang.y"
10610 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10611 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10612 (yyval.interm.type).basicType = EbtSampler;
10613 (yyval.interm.type).sampler.setSubpass(EbtInt);
10615 #line 10616 "MachineIndependent/glslang_tab.cpp"
10618 case 521: /* type_specifier_nonarray: ISUBPASSINPUTMS */
10619 #line 3447 "MachineIndependent/glslang.y"
10621 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10622 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10623 (yyval.interm.type).basicType = EbtSampler;
10624 (yyval.interm.type).sampler.setSubpass(EbtInt, true);
10626 #line 10627 "MachineIndependent/glslang_tab.cpp"
10629 case 522: /* type_specifier_nonarray: USUBPASSINPUT */
10630 #line 3453 "MachineIndependent/glslang.y"
10632 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10633 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10634 (yyval.interm.type).basicType = EbtSampler;
10635 (yyval.interm.type).sampler.setSubpass(EbtUint);
10637 #line 10638 "MachineIndependent/glslang_tab.cpp"
10640 case 523: /* type_specifier_nonarray: USUBPASSINPUTMS */
10641 #line 3459 "MachineIndependent/glslang.y"
10643 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10644 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10645 (yyval.interm.type).basicType = EbtSampler;
10646 (yyval.interm.type).sampler.setSubpass(EbtUint, true);
10648 #line 10649 "MachineIndependent/glslang_tab.cpp"
10651 case 524: /* type_specifier_nonarray: FCOOPMATNV */
10652 #line 3465 "MachineIndependent/glslang.y"
10654 parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10655 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10656 (yyval.interm.type).basicType = EbtFloat;
10657 (yyval.interm.type).coopmat = true;
10659 #line 10660 "MachineIndependent/glslang_tab.cpp"
10662 case 525: /* type_specifier_nonarray: ICOOPMATNV */
10663 #line 3471 "MachineIndependent/glslang.y"
10665 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10666 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10667 (yyval.interm.type).basicType = EbtInt;
10668 (yyval.interm.type).coopmat = true;
10670 #line 10671 "MachineIndependent/glslang_tab.cpp"
10673 case 526: /* type_specifier_nonarray: UCOOPMATNV */
10674 #line 3477 "MachineIndependent/glslang.y"
10676 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10677 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10678 (yyval.interm.type).basicType = EbtUint;
10679 (yyval.interm.type).coopmat = true;
10681 #line 10682 "MachineIndependent/glslang_tab.cpp"
10684 case 527: /* type_specifier_nonarray: spirv_type_specifier */
10685 #line 3483 "MachineIndependent/glslang.y"
10687 parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
10688 (yyval.interm.type) = (yyvsp[0].interm.type);
10690 #line 10691 "MachineIndependent/glslang_tab.cpp"
10693 case 528: /* type_specifier_nonarray: struct_specifier */
10694 #line 3488 "MachineIndependent/glslang.y"
10696 (yyval.interm.type) = (yyvsp[0].interm.type);
10697 (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
10698 parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
10700 #line 10701 "MachineIndependent/glslang_tab.cpp"
10703 case 529: /* type_specifier_nonarray: TYPE_NAME */
10704 #line 3493 "MachineIndependent/glslang.y"
10707 // This is for user defined type names. The lexical phase looked up the
10710 if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
10711 const TType& structure = variable->getType();
10712 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10713 (yyval.interm.type).basicType = EbtStruct;
10714 (yyval.interm.type).userDef = &structure;
10716 parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
10718 #line 10719 "MachineIndependent/glslang_tab.cpp"
10721 case 530: /* precision_qualifier: HIGH_PRECISION */
10722 #line 3509 "MachineIndependent/glslang.y"
10724 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
10725 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10726 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
10728 #line 10729 "MachineIndependent/glslang_tab.cpp"
10731 case 531: /* precision_qualifier: MEDIUM_PRECISION */
10732 #line 3514 "MachineIndependent/glslang.y"
10734 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
10735 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10736 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
10738 #line 10739 "MachineIndependent/glslang_tab.cpp"
10741 case 532: /* precision_qualifier: LOW_PRECISION */
10742 #line 3519 "MachineIndependent/glslang.y"
10744 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
10745 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10746 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
10748 #line 10749 "MachineIndependent/glslang_tab.cpp"
10751 case 533: /* $@3: %empty */
10752 #line 3527 "MachineIndependent/glslang.y"
10753 { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
10754 #line 10755 "MachineIndependent/glslang_tab.cpp"
10757 case 534: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
10758 #line 3527 "MachineIndependent/glslang.y"
10760 TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
10761 parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
10762 TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
10763 if (! parseContext.symbolTable.insert(*userTypeDef))
10764 parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
10765 (yyval.interm.type).init((yyvsp[-5].lex).loc);
10766 (yyval.interm.type).basicType = EbtStruct;
10767 (yyval.interm.type).userDef = structure;
10768 --parseContext.structNestingLevel;
10770 #line 10771 "MachineIndependent/glslang_tab.cpp"
10773 case 535: /* $@4: %empty */
10774 #line 3538 "MachineIndependent/glslang.y"
10775 { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
10776 #line 10777 "MachineIndependent/glslang_tab.cpp"
10779 case 536: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
10780 #line 3538 "MachineIndependent/glslang.y"
10782 TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
10783 (yyval.interm.type).init((yyvsp[-4].lex).loc);
10784 (yyval.interm.type).basicType = EbtStruct;
10785 (yyval.interm.type).userDef = structure;
10786 --parseContext.structNestingLevel;
10788 #line 10789 "MachineIndependent/glslang_tab.cpp"
10791 case 537: /* struct_declaration_list: struct_declaration */
10792 #line 3548 "MachineIndependent/glslang.y"
10794 (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
10796 #line 10797 "MachineIndependent/glslang_tab.cpp"
10799 case 538: /* struct_declaration_list: struct_declaration_list struct_declaration */
10800 #line 3551 "MachineIndependent/glslang.y"
10802 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10803 for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
10804 for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
10805 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
10806 parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
10808 (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
10811 #line 10812 "MachineIndependent/glslang_tab.cpp"
10814 case 539: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
10815 #line 3564 "MachineIndependent/glslang.y"
10817 if ((yyvsp[-2].interm.type).arraySizes) {
10818 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10819 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10820 if (parseContext.isEsProfile())
10821 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10824 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10826 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10827 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10829 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10830 TType type((yyvsp[-2].interm.type));
10831 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10832 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10833 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10834 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10835 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10838 #line 10839 "MachineIndependent/glslang_tab.cpp"
10841 case 540: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
10842 #line 3586 "MachineIndependent/glslang.y"
10844 if ((yyvsp[-2].interm.type).arraySizes) {
10845 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10846 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10847 if (parseContext.isEsProfile())
10848 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10851 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10853 parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
10854 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10855 parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
10856 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10858 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10859 TType type((yyvsp[-2].interm.type));
10860 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10861 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10862 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10863 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10864 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10867 #line 10868 "MachineIndependent/glslang_tab.cpp"
10870 case 541: /* struct_declarator_list: struct_declarator */
10871 #line 3613 "MachineIndependent/glslang.y"
10873 (yyval.interm.typeList) = new TTypeList;
10874 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10876 #line 10877 "MachineIndependent/glslang_tab.cpp"
10879 case 542: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
10880 #line 3617 "MachineIndependent/glslang.y"
10882 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10884 #line 10885 "MachineIndependent/glslang_tab.cpp"
10887 case 543: /* struct_declarator: IDENTIFIER */
10888 #line 3623 "MachineIndependent/glslang.y"
10890 (yyval.interm.typeLine).type = new TType(EbtVoid);
10891 (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
10892 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
10894 #line 10895 "MachineIndependent/glslang_tab.cpp"
10897 case 544: /* struct_declarator: IDENTIFIER array_specifier */
10898 #line 3628 "MachineIndependent/glslang.y"
10900 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
10902 (yyval.interm.typeLine).type = new TType(EbtVoid);
10903 (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
10904 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
10905 (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
10907 #line 10908 "MachineIndependent/glslang_tab.cpp"
10910 case 545: /* initializer: assignment_expression */
10911 #line 3639 "MachineIndependent/glslang.y"
10913 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10915 #line 10916 "MachineIndependent/glslang_tab.cpp"
10918 case 546: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
10919 #line 3643 "MachineIndependent/glslang.y"
10921 const char* initFeature = "{ } style initializers";
10922 parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
10923 parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10924 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
10926 #line 10927 "MachineIndependent/glslang_tab.cpp"
10929 case 547: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
10930 #line 3649 "MachineIndependent/glslang.y"
10932 const char* initFeature = "{ } style initializers";
10933 parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
10934 parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10935 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
10937 #line 10938 "MachineIndependent/glslang_tab.cpp"
10940 case 548: /* initializer: LEFT_BRACE RIGHT_BRACE */
10941 #line 3655 "MachineIndependent/glslang.y"
10943 const char* initFeature = "empty { } initializer";
10944 parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10945 parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10946 (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
10948 #line 10949 "MachineIndependent/glslang_tab.cpp"
10951 case 549: /* initializer_list: initializer */
10952 #line 3666 "MachineIndependent/glslang.y"
10954 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
10956 #line 10957 "MachineIndependent/glslang_tab.cpp"
10959 case 550: /* initializer_list: initializer_list COMMA initializer */
10960 #line 3669 "MachineIndependent/glslang.y"
10962 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
10964 #line 10965 "MachineIndependent/glslang_tab.cpp"
10967 case 551: /* declaration_statement: declaration */
10968 #line 3676 "MachineIndependent/glslang.y"
10969 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10970 #line 10971 "MachineIndependent/glslang_tab.cpp"
10973 case 552: /* statement: compound_statement */
10974 #line 3680 "MachineIndependent/glslang.y"
10975 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10976 #line 10977 "MachineIndependent/glslang_tab.cpp"
10979 case 553: /* statement: simple_statement */
10980 #line 3681 "MachineIndependent/glslang.y"
10981 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10982 #line 10983 "MachineIndependent/glslang_tab.cpp"
10985 case 554: /* simple_statement: declaration_statement */
10986 #line 3687 "MachineIndependent/glslang.y"
10987 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10988 #line 10989 "MachineIndependent/glslang_tab.cpp"
10991 case 555: /* simple_statement: expression_statement */
10992 #line 3688 "MachineIndependent/glslang.y"
10993 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10994 #line 10995 "MachineIndependent/glslang_tab.cpp"
10997 case 556: /* simple_statement: selection_statement */
10998 #line 3689 "MachineIndependent/glslang.y"
10999 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11000 #line 11001 "MachineIndependent/glslang_tab.cpp"
11003 case 557: /* simple_statement: switch_statement */
11004 #line 3690 "MachineIndependent/glslang.y"
11005 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11006 #line 11007 "MachineIndependent/glslang_tab.cpp"
11009 case 558: /* simple_statement: case_label */
11010 #line 3691 "MachineIndependent/glslang.y"
11011 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11012 #line 11013 "MachineIndependent/glslang_tab.cpp"
11015 case 559: /* simple_statement: iteration_statement */
11016 #line 3692 "MachineIndependent/glslang.y"
11017 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11018 #line 11019 "MachineIndependent/glslang_tab.cpp"
11021 case 560: /* simple_statement: jump_statement */
11022 #line 3693 "MachineIndependent/glslang.y"
11023 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11024 #line 11025 "MachineIndependent/glslang_tab.cpp"
11027 case 561: /* simple_statement: demote_statement */
11028 #line 3695 "MachineIndependent/glslang.y"
11029 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11030 #line 11031 "MachineIndependent/glslang_tab.cpp"
11033 case 562: /* demote_statement: DEMOTE SEMICOLON */
11034 #line 3701 "MachineIndependent/glslang.y"
11036 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
11037 parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
11038 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
11040 #line 11041 "MachineIndependent/glslang_tab.cpp"
11043 case 563: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
11044 #line 3710 "MachineIndependent/glslang.y"
11045 { (yyval.interm.intermNode) = 0; }
11046 #line 11047 "MachineIndependent/glslang_tab.cpp"
11049 case 564: /* $@5: %empty */
11050 #line 3711 "MachineIndependent/glslang.y"
11052 parseContext.symbolTable.push();
11053 ++parseContext.statementNestingLevel;
11055 #line 11056 "MachineIndependent/glslang_tab.cpp"
11058 case 565: /* $@6: %empty */
11059 #line 3715 "MachineIndependent/glslang.y"
11061 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11062 --parseContext.statementNestingLevel;
11064 #line 11065 "MachineIndependent/glslang_tab.cpp"
11067 case 566: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
11068 #line 3719 "MachineIndependent/glslang.y"
11070 if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
11071 (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11072 (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
11074 #line 11075 "MachineIndependent/glslang_tab.cpp"
11077 case 567: /* statement_no_new_scope: compound_statement_no_new_scope */
11078 #line 3727 "MachineIndependent/glslang.y"
11079 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11080 #line 11081 "MachineIndependent/glslang_tab.cpp"
11083 case 568: /* statement_no_new_scope: simple_statement */
11084 #line 3728 "MachineIndependent/glslang.y"
11085 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11086 #line 11087 "MachineIndependent/glslang_tab.cpp"
11089 case 569: /* $@7: %empty */
11090 #line 3732 "MachineIndependent/glslang.y"
11092 ++parseContext.controlFlowNestingLevel;
11094 #line 11095 "MachineIndependent/glslang_tab.cpp"
11097 case 570: /* statement_scoped: $@7 compound_statement */
11098 #line 3735 "MachineIndependent/glslang.y"
11100 --parseContext.controlFlowNestingLevel;
11101 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11103 #line 11104 "MachineIndependent/glslang_tab.cpp"
11106 case 571: /* $@8: %empty */
11107 #line 3739 "MachineIndependent/glslang.y"
11109 parseContext.symbolTable.push();
11110 ++parseContext.statementNestingLevel;
11111 ++parseContext.controlFlowNestingLevel;
11113 #line 11114 "MachineIndependent/glslang_tab.cpp"
11116 case 572: /* statement_scoped: $@8 simple_statement */
11117 #line 3744 "MachineIndependent/glslang.y"
11119 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11120 --parseContext.statementNestingLevel;
11121 --parseContext.controlFlowNestingLevel;
11122 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11124 #line 11125 "MachineIndependent/glslang_tab.cpp"
11127 case 573: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
11128 #line 3753 "MachineIndependent/glslang.y"
11130 (yyval.interm.intermNode) = 0;
11132 #line 11133 "MachineIndependent/glslang_tab.cpp"
11135 case 574: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
11136 #line 3756 "MachineIndependent/glslang.y"
11138 if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
11139 (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11140 (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
11142 #line 11143 "MachineIndependent/glslang_tab.cpp"
11145 case 575: /* statement_list: statement */
11146 #line 3764 "MachineIndependent/glslang.y"
11148 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
11149 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11150 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11151 parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
11152 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
11155 #line 11156 "MachineIndependent/glslang_tab.cpp"
11158 case 576: /* statement_list: statement_list statement */
11159 #line 3772 "MachineIndependent/glslang.y"
11161 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11162 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11163 parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
11164 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
11166 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11168 #line 11169 "MachineIndependent/glslang_tab.cpp"
11171 case 577: /* expression_statement: SEMICOLON */
11172 #line 3783 "MachineIndependent/glslang.y"
11173 { (yyval.interm.intermNode) = 0; }
11174 #line 11175 "MachineIndependent/glslang_tab.cpp"
11177 case 578: /* expression_statement: expression SEMICOLON */
11178 #line 3784 "MachineIndependent/glslang.y"
11179 { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
11180 #line 11181 "MachineIndependent/glslang_tab.cpp"
11183 case 579: /* selection_statement: selection_statement_nonattributed */
11184 #line 3788 "MachineIndependent/glslang.y"
11186 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11188 #line 11189 "MachineIndependent/glslang_tab.cpp"
11191 case 580: /* selection_statement: attribute selection_statement_nonattributed */
11192 #line 3792 "MachineIndependent/glslang.y"
11194 parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11195 parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11196 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11198 #line 11199 "MachineIndependent/glslang_tab.cpp"
11201 case 581: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
11202 #line 3800 "MachineIndependent/glslang.y"
11204 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11205 (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
11207 #line 11208 "MachineIndependent/glslang_tab.cpp"
11210 case 582: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
11211 #line 3807 "MachineIndependent/glslang.y"
11213 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
11214 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
11216 #line 11217 "MachineIndependent/glslang_tab.cpp"
11219 case 583: /* selection_rest_statement: statement_scoped */
11220 #line 3811 "MachineIndependent/glslang.y"
11222 (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
11223 (yyval.interm.nodePair).node2 = 0;
11225 #line 11226 "MachineIndependent/glslang_tab.cpp"
11228 case 584: /* condition: expression */
11229 #line 3819 "MachineIndependent/glslang.y"
11231 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11232 parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
11234 #line 11235 "MachineIndependent/glslang_tab.cpp"
11237 case 585: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
11238 #line 3823 "MachineIndependent/glslang.y"
11240 parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
11242 TType type((yyvsp[-3].interm.type));
11243 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
11245 (yyval.interm.intermTypedNode) = initNode->getAsTyped();
11247 (yyval.interm.intermTypedNode) = 0;
11249 #line 11250 "MachineIndependent/glslang_tab.cpp"
11252 case 586: /* switch_statement: switch_statement_nonattributed */
11253 #line 3836 "MachineIndependent/glslang.y"
11255 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11257 #line 11258 "MachineIndependent/glslang_tab.cpp"
11260 case 587: /* switch_statement: attribute switch_statement_nonattributed */
11261 #line 3840 "MachineIndependent/glslang.y"
11263 parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11264 parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11265 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11267 #line 11268 "MachineIndependent/glslang_tab.cpp"
11270 case 588: /* $@9: %empty */
11271 #line 3848 "MachineIndependent/glslang.y"
11273 // start new switch sequence on the switch stack
11274 ++parseContext.controlFlowNestingLevel;
11275 ++parseContext.statementNestingLevel;
11276 parseContext.switchSequenceStack.push_back(new TIntermSequence);
11277 parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
11278 parseContext.symbolTable.push();
11280 #line 11281 "MachineIndependent/glslang_tab.cpp"
11283 case 589: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
11284 #line 3856 "MachineIndependent/glslang.y"
11286 (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
11287 delete parseContext.switchSequenceStack.back();
11288 parseContext.switchSequenceStack.pop_back();
11289 parseContext.switchLevel.pop_back();
11290 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11291 --parseContext.statementNestingLevel;
11292 --parseContext.controlFlowNestingLevel;
11294 #line 11295 "MachineIndependent/glslang_tab.cpp"
11297 case 590: /* switch_statement_list: %empty */
11298 #line 3868 "MachineIndependent/glslang.y"
11300 (yyval.interm.intermNode) = 0;
11302 #line 11303 "MachineIndependent/glslang_tab.cpp"
11305 case 591: /* switch_statement_list: statement_list */
11306 #line 3871 "MachineIndependent/glslang.y"
11308 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11310 #line 11311 "MachineIndependent/glslang_tab.cpp"
11313 case 592: /* case_label: CASE expression COLON */
11314 #line 3877 "MachineIndependent/glslang.y"
11316 (yyval.interm.intermNode) = 0;
11317 if (parseContext.switchLevel.size() == 0)
11318 parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
11319 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11320 parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
11322 parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
11323 parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
11324 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
11327 #line 11328 "MachineIndependent/glslang_tab.cpp"
11330 case 593: /* case_label: DEFAULT COLON */
11331 #line 3889 "MachineIndependent/glslang.y"
11333 (yyval.interm.intermNode) = 0;
11334 if (parseContext.switchLevel.size() == 0)
11335 parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
11336 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11337 parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
11339 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
11341 #line 11342 "MachineIndependent/glslang_tab.cpp"
11344 case 594: /* iteration_statement: iteration_statement_nonattributed */
11345 #line 3901 "MachineIndependent/glslang.y"
11347 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11349 #line 11350 "MachineIndependent/glslang_tab.cpp"
11352 case 595: /* iteration_statement: attribute iteration_statement_nonattributed */
11353 #line 3905 "MachineIndependent/glslang.y"
11355 parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11356 parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11357 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11359 #line 11360 "MachineIndependent/glslang_tab.cpp"
11362 case 596: /* $@10: %empty */
11363 #line 3913 "MachineIndependent/glslang.y"
11365 if (! parseContext.limits.whileLoops)
11366 parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
11367 parseContext.symbolTable.push();
11368 ++parseContext.loopNestingLevel;
11369 ++parseContext.statementNestingLevel;
11370 ++parseContext.controlFlowNestingLevel;
11372 #line 11373 "MachineIndependent/glslang_tab.cpp"
11375 case 597: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
11376 #line 3921 "MachineIndependent/glslang.y"
11378 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11379 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
11380 --parseContext.loopNestingLevel;
11381 --parseContext.statementNestingLevel;
11382 --parseContext.controlFlowNestingLevel;
11384 #line 11385 "MachineIndependent/glslang_tab.cpp"
11387 case 598: /* $@11: %empty */
11388 #line 3928 "MachineIndependent/glslang.y"
11390 ++parseContext.loopNestingLevel;
11391 ++parseContext.statementNestingLevel;
11392 ++parseContext.controlFlowNestingLevel;
11394 #line 11395 "MachineIndependent/glslang_tab.cpp"
11397 case 599: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
11398 #line 3933 "MachineIndependent/glslang.y"
11400 if (! parseContext.limits.whileLoops)
11401 parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
11403 parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11405 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
11406 --parseContext.loopNestingLevel;
11407 --parseContext.statementNestingLevel;
11408 --parseContext.controlFlowNestingLevel;
11410 #line 11411 "MachineIndependent/glslang_tab.cpp"
11413 case 600: /* $@12: %empty */
11414 #line 3944 "MachineIndependent/glslang.y"
11416 parseContext.symbolTable.push();
11417 ++parseContext.loopNestingLevel;
11418 ++parseContext.statementNestingLevel;
11419 ++parseContext.controlFlowNestingLevel;
11421 #line 11422 "MachineIndependent/glslang_tab.cpp"
11424 case 601: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
11425 #line 3950 "MachineIndependent/glslang.y"
11427 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11428 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
11429 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);
11430 if (! parseContext.limits.nonInductiveForLoops)
11431 parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
11432 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
11433 (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11434 --parseContext.loopNestingLevel;
11435 --parseContext.statementNestingLevel;
11436 --parseContext.controlFlowNestingLevel;
11438 #line 11439 "MachineIndependent/glslang_tab.cpp"
11441 case 602: /* for_init_statement: expression_statement */
11442 #line 3965 "MachineIndependent/glslang.y"
11444 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11446 #line 11447 "MachineIndependent/glslang_tab.cpp"
11449 case 603: /* for_init_statement: declaration_statement */
11450 #line 3968 "MachineIndependent/glslang.y"
11452 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11454 #line 11455 "MachineIndependent/glslang_tab.cpp"
11457 case 604: /* conditionopt: condition */
11458 #line 3974 "MachineIndependent/glslang.y"
11460 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11462 #line 11463 "MachineIndependent/glslang_tab.cpp"
11465 case 605: /* conditionopt: %empty */
11466 #line 3977 "MachineIndependent/glslang.y"
11468 (yyval.interm.intermTypedNode) = 0;
11470 #line 11471 "MachineIndependent/glslang_tab.cpp"
11473 case 606: /* for_rest_statement: conditionopt SEMICOLON */
11474 #line 3983 "MachineIndependent/glslang.y"
11476 (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
11477 (yyval.interm.nodePair).node2 = 0;
11479 #line 11480 "MachineIndependent/glslang_tab.cpp"
11482 case 607: /* for_rest_statement: conditionopt SEMICOLON expression */
11483 #line 3987 "MachineIndependent/glslang.y"
11485 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
11486 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
11488 #line 11489 "MachineIndependent/glslang_tab.cpp"
11491 case 608: /* jump_statement: CONTINUE SEMICOLON */
11492 #line 3994 "MachineIndependent/glslang.y"
11494 if (parseContext.loopNestingLevel <= 0)
11495 parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
11496 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
11498 #line 11499 "MachineIndependent/glslang_tab.cpp"
11501 case 609: /* jump_statement: BREAK SEMICOLON */
11502 #line 3999 "MachineIndependent/glslang.y"
11504 if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
11505 parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
11506 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
11508 #line 11509 "MachineIndependent/glslang_tab.cpp"
11511 case 610: /* jump_statement: RETURN SEMICOLON */
11512 #line 4004 "MachineIndependent/glslang.y"
11514 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
11515 if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
11516 parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
11517 if (parseContext.inMain)
11518 parseContext.postEntryPointReturn = true;
11520 #line 11521 "MachineIndependent/glslang_tab.cpp"
11523 case 611: /* jump_statement: RETURN expression SEMICOLON */
11524 #line 4011 "MachineIndependent/glslang.y"
11526 (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
11528 #line 11529 "MachineIndependent/glslang_tab.cpp"
11531 case 612: /* jump_statement: DISCARD SEMICOLON */
11532 #line 4014 "MachineIndependent/glslang.y"
11534 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
11535 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
11537 #line 11538 "MachineIndependent/glslang_tab.cpp"
11540 case 613: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
11541 #line 4018 "MachineIndependent/glslang.y"
11543 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
11544 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
11546 #line 11547 "MachineIndependent/glslang_tab.cpp"
11549 case 614: /* jump_statement: TERMINATE_RAY SEMICOLON */
11550 #line 4023 "MachineIndependent/glslang.y"
11552 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
11553 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
11555 #line 11556 "MachineIndependent/glslang_tab.cpp"
11558 case 615: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
11559 #line 4027 "MachineIndependent/glslang.y"
11561 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
11562 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
11564 #line 11565 "MachineIndependent/glslang_tab.cpp"
11567 case 616: /* translation_unit: external_declaration */
11568 #line 4037 "MachineIndependent/glslang.y"
11570 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11571 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11573 #line 11574 "MachineIndependent/glslang_tab.cpp"
11576 case 617: /* translation_unit: translation_unit external_declaration */
11577 #line 4041 "MachineIndependent/glslang.y"
11579 if ((yyvsp[0].interm.intermNode) != nullptr) {
11580 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11581 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11584 #line 11585 "MachineIndependent/glslang_tab.cpp"
11587 case 618: /* external_declaration: function_definition */
11588 #line 4050 "MachineIndependent/glslang.y"
11590 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11592 #line 11593 "MachineIndependent/glslang_tab.cpp"
11595 case 619: /* external_declaration: declaration */
11596 #line 4053 "MachineIndependent/glslang.y"
11598 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11600 #line 11601 "MachineIndependent/glslang_tab.cpp"
11603 case 620: /* external_declaration: SEMICOLON */
11604 #line 4057 "MachineIndependent/glslang.y"
11606 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
11607 parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
11608 (yyval.interm.intermNode) = nullptr;
11610 #line 11611 "MachineIndependent/glslang_tab.cpp"
11613 case 621: /* $@13: %empty */
11614 #line 4066 "MachineIndependent/glslang.y"
11616 (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
11617 (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
11619 // For ES 100 only, according to ES shading language 100 spec: A function
11620 // body has a scope nested inside the function's definition.
11621 if (parseContext.profile == EEsProfile && parseContext.version == 100)
11623 parseContext.symbolTable.push();
11624 ++parseContext.statementNestingLevel;
11627 #line 11628 "MachineIndependent/glslang_tab.cpp"
11630 case 622: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
11631 #line 4078 "MachineIndependent/glslang.y"
11633 // May be best done as post process phase on intermediate code
11634 if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
11635 parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
11636 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11637 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
11638 parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
11639 (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
11641 // store the pragma information for debug and optimize and other vendor specific
11642 // information. This information can be queried from the parse tree
11643 (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
11644 (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
11645 (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
11647 // Set currentFunctionType to empty pointer when goes outside of the function
11648 parseContext.currentFunctionType = nullptr;
11650 // For ES 100 only, according to ES shading language 100 spec: A function
11651 // body has a scope nested inside the function's definition.
11652 if (parseContext.profile == EEsProfile && parseContext.version == 100)
11654 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11655 --parseContext.statementNestingLevel;
11658 #line 11659 "MachineIndependent/glslang_tab.cpp"
11661 case 623: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
11662 #line 4108 "MachineIndependent/glslang.y"
11664 (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
11666 #line 11667 "MachineIndependent/glslang_tab.cpp"
11669 case 624: /* attribute_list: single_attribute */
11670 #line 4113 "MachineIndependent/glslang.y"
11672 (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
11674 #line 11675 "MachineIndependent/glslang_tab.cpp"
11677 case 625: /* attribute_list: attribute_list COMMA single_attribute */
11678 #line 4116 "MachineIndependent/glslang.y"
11680 (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
11682 #line 11683 "MachineIndependent/glslang_tab.cpp"
11685 case 626: /* single_attribute: IDENTIFIER */
11686 #line 4121 "MachineIndependent/glslang.y"
11688 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
11690 #line 11691 "MachineIndependent/glslang_tab.cpp"
11693 case 627: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
11694 #line 4124 "MachineIndependent/glslang.y"
11696 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
11698 #line 11699 "MachineIndependent/glslang_tab.cpp"
11701 case 628: /* spirv_requirements_list: spirv_requirements_parameter */
11702 #line 4131 "MachineIndependent/glslang.y"
11704 (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
11706 #line 11707 "MachineIndependent/glslang_tab.cpp"
11709 case 629: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */
11710 #line 4134 "MachineIndependent/glslang.y"
11712 (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
11714 #line 11715 "MachineIndependent/glslang_tab.cpp"
11717 case 630: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */
11718 #line 4139 "MachineIndependent/glslang.y"
11720 (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
11722 #line 11723 "MachineIndependent/glslang_tab.cpp"
11725 case 631: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */
11726 #line 4142 "MachineIndependent/glslang.y"
11728 (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11730 #line 11731 "MachineIndependent/glslang_tab.cpp"
11733 case 632: /* spirv_extension_list: STRING_LITERAL */
11734 #line 4147 "MachineIndependent/glslang.y"
11736 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11738 #line 11739 "MachineIndependent/glslang_tab.cpp"
11741 case 633: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */
11742 #line 4150 "MachineIndependent/glslang.y"
11744 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11746 #line 11747 "MachineIndependent/glslang_tab.cpp"
11749 case 634: /* spirv_capability_list: INTCONSTANT */
11750 #line 4155 "MachineIndependent/glslang.y"
11752 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11754 #line 11755 "MachineIndependent/glslang_tab.cpp"
11757 case 635: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */
11758 #line 4158 "MachineIndependent/glslang.y"
11760 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11762 #line 11763 "MachineIndependent/glslang_tab.cpp"
11765 case 636: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
11766 #line 4163 "MachineIndependent/glslang.y"
11768 parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11769 (yyval.interm.intermNode) = 0;
11771 #line 11772 "MachineIndependent/glslang_tab.cpp"
11774 case 637: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
11775 #line 4167 "MachineIndependent/glslang.y"
11777 parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11778 parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11779 (yyval.interm.intermNode) = 0;
11781 #line 11782 "MachineIndependent/glslang_tab.cpp"
11784 case 638: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
11785 #line 4172 "MachineIndependent/glslang.y"
11787 parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11788 (yyval.interm.intermNode) = 0;
11790 #line 11791 "MachineIndependent/glslang_tab.cpp"
11793 case 639: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
11794 #line 4176 "MachineIndependent/glslang.y"
11796 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11797 parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11798 (yyval.interm.intermNode) = 0;
11800 #line 11801 "MachineIndependent/glslang_tab.cpp"
11803 case 640: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
11804 #line 4181 "MachineIndependent/glslang.y"
11806 parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11807 (yyval.interm.intermNode) = 0;
11809 #line 11810 "MachineIndependent/glslang_tab.cpp"
11812 case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
11813 #line 4185 "MachineIndependent/glslang.y"
11815 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11816 parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11817 (yyval.interm.intermNode) = 0;
11819 #line 11820 "MachineIndependent/glslang_tab.cpp"
11822 case 642: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */
11823 #line 4192 "MachineIndependent/glslang.y"
11825 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
11827 #line 11828 "MachineIndependent/glslang_tab.cpp"
11830 case 643: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */
11831 #line 4195 "MachineIndependent/glslang.y"
11833 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
11835 #line 11836 "MachineIndependent/glslang_tab.cpp"
11838 case 644: /* spirv_execution_mode_parameter: FLOATCONSTANT */
11839 #line 4200 "MachineIndependent/glslang.y"
11841 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
11843 #line 11844 "MachineIndependent/glslang_tab.cpp"
11846 case 645: /* spirv_execution_mode_parameter: INTCONSTANT */
11847 #line 4203 "MachineIndependent/glslang.y"
11849 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
11851 #line 11852 "MachineIndependent/glslang_tab.cpp"
11854 case 646: /* spirv_execution_mode_parameter: UINTCONSTANT */
11855 #line 4206 "MachineIndependent/glslang.y"
11857 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
11859 #line 11860 "MachineIndependent/glslang_tab.cpp"
11862 case 647: /* spirv_execution_mode_parameter: BOOLCONSTANT */
11863 #line 4209 "MachineIndependent/glslang.y"
11865 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
11867 #line 11868 "MachineIndependent/glslang_tab.cpp"
11870 case 648: /* spirv_execution_mode_parameter: STRING_LITERAL */
11871 #line 4212 "MachineIndependent/glslang.y"
11873 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
11875 #line 11876 "MachineIndependent/glslang_tab.cpp"
11878 case 649: /* spirv_execution_mode_id_parameter_list: constant_expression */
11879 #line 4217 "MachineIndependent/glslang.y"
11881 if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
11882 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
11883 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
11884 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
11885 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
11886 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
11887 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
11889 #line 11890 "MachineIndependent/glslang_tab.cpp"
11892 case 650: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */
11893 #line 4226 "MachineIndependent/glslang.y"
11895 if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
11896 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
11897 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
11898 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
11899 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
11900 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
11901 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
11903 #line 11904 "MachineIndependent/glslang_tab.cpp"
11906 case 651: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */
11907 #line 4237 "MachineIndependent/glslang.y"
11909 (yyval.interm.type).init((yyvsp[-3].lex).loc);
11910 (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
11911 (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
11913 #line 11914 "MachineIndependent/glslang_tab.cpp"
11916 case 652: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
11917 #line 4242 "MachineIndependent/glslang.y"
11919 (yyval.interm.type).init((yyvsp[-5].lex).loc);
11920 parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11921 (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
11922 (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
11924 #line 11925 "MachineIndependent/glslang_tab.cpp"
11927 case 653: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
11928 #line 4250 "MachineIndependent/glslang.y"
11930 (yyval.interm.type).init((yyvsp[-3].lex).loc);
11931 (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
11933 #line 11934 "MachineIndependent/glslang_tab.cpp"
11936 case 654: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
11937 #line 4254 "MachineIndependent/glslang.y"
11939 (yyval.interm.type).init((yyvsp[-5].lex).loc);
11940 parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11941 (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
11943 #line 11944 "MachineIndependent/glslang_tab.cpp"
11946 case 655: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
11947 #line 4259 "MachineIndependent/glslang.y"
11949 (yyval.interm.type).init((yyvsp[-5].lex).loc);
11950 (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11952 #line 11953 "MachineIndependent/glslang_tab.cpp"
11955 case 656: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
11956 #line 4263 "MachineIndependent/glslang.y"
11958 (yyval.interm.type).init((yyvsp[-7].lex).loc);
11959 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11960 (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11962 #line 11963 "MachineIndependent/glslang_tab.cpp"
11965 case 657: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
11966 #line 4268 "MachineIndependent/glslang.y"
11968 (yyval.interm.type).init((yyvsp[-5].lex).loc);
11969 (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11971 #line 11972 "MachineIndependent/glslang_tab.cpp"
11974 case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
11975 #line 4272 "MachineIndependent/glslang.y"
11977 (yyval.interm.type).init((yyvsp[-7].lex).loc);
11978 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11979 (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11981 #line 11982 "MachineIndependent/glslang_tab.cpp"
11984 case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
11985 #line 4277 "MachineIndependent/glslang.y"
11987 (yyval.interm.type).init((yyvsp[-5].lex).loc);
11988 (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11990 #line 11991 "MachineIndependent/glslang_tab.cpp"
11993 case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
11994 #line 4281 "MachineIndependent/glslang.y"
11996 (yyval.interm.type).init((yyvsp[-7].lex).loc);
11997 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11998 (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12000 #line 12001 "MachineIndependent/glslang_tab.cpp"
12003 case 661: /* spirv_decorate_parameter_list: spirv_decorate_parameter */
12004 #line 4288 "MachineIndependent/glslang.y"
12006 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12008 #line 12009 "MachineIndependent/glslang_tab.cpp"
12011 case 662: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */
12012 #line 4291 "MachineIndependent/glslang.y"
12014 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
12016 #line 12017 "MachineIndependent/glslang_tab.cpp"
12019 case 663: /* spirv_decorate_parameter: FLOATCONSTANT */
12020 #line 4296 "MachineIndependent/glslang.y"
12022 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
12024 #line 12025 "MachineIndependent/glslang_tab.cpp"
12027 case 664: /* spirv_decorate_parameter: INTCONSTANT */
12028 #line 4299 "MachineIndependent/glslang.y"
12030 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
12032 #line 12033 "MachineIndependent/glslang_tab.cpp"
12035 case 665: /* spirv_decorate_parameter: UINTCONSTANT */
12036 #line 4302 "MachineIndependent/glslang.y"
12038 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
12040 #line 12041 "MachineIndependent/glslang_tab.cpp"
12043 case 666: /* spirv_decorate_parameter: BOOLCONSTANT */
12044 #line 4305 "MachineIndependent/glslang.y"
12046 (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
12048 #line 12049 "MachineIndependent/glslang_tab.cpp"
12051 case 667: /* spirv_decorate_id_parameter_list: constant_expression */
12052 #line 4310 "MachineIndependent/glslang.y"
12054 if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12055 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12056 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12057 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
12058 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12059 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
12061 #line 12062 "MachineIndependent/glslang_tab.cpp"
12064 case 668: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression */
12065 #line 4318 "MachineIndependent/glslang.y"
12067 if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12068 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12069 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12070 (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
12071 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12072 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
12074 #line 12075 "MachineIndependent/glslang_tab.cpp"
12077 case 669: /* spirv_decorate_string_parameter_list: STRING_LITERAL */
12078 #line 4328 "MachineIndependent/glslang.y"
12080 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
12081 parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12083 #line 12084 "MachineIndependent/glslang_tab.cpp"
12086 case 670: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */
12087 #line 4332 "MachineIndependent/glslang.y"
12089 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12091 #line 12092 "MachineIndependent/glslang_tab.cpp"
12094 case 671: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
12095 #line 4337 "MachineIndependent/glslang.y"
12097 (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12098 (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12100 #line 12101 "MachineIndependent/glslang_tab.cpp"
12103 case 672: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
12104 #line 4341 "MachineIndependent/glslang.y"
12106 (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
12107 parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12108 (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12110 #line 12111 "MachineIndependent/glslang_tab.cpp"
12113 case 673: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
12114 #line 4346 "MachineIndependent/glslang.y"
12116 (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
12117 (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12119 #line 12120 "MachineIndependent/glslang_tab.cpp"
12122 case 674: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
12123 #line 4350 "MachineIndependent/glslang.y"
12125 (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12126 parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12127 (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12129 #line 12130 "MachineIndependent/glslang_tab.cpp"
12132 case 675: /* spirv_type_parameter_list: spirv_type_parameter */
12133 #line 4357 "MachineIndependent/glslang.y"
12135 (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
12137 #line 12138 "MachineIndependent/glslang_tab.cpp"
12140 case 676: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */
12141 #line 4360 "MachineIndependent/glslang.y"
12143 (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
12145 #line 12146 "MachineIndependent/glslang_tab.cpp"
12148 case 677: /* spirv_type_parameter: constant_expression */
12149 #line 4365 "MachineIndependent/glslang.y"
12151 (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
12153 #line 12154 "MachineIndependent/glslang_tab.cpp"
12156 case 678: /* spirv_type_parameter: type_specifier */
12157 #line 4368 "MachineIndependent/glslang.y"
12159 (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type));
12161 #line 12162 "MachineIndependent/glslang_tab.cpp"
12164 case 679: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
12165 #line 4373 "MachineIndependent/glslang.y"
12167 (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12169 #line 12170 "MachineIndependent/glslang_tab.cpp"
12172 case 680: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
12173 #line 4376 "MachineIndependent/glslang.y"
12175 parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12176 (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12178 #line 12179 "MachineIndependent/glslang_tab.cpp"
12181 case 681: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */
12182 #line 4382 "MachineIndependent/glslang.y"
12184 (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
12186 #line 12187 "MachineIndependent/glslang_tab.cpp"
12189 case 682: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */
12190 #line 4385 "MachineIndependent/glslang.y"
12192 (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
12194 #line 12195 "MachineIndependent/glslang_tab.cpp"
12197 case 683: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */
12198 #line 4390 "MachineIndependent/glslang.y"
12200 (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
12202 #line 12203 "MachineIndependent/glslang_tab.cpp"
12205 case 684: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */
12206 #line 4393 "MachineIndependent/glslang.y"
12208 (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
12210 #line 12211 "MachineIndependent/glslang_tab.cpp"
12214 #line 12215 "MachineIndependent/glslang_tab.cpp"
12218 /* User semantic actions sometimes alter yychar, and that requires
12219 that yytoken be updated with the new translation. We take the
12220 approach of translating immediately before every use of yytoken.
12221 One alternative is translating here after every semantic action,
12222 but that translation would be missed if the semantic action invokes
12223 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
12224 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
12225 incorrect destructor might then be invoked immediately. In the
12226 case of YYERROR or YYBACKUP, subsequent parser actions might lead
12227 to an incorrect destructor call or verbose syntax error message
12228 before the lookahead is translated. */
12229 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
12231 YYPOPSTACK (yylen);
12236 /* Now 'shift' the result of the reduction. Determine what state
12237 that goes to, based on the state we popped back to and the rule
12238 number reduced by. */
12240 const int yylhs = yyr1[yyn] - YYNTOKENS;
12241 const int yyi = yypgoto[yylhs] + *yyssp;
12242 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
12244 : yydefgoto[yylhs]);
12250 /*--------------------------------------.
12251 | yyerrlab -- here on detecting error. |
12252 `--------------------------------------*/
12254 /* Make sure we have latest lookahead translation. See comments at
12255 user semantic actions for why this is necessary. */
12256 yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
12257 /* If not already recovering from an error, report this error. */
12263 = {yyssp, yytoken};
12264 char const *yymsgp = YY_("syntax error");
12265 int yysyntax_error_status;
12266 yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12267 if (yysyntax_error_status == 0)
12269 else if (yysyntax_error_status == -1)
12271 if (yymsg != yymsgbuf)
12272 YYSTACK_FREE (yymsg);
12273 yymsg = YY_CAST (char *,
12274 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
12277 yysyntax_error_status
12278 = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12284 yymsg_alloc = sizeof yymsgbuf;
12285 yysyntax_error_status = YYENOMEM;
12288 yyerror (pParseContext, yymsgp);
12289 if (yysyntax_error_status == YYENOMEM)
12290 goto yyexhaustedlab;
12294 if (yyerrstatus == 3)
12296 /* If just tried and failed to reuse lookahead token after an
12297 error, discard it. */
12299 if (yychar <= YYEOF)
12301 /* Return failure if at end of input. */
12302 if (yychar == YYEOF)
12307 yydestruct ("Error: discarding",
12308 yytoken, &yylval, pParseContext);
12313 /* Else will try to reuse lookahead token after shifting the error
12318 /*---------------------------------------------------.
12319 | yyerrorlab -- error raised explicitly by YYERROR. |
12320 `---------------------------------------------------*/
12322 /* Pacify compilers when the user code never invokes YYERROR and the
12323 label yyerrorlab therefore never appears in user code. */
12327 /* Do not reclaim the symbols of the rule whose action triggered
12329 YYPOPSTACK (yylen);
12331 YY_STACK_PRINT (yyss, yyssp);
12336 /*-------------------------------------------------------------.
12337 | yyerrlab1 -- common code for both syntax error and YYERROR. |
12338 `-------------------------------------------------------------*/
12340 yyerrstatus = 3; /* Each real token shifted decrements this. */
12342 /* Pop stack until we find a state that shifts the error token. */
12345 yyn = yypact[yystate];
12346 if (!yypact_value_is_default (yyn))
12348 yyn += YYSYMBOL_YYerror;
12349 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
12351 yyn = yytable[yyn];
12357 /* Pop the current state because it cannot handle the error token. */
12362 yydestruct ("Error: popping",
12363 YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
12366 YY_STACK_PRINT (yyss, yyssp);
12369 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
12371 YY_IGNORE_MAYBE_UNINITIALIZED_END
12374 /* Shift the error token. */
12375 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
12381 /*-------------------------------------.
12382 | yyacceptlab -- YYACCEPT comes here. |
12383 `-------------------------------------*/
12389 /*-----------------------------------.
12390 | yyabortlab -- YYABORT comes here. |
12391 `-----------------------------------*/
12398 /*-------------------------------------------------.
12399 | yyexhaustedlab -- memory exhaustion comes here. |
12400 `-------------------------------------------------*/
12402 yyerror (pParseContext, YY_("memory exhausted"));
12408 /*-------------------------------------------------------.
12409 | yyreturn -- parsing is finished, clean up and return. |
12410 `-------------------------------------------------------*/
12412 if (yychar != YYEMPTY)
12414 /* Make sure we have latest lookahead translation. See comments at
12415 user semantic actions for why this is necessary. */
12416 yytoken = YYTRANSLATE (yychar);
12417 yydestruct ("Cleanup: discarding lookahead",
12418 yytoken, &yylval, pParseContext);
12420 /* Do not reclaim the symbols of the rule whose action triggered
12421 this YYABORT or YYACCEPT. */
12422 YYPOPSTACK (yylen);
12423 YY_STACK_PRINT (yyss, yyssp);
12424 while (yyssp != yyss)
12426 yydestruct ("Cleanup: popping",
12427 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
12432 YYSTACK_FREE (yyss);
12434 if (yymsg != yymsgbuf)
12435 YYSTACK_FREE (yymsg);
12439 #line 4398 "MachineIndependent/glslang.y"