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_LEFT_OP = 317, /* LEFT_OP */
442 YYSYMBOL_RIGHT_OP = 318, /* RIGHT_OP */
443 YYSYMBOL_INC_OP = 319, /* INC_OP */
444 YYSYMBOL_DEC_OP = 320, /* DEC_OP */
445 YYSYMBOL_LE_OP = 321, /* LE_OP */
446 YYSYMBOL_GE_OP = 322, /* GE_OP */
447 YYSYMBOL_EQ_OP = 323, /* EQ_OP */
448 YYSYMBOL_NE_OP = 324, /* NE_OP */
449 YYSYMBOL_AND_OP = 325, /* AND_OP */
450 YYSYMBOL_OR_OP = 326, /* OR_OP */
451 YYSYMBOL_XOR_OP = 327, /* XOR_OP */
452 YYSYMBOL_MUL_ASSIGN = 328, /* MUL_ASSIGN */
453 YYSYMBOL_DIV_ASSIGN = 329, /* DIV_ASSIGN */
454 YYSYMBOL_ADD_ASSIGN = 330, /* ADD_ASSIGN */
455 YYSYMBOL_MOD_ASSIGN = 331, /* MOD_ASSIGN */
456 YYSYMBOL_LEFT_ASSIGN = 332, /* LEFT_ASSIGN */
457 YYSYMBOL_RIGHT_ASSIGN = 333, /* RIGHT_ASSIGN */
458 YYSYMBOL_AND_ASSIGN = 334, /* AND_ASSIGN */
459 YYSYMBOL_XOR_ASSIGN = 335, /* XOR_ASSIGN */
460 YYSYMBOL_OR_ASSIGN = 336, /* OR_ASSIGN */
461 YYSYMBOL_SUB_ASSIGN = 337, /* SUB_ASSIGN */
462 YYSYMBOL_STRING_LITERAL = 338, /* STRING_LITERAL */
463 YYSYMBOL_LEFT_PAREN = 339, /* LEFT_PAREN */
464 YYSYMBOL_RIGHT_PAREN = 340, /* RIGHT_PAREN */
465 YYSYMBOL_LEFT_BRACKET = 341, /* LEFT_BRACKET */
466 YYSYMBOL_RIGHT_BRACKET = 342, /* RIGHT_BRACKET */
467 YYSYMBOL_LEFT_BRACE = 343, /* LEFT_BRACE */
468 YYSYMBOL_RIGHT_BRACE = 344, /* RIGHT_BRACE */
469 YYSYMBOL_DOT = 345, /* DOT */
470 YYSYMBOL_COMMA = 346, /* COMMA */
471 YYSYMBOL_COLON = 347, /* COLON */
472 YYSYMBOL_EQUAL = 348, /* EQUAL */
473 YYSYMBOL_SEMICOLON = 349, /* SEMICOLON */
474 YYSYMBOL_BANG = 350, /* BANG */
475 YYSYMBOL_DASH = 351, /* DASH */
476 YYSYMBOL_TILDE = 352, /* TILDE */
477 YYSYMBOL_PLUS = 353, /* PLUS */
478 YYSYMBOL_STAR = 354, /* STAR */
479 YYSYMBOL_SLASH = 355, /* SLASH */
480 YYSYMBOL_PERCENT = 356, /* PERCENT */
481 YYSYMBOL_LEFT_ANGLE = 357, /* LEFT_ANGLE */
482 YYSYMBOL_RIGHT_ANGLE = 358, /* RIGHT_ANGLE */
483 YYSYMBOL_VERTICAL_BAR = 359, /* VERTICAL_BAR */
484 YYSYMBOL_CARET = 360, /* CARET */
485 YYSYMBOL_AMPERSAND = 361, /* AMPERSAND */
486 YYSYMBOL_QUESTION = 362, /* QUESTION */
487 YYSYMBOL_INVARIANT = 363, /* INVARIANT */
488 YYSYMBOL_HIGH_PRECISION = 364, /* HIGH_PRECISION */
489 YYSYMBOL_MEDIUM_PRECISION = 365, /* MEDIUM_PRECISION */
490 YYSYMBOL_LOW_PRECISION = 366, /* LOW_PRECISION */
491 YYSYMBOL_PRECISION = 367, /* PRECISION */
492 YYSYMBOL_PACKED = 368, /* PACKED */
493 YYSYMBOL_RESOURCE = 369, /* RESOURCE */
494 YYSYMBOL_SUPERP = 370, /* SUPERP */
495 YYSYMBOL_FLOATCONSTANT = 371, /* FLOATCONSTANT */
496 YYSYMBOL_INTCONSTANT = 372, /* INTCONSTANT */
497 YYSYMBOL_UINTCONSTANT = 373, /* UINTCONSTANT */
498 YYSYMBOL_BOOLCONSTANT = 374, /* BOOLCONSTANT */
499 YYSYMBOL_IDENTIFIER = 375, /* IDENTIFIER */
500 YYSYMBOL_TYPE_NAME = 376, /* TYPE_NAME */
501 YYSYMBOL_CENTROID = 377, /* CENTROID */
502 YYSYMBOL_IN = 378, /* IN */
503 YYSYMBOL_OUT = 379, /* OUT */
504 YYSYMBOL_INOUT = 380, /* INOUT */
505 YYSYMBOL_STRUCT = 381, /* STRUCT */
506 YYSYMBOL_VOID = 382, /* VOID */
507 YYSYMBOL_WHILE = 383, /* WHILE */
508 YYSYMBOL_BREAK = 384, /* BREAK */
509 YYSYMBOL_CONTINUE = 385, /* CONTINUE */
510 YYSYMBOL_DO = 386, /* DO */
511 YYSYMBOL_ELSE = 387, /* ELSE */
512 YYSYMBOL_FOR = 388, /* FOR */
513 YYSYMBOL_IF = 389, /* IF */
514 YYSYMBOL_DISCARD = 390, /* DISCARD */
515 YYSYMBOL_RETURN = 391, /* RETURN */
516 YYSYMBOL_SWITCH = 392, /* SWITCH */
517 YYSYMBOL_CASE = 393, /* CASE */
518 YYSYMBOL_DEFAULT = 394, /* DEFAULT */
519 YYSYMBOL_TERMINATE_INVOCATION = 395, /* TERMINATE_INVOCATION */
520 YYSYMBOL_TERMINATE_RAY = 396, /* TERMINATE_RAY */
521 YYSYMBOL_IGNORE_INTERSECTION = 397, /* IGNORE_INTERSECTION */
522 YYSYMBOL_UNIFORM = 398, /* UNIFORM */
523 YYSYMBOL_SHARED = 399, /* SHARED */
524 YYSYMBOL_BUFFER = 400, /* BUFFER */
525 YYSYMBOL_FLAT = 401, /* FLAT */
526 YYSYMBOL_SMOOTH = 402, /* SMOOTH */
527 YYSYMBOL_LAYOUT = 403, /* LAYOUT */
528 YYSYMBOL_DOUBLECONSTANT = 404, /* DOUBLECONSTANT */
529 YYSYMBOL_INT16CONSTANT = 405, /* INT16CONSTANT */
530 YYSYMBOL_UINT16CONSTANT = 406, /* UINT16CONSTANT */
531 YYSYMBOL_FLOAT16CONSTANT = 407, /* FLOAT16CONSTANT */
532 YYSYMBOL_INT32CONSTANT = 408, /* INT32CONSTANT */
533 YYSYMBOL_UINT32CONSTANT = 409, /* UINT32CONSTANT */
534 YYSYMBOL_INT64CONSTANT = 410, /* INT64CONSTANT */
535 YYSYMBOL_UINT64CONSTANT = 411, /* UINT64CONSTANT */
536 YYSYMBOL_SUBROUTINE = 412, /* SUBROUTINE */
537 YYSYMBOL_DEMOTE = 413, /* DEMOTE */
538 YYSYMBOL_PAYLOADNV = 414, /* PAYLOADNV */
539 YYSYMBOL_PAYLOADINNV = 415, /* PAYLOADINNV */
540 YYSYMBOL_HITATTRNV = 416, /* HITATTRNV */
541 YYSYMBOL_CALLDATANV = 417, /* CALLDATANV */
542 YYSYMBOL_CALLDATAINNV = 418, /* CALLDATAINNV */
543 YYSYMBOL_PAYLOADEXT = 419, /* PAYLOADEXT */
544 YYSYMBOL_PAYLOADINEXT = 420, /* PAYLOADINEXT */
545 YYSYMBOL_HITATTREXT = 421, /* HITATTREXT */
546 YYSYMBOL_CALLDATAEXT = 422, /* CALLDATAEXT */
547 YYSYMBOL_CALLDATAINEXT = 423, /* CALLDATAINEXT */
548 YYSYMBOL_PATCH = 424, /* PATCH */
549 YYSYMBOL_SAMPLE = 425, /* SAMPLE */
550 YYSYMBOL_NONUNIFORM = 426, /* NONUNIFORM */
551 YYSYMBOL_COHERENT = 427, /* COHERENT */
552 YYSYMBOL_VOLATILE = 428, /* VOLATILE */
553 YYSYMBOL_RESTRICT = 429, /* RESTRICT */
554 YYSYMBOL_READONLY = 430, /* READONLY */
555 YYSYMBOL_WRITEONLY = 431, /* WRITEONLY */
556 YYSYMBOL_DEVICECOHERENT = 432, /* DEVICECOHERENT */
557 YYSYMBOL_QUEUEFAMILYCOHERENT = 433, /* QUEUEFAMILYCOHERENT */
558 YYSYMBOL_WORKGROUPCOHERENT = 434, /* WORKGROUPCOHERENT */
559 YYSYMBOL_SUBGROUPCOHERENT = 435, /* SUBGROUPCOHERENT */
560 YYSYMBOL_NONPRIVATE = 436, /* NONPRIVATE */
561 YYSYMBOL_SHADERCALLCOHERENT = 437, /* SHADERCALLCOHERENT */
562 YYSYMBOL_NOPERSPECTIVE = 438, /* NOPERSPECTIVE */
563 YYSYMBOL_EXPLICITINTERPAMD = 439, /* EXPLICITINTERPAMD */
564 YYSYMBOL_PERVERTEXNV = 440, /* PERVERTEXNV */
565 YYSYMBOL_PERPRIMITIVENV = 441, /* PERPRIMITIVENV */
566 YYSYMBOL_PERVIEWNV = 442, /* PERVIEWNV */
567 YYSYMBOL_PERTASKNV = 443, /* PERTASKNV */
568 YYSYMBOL_PRECISE = 444, /* PRECISE */
569 YYSYMBOL_YYACCEPT = 445, /* $accept */
570 YYSYMBOL_variable_identifier = 446, /* variable_identifier */
571 YYSYMBOL_primary_expression = 447, /* primary_expression */
572 YYSYMBOL_postfix_expression = 448, /* postfix_expression */
573 YYSYMBOL_integer_expression = 449, /* integer_expression */
574 YYSYMBOL_function_call = 450, /* function_call */
575 YYSYMBOL_function_call_or_method = 451, /* function_call_or_method */
576 YYSYMBOL_function_call_generic = 452, /* function_call_generic */
577 YYSYMBOL_function_call_header_no_parameters = 453, /* function_call_header_no_parameters */
578 YYSYMBOL_function_call_header_with_parameters = 454, /* function_call_header_with_parameters */
579 YYSYMBOL_function_call_header = 455, /* function_call_header */
580 YYSYMBOL_function_identifier = 456, /* function_identifier */
581 YYSYMBOL_unary_expression = 457, /* unary_expression */
582 YYSYMBOL_unary_operator = 458, /* unary_operator */
583 YYSYMBOL_multiplicative_expression = 459, /* multiplicative_expression */
584 YYSYMBOL_additive_expression = 460, /* additive_expression */
585 YYSYMBOL_shift_expression = 461, /* shift_expression */
586 YYSYMBOL_relational_expression = 462, /* relational_expression */
587 YYSYMBOL_equality_expression = 463, /* equality_expression */
588 YYSYMBOL_and_expression = 464, /* and_expression */
589 YYSYMBOL_exclusive_or_expression = 465, /* exclusive_or_expression */
590 YYSYMBOL_inclusive_or_expression = 466, /* inclusive_or_expression */
591 YYSYMBOL_logical_and_expression = 467, /* logical_and_expression */
592 YYSYMBOL_logical_xor_expression = 468, /* logical_xor_expression */
593 YYSYMBOL_logical_or_expression = 469, /* logical_or_expression */
594 YYSYMBOL_conditional_expression = 470, /* conditional_expression */
595 YYSYMBOL_471_1 = 471, /* $@1 */
596 YYSYMBOL_assignment_expression = 472, /* assignment_expression */
597 YYSYMBOL_assignment_operator = 473, /* assignment_operator */
598 YYSYMBOL_expression = 474, /* expression */
599 YYSYMBOL_constant_expression = 475, /* constant_expression */
600 YYSYMBOL_declaration = 476, /* declaration */
601 YYSYMBOL_block_structure = 477, /* block_structure */
602 YYSYMBOL_478_2 = 478, /* $@2 */
603 YYSYMBOL_identifier_list = 479, /* identifier_list */
604 YYSYMBOL_function_prototype = 480, /* function_prototype */
605 YYSYMBOL_function_declarator = 481, /* function_declarator */
606 YYSYMBOL_function_header_with_parameters = 482, /* function_header_with_parameters */
607 YYSYMBOL_function_header = 483, /* function_header */
608 YYSYMBOL_parameter_declarator = 484, /* parameter_declarator */
609 YYSYMBOL_parameter_declaration = 485, /* parameter_declaration */
610 YYSYMBOL_parameter_type_specifier = 486, /* parameter_type_specifier */
611 YYSYMBOL_init_declarator_list = 487, /* init_declarator_list */
612 YYSYMBOL_single_declaration = 488, /* single_declaration */
613 YYSYMBOL_fully_specified_type = 489, /* fully_specified_type */
614 YYSYMBOL_invariant_qualifier = 490, /* invariant_qualifier */
615 YYSYMBOL_interpolation_qualifier = 491, /* interpolation_qualifier */
616 YYSYMBOL_layout_qualifier = 492, /* layout_qualifier */
617 YYSYMBOL_layout_qualifier_id_list = 493, /* layout_qualifier_id_list */
618 YYSYMBOL_layout_qualifier_id = 494, /* layout_qualifier_id */
619 YYSYMBOL_precise_qualifier = 495, /* precise_qualifier */
620 YYSYMBOL_type_qualifier = 496, /* type_qualifier */
621 YYSYMBOL_single_type_qualifier = 497, /* single_type_qualifier */
622 YYSYMBOL_storage_qualifier = 498, /* storage_qualifier */
623 YYSYMBOL_non_uniform_qualifier = 499, /* non_uniform_qualifier */
624 YYSYMBOL_type_name_list = 500, /* type_name_list */
625 YYSYMBOL_type_specifier = 501, /* type_specifier */
626 YYSYMBOL_array_specifier = 502, /* array_specifier */
627 YYSYMBOL_type_parameter_specifier_opt = 503, /* type_parameter_specifier_opt */
628 YYSYMBOL_type_parameter_specifier = 504, /* type_parameter_specifier */
629 YYSYMBOL_type_parameter_specifier_list = 505, /* type_parameter_specifier_list */
630 YYSYMBOL_type_specifier_nonarray = 506, /* type_specifier_nonarray */
631 YYSYMBOL_precision_qualifier = 507, /* precision_qualifier */
632 YYSYMBOL_struct_specifier = 508, /* struct_specifier */
633 YYSYMBOL_509_3 = 509, /* $@3 */
634 YYSYMBOL_510_4 = 510, /* $@4 */
635 YYSYMBOL_struct_declaration_list = 511, /* struct_declaration_list */
636 YYSYMBOL_struct_declaration = 512, /* struct_declaration */
637 YYSYMBOL_struct_declarator_list = 513, /* struct_declarator_list */
638 YYSYMBOL_struct_declarator = 514, /* struct_declarator */
639 YYSYMBOL_initializer = 515, /* initializer */
640 YYSYMBOL_initializer_list = 516, /* initializer_list */
641 YYSYMBOL_declaration_statement = 517, /* declaration_statement */
642 YYSYMBOL_statement = 518, /* statement */
643 YYSYMBOL_simple_statement = 519, /* simple_statement */
644 YYSYMBOL_demote_statement = 520, /* demote_statement */
645 YYSYMBOL_compound_statement = 521, /* compound_statement */
646 YYSYMBOL_522_5 = 522, /* $@5 */
647 YYSYMBOL_523_6 = 523, /* $@6 */
648 YYSYMBOL_statement_no_new_scope = 524, /* statement_no_new_scope */
649 YYSYMBOL_statement_scoped = 525, /* statement_scoped */
650 YYSYMBOL_526_7 = 526, /* $@7 */
651 YYSYMBOL_527_8 = 527, /* $@8 */
652 YYSYMBOL_compound_statement_no_new_scope = 528, /* compound_statement_no_new_scope */
653 YYSYMBOL_statement_list = 529, /* statement_list */
654 YYSYMBOL_expression_statement = 530, /* expression_statement */
655 YYSYMBOL_selection_statement = 531, /* selection_statement */
656 YYSYMBOL_selection_statement_nonattributed = 532, /* selection_statement_nonattributed */
657 YYSYMBOL_selection_rest_statement = 533, /* selection_rest_statement */
658 YYSYMBOL_condition = 534, /* condition */
659 YYSYMBOL_switch_statement = 535, /* switch_statement */
660 YYSYMBOL_switch_statement_nonattributed = 536, /* switch_statement_nonattributed */
661 YYSYMBOL_537_9 = 537, /* $@9 */
662 YYSYMBOL_switch_statement_list = 538, /* switch_statement_list */
663 YYSYMBOL_case_label = 539, /* case_label */
664 YYSYMBOL_iteration_statement = 540, /* iteration_statement */
665 YYSYMBOL_iteration_statement_nonattributed = 541, /* iteration_statement_nonattributed */
666 YYSYMBOL_542_10 = 542, /* $@10 */
667 YYSYMBOL_543_11 = 543, /* $@11 */
668 YYSYMBOL_544_12 = 544, /* $@12 */
669 YYSYMBOL_for_init_statement = 545, /* for_init_statement */
670 YYSYMBOL_conditionopt = 546, /* conditionopt */
671 YYSYMBOL_for_rest_statement = 547, /* for_rest_statement */
672 YYSYMBOL_jump_statement = 548, /* jump_statement */
673 YYSYMBOL_translation_unit = 549, /* translation_unit */
674 YYSYMBOL_external_declaration = 550, /* external_declaration */
675 YYSYMBOL_function_definition = 551, /* function_definition */
676 YYSYMBOL_552_13 = 552, /* $@13 */
677 YYSYMBOL_attribute = 553, /* attribute */
678 YYSYMBOL_attribute_list = 554, /* attribute_list */
679 YYSYMBOL_single_attribute = 555 /* single_attribute */
681 typedef enum yysymbol_kind_t yysymbol_kind_t;
684 /* Second part of user prologue. */
685 #line 133 "MachineIndependent/glslang.y"
688 /* windows only pragma */
690 #pragma warning(disable : 4065)
691 #pragma warning(disable : 4127)
692 #pragma warning(disable : 4244)
695 #define parseContext (*pParseContext)
696 #define yyerror(context, msg) context->parserError(msg)
698 extern int yylex(YYSTYPE*, TParseContext&);
701 #line 702 "MachineIndependent/glslang_tab.cpp"
708 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
709 <limits.h> and (if available) <stdint.h> are included
710 so that the code can choose integer types of a good width. */
712 #ifndef __PTRDIFF_MAX__
713 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
714 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
715 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
720 /* Narrow types that promote to a signed type and that can represent a
721 signed or unsigned integer of at least N bits. In tables they can
722 save space and decrease cache pressure. Promoting to a signed type
723 helps avoid bugs in integer arithmetic. */
725 #ifdef __INT_LEAST8_MAX__
726 typedef __INT_LEAST8_TYPE__ yytype_int8;
727 #elif defined YY_STDINT_H
728 typedef int_least8_t yytype_int8;
730 typedef signed char yytype_int8;
733 #ifdef __INT_LEAST16_MAX__
734 typedef __INT_LEAST16_TYPE__ yytype_int16;
735 #elif defined YY_STDINT_H
736 typedef int_least16_t yytype_int16;
738 typedef short yytype_int16;
741 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
742 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
743 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
744 && UINT_LEAST8_MAX <= INT_MAX)
745 typedef uint_least8_t yytype_uint8;
746 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
747 typedef unsigned char yytype_uint8;
749 typedef short yytype_uint8;
752 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
753 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
754 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
755 && UINT_LEAST16_MAX <= INT_MAX)
756 typedef uint_least16_t yytype_uint16;
757 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
758 typedef unsigned short yytype_uint16;
760 typedef int yytype_uint16;
764 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
765 # define YYPTRDIFF_T __PTRDIFF_TYPE__
766 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
767 # elif defined PTRDIFF_MAX
769 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
771 # define YYPTRDIFF_T ptrdiff_t
772 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
774 # define YYPTRDIFF_T long
775 # define YYPTRDIFF_MAXIMUM LONG_MAX
780 # ifdef __SIZE_TYPE__
781 # define YYSIZE_T __SIZE_TYPE__
782 # elif defined size_t
783 # define YYSIZE_T size_t
784 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
785 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
786 # define YYSIZE_T size_t
788 # define YYSIZE_T unsigned
792 #define YYSIZE_MAXIMUM \
793 YY_CAST (YYPTRDIFF_T, \
794 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
795 ? YYPTRDIFF_MAXIMUM \
796 : YY_CAST (YYSIZE_T, -1)))
798 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
801 /* Stored state numbers (used for stacks). */
802 typedef yytype_int16 yy_state_t;
804 /* State numbers in computations. */
805 typedef int yy_state_fast_t;
808 # if defined YYENABLE_NLS && YYENABLE_NLS
810 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
811 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
815 # define YY_(Msgid) Msgid
820 #ifndef YY_ATTRIBUTE_PURE
821 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
822 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
824 # define YY_ATTRIBUTE_PURE
828 #ifndef YY_ATTRIBUTE_UNUSED
829 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
830 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
832 # define YY_ATTRIBUTE_UNUSED
836 /* Suppress unused-variable warnings by "using" E. */
837 #if ! defined lint || defined __GNUC__
838 # define YYUSE(E) ((void) (E))
840 # define YYUSE(E) /* empty */
843 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
844 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
845 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
846 _Pragma ("GCC diagnostic push") \
847 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
848 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
849 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
850 _Pragma ("GCC diagnostic pop")
852 # define YY_INITIAL_VALUE(Value) Value
854 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
855 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
856 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
858 #ifndef YY_INITIAL_VALUE
859 # define YY_INITIAL_VALUE(Value) /* Nothing. */
862 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
863 # define YY_IGNORE_USELESS_CAST_BEGIN \
864 _Pragma ("GCC diagnostic push") \
865 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
866 # define YY_IGNORE_USELESS_CAST_END \
867 _Pragma ("GCC diagnostic pop")
869 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
870 # define YY_IGNORE_USELESS_CAST_BEGIN
871 # define YY_IGNORE_USELESS_CAST_END
875 #define YY_ASSERT(E) ((void) (0 && (E)))
879 /* The parser invokes alloca or malloc; define the necessary symbols. */
881 # ifdef YYSTACK_USE_ALLOCA
882 # if YYSTACK_USE_ALLOCA
884 # define YYSTACK_ALLOC __builtin_alloca
885 # elif defined __BUILTIN_VA_ARG_INCR
886 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
888 # define YYSTACK_ALLOC __alloca
889 # elif defined _MSC_VER
890 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
891 # define alloca _alloca
893 # define YYSTACK_ALLOC alloca
894 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
895 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
896 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
897 # ifndef EXIT_SUCCESS
898 # define EXIT_SUCCESS 0
905 # ifdef YYSTACK_ALLOC
906 /* Pacify GCC's 'empty if-body' warning. */
907 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
908 # ifndef YYSTACK_ALLOC_MAXIMUM
909 /* The OS might guarantee only one guard page at the bottom of the stack,
910 and a page size can be as small as 4096 bytes. So we cannot safely
911 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
912 to allow for a few compiler-allocated temporary stack slots. */
913 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
916 # define YYSTACK_ALLOC YYMALLOC
917 # define YYSTACK_FREE YYFREE
918 # ifndef YYSTACK_ALLOC_MAXIMUM
919 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
921 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
922 && ! ((defined YYMALLOC || defined malloc) \
923 && (defined YYFREE || defined free)))
924 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
925 # ifndef EXIT_SUCCESS
926 # define EXIT_SUCCESS 0
930 # define YYMALLOC malloc
931 # if ! defined malloc && ! defined EXIT_SUCCESS
932 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
937 # if ! defined free && ! defined EXIT_SUCCESS
938 void free (void *); /* INFRINGES ON USER NAME SPACE */
944 #if (! defined yyoverflow \
945 && (! defined __cplusplus \
946 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
948 /* A type that is properly aligned for any stack member. */
951 yy_state_t yyss_alloc;
955 /* The size of the maximum gap between one aligned stack and the next. */
956 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
958 /* The size of an array large to enough to hold all stacks, each with
960 # define YYSTACK_BYTES(N) \
961 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
962 + YYSTACK_GAP_MAXIMUM)
964 # define YYCOPY_NEEDED 1
966 /* Relocate STACK from its old location to the new one. The
967 local variables YYSIZE and YYSTACKSIZE give the old and new number of
968 elements in the stack, and YYPTR gives the new location of the
969 stack. Advance YYPTR to a properly aligned location for the next
971 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
974 YYPTRDIFF_T yynewbytes; \
975 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
976 Stack = &yyptr->Stack_alloc; \
977 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
978 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
984 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
985 /* Copy COUNT objects from SRC to DST. The source and destination do
988 # if defined __GNUC__ && 1 < __GNUC__
989 # define YYCOPY(Dst, Src, Count) \
990 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
992 # define YYCOPY(Dst, Src, Count) \
996 for (yyi = 0; yyi < (Count); yyi++) \
997 (Dst)[yyi] = (Src)[yyi]; \
1002 #endif /* !YYCOPY_NEEDED */
1004 /* YYFINAL -- State number of the termination state. */
1006 /* YYLAST -- Last index in YYTABLE. */
1007 #define YYLAST 10537
1009 /* YYNTOKENS -- Number of terminals. */
1010 #define YYNTOKENS 445
1011 /* YYNNTS -- Number of nonterminals. */
1013 /* YYNRULES -- Number of rules. */
1014 #define YYNRULES 617
1015 /* YYNSTATES -- Number of states. */
1016 #define YYNSTATES 765
1018 /* YYMAXUTOK -- Last valid token kind. */
1019 #define YYMAXUTOK 699
1022 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1023 as returned by yylex, with out-of-bounds checking. */
1024 #define YYTRANSLATE(YYX) \
1025 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1026 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1029 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1030 as returned by yylex. */
1031 static const yytype_int16 yytranslate[] =
1033 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1034 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1035 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1036 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1037 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1038 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1039 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1040 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1041 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1042 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1043 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1044 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1045 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1046 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1047 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1048 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1049 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1050 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1051 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1052 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1053 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1054 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1055 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1056 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1057 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1058 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1059 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1060 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1061 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1062 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1063 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1064 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1065 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1066 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1067 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1068 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1069 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1070 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1071 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1072 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1073 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1074 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1075 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1076 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1077 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1078 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1079 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1080 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1081 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1082 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1083 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1084 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1085 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1086 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1087 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1088 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1089 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1090 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1091 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1092 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1093 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1094 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1095 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1096 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1097 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1098 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1099 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1100 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1101 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1102 435, 436, 437, 438, 439, 440, 441, 442, 443, 444
1106 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1107 static const yytype_int16 yyrline[] =
1109 0, 371, 371, 377, 380, 385, 388, 391, 395, 399,
1110 402, 406, 410, 414, 418, 422, 426, 432, 440, 443,
1111 446, 449, 452, 457, 465, 472, 479, 485, 489, 496,
1112 499, 505, 512, 522, 530, 535, 563, 572, 578, 582,
1113 586, 606, 607, 608, 609, 615, 616, 621, 626, 635,
1114 636, 641, 649, 650, 656, 665, 666, 671, 676, 681,
1115 689, 690, 699, 711, 712, 721, 722, 731, 732, 741,
1116 742, 750, 751, 759, 760, 768, 769, 769, 787, 788,
1117 804, 808, 812, 816, 821, 825, 829, 833, 837, 841,
1118 845, 852, 855, 866, 873, 878, 883, 890, 894, 898,
1119 902, 907, 912, 921, 921, 932, 936, 943, 950, 953,
1120 960, 968, 988, 1011, 1026, 1051, 1062, 1072, 1082, 1092,
1121 1101, 1104, 1108, 1112, 1117, 1125, 1132, 1137, 1142, 1147,
1122 1156, 1166, 1193, 1202, 1209, 1217, 1224, 1231, 1239, 1249,
1123 1256, 1267, 1273, 1276, 1283, 1287, 1291, 1300, 1310, 1313,
1124 1324, 1327, 1330, 1334, 1338, 1343, 1347, 1354, 1358, 1363,
1125 1369, 1375, 1382, 1387, 1395, 1401, 1413, 1427, 1433, 1438,
1126 1446, 1454, 1462, 1470, 1478, 1486, 1494, 1502, 1509, 1516,
1127 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1554, 1558, 1562,
1128 1566, 1572, 1583, 1590, 1593, 1602, 1607, 1617, 1622, 1630,
1129 1634, 1644, 1647, 1653, 1659, 1666, 1676, 1680, 1684, 1688,
1130 1693, 1697, 1702, 1707, 1712, 1717, 1722, 1727, 1732, 1737,
1131 1742, 1748, 1754, 1760, 1765, 1770, 1775, 1780, 1785, 1790,
1132 1795, 1800, 1805, 1810, 1815, 1821, 1828, 1833, 1838, 1843,
1133 1848, 1853, 1858, 1863, 1868, 1873, 1878, 1883, 1891, 1899,
1134 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, 1955, 1961,
1135 1967, 1973, 1979, 1985, 1991, 1997, 2003, 2009, 2015, 2021,
1136 2027, 2033, 2039, 2045, 2051, 2057, 2063, 2069, 2075, 2081,
1137 2087, 2093, 2099, 2105, 2113, 2121, 2129, 2137, 2145, 2153,
1138 2161, 2169, 2177, 2185, 2193, 2201, 2207, 2213, 2219, 2225,
1139 2231, 2237, 2243, 2249, 2255, 2261, 2267, 2273, 2279, 2285,
1140 2291, 2297, 2303, 2309, 2315, 2321, 2327, 2333, 2339, 2345,
1141 2351, 2357, 2363, 2369, 2375, 2381, 2387, 2393, 2399, 2405,
1142 2411, 2417, 2421, 2425, 2429, 2434, 2440, 2445, 2450, 2455,
1143 2460, 2465, 2470, 2476, 2481, 2486, 2491, 2496, 2501, 2507,
1144 2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567,
1145 2573, 2579, 2585, 2590, 2595, 2600, 2605, 2610, 2615, 2621,
1146 2626, 2631, 2636, 2641, 2646, 2651, 2656, 2662, 2667, 2672,
1147 2677, 2682, 2687, 2692, 2697, 2702, 2707, 2712, 2717, 2722,
1148 2727, 2732, 2738, 2743, 2748, 2754, 2760, 2765, 2770, 2775,
1149 2781, 2786, 2791, 2796, 2802, 2807, 2812, 2817, 2823, 2828,
1150 2833, 2838, 2844, 2850, 2856, 2862, 2867, 2873, 2879, 2885,
1151 2890, 2895, 2900, 2905, 2910, 2916, 2921, 2926, 2931, 2937,
1152 2942, 2947, 2952, 2958, 2963, 2968, 2973, 2979, 2984, 2989,
1153 2994, 3000, 3005, 3010, 3015, 3021, 3026, 3031, 3036, 3042,
1154 3047, 3052, 3057, 3063, 3068, 3073, 3078, 3084, 3089, 3094,
1155 3099, 3105, 3110, 3115, 3120, 3126, 3131, 3136, 3141, 3147,
1156 3152, 3157, 3162, 3168, 3173, 3178, 3183, 3189, 3194, 3199,
1157 3204, 3210, 3215, 3220, 3225, 3230, 3235, 3240, 3245, 3250,
1158 3255, 3260, 3265, 3270, 3275, 3280, 3285, 3290, 3295, 3300,
1159 3305, 3310, 3315, 3320, 3325, 3330, 3336, 3342, 3348, 3354,
1160 3361, 3368, 3374, 3380, 3386, 3392, 3398, 3404, 3411, 3416,
1161 3432, 3437, 3442, 3450, 3450, 3461, 3461, 3471, 3474, 3487,
1162 3509, 3536, 3540, 3546, 3551, 3562, 3566, 3572, 3578, 3589,
1163 3592, 3599, 3603, 3604, 3610, 3611, 3612, 3613, 3614, 3615,
1164 3616, 3618, 3624, 3633, 3634, 3638, 3634, 3650, 3651, 3655,
1165 3655, 3662, 3662, 3676, 3679, 3687, 3695, 3706, 3707, 3711,
1166 3715, 3722, 3729, 3733, 3741, 3745, 3758, 3762, 3769, 3769,
1167 3789, 3792, 3798, 3810, 3822, 3826, 3833, 3833, 3848, 3848,
1168 3864, 3864, 3885, 3888, 3894, 3897, 3903, 3907, 3914, 3919,
1169 3924, 3931, 3934, 3938, 3943, 3947, 3957, 3961, 3970, 3973,
1170 3977, 3986, 3986, 4028, 4034, 4037, 4042, 4045
1174 /** Accessing symbol of state STATE. */
1175 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1178 /* The user-facing name of the symbol whose (internal) number is
1179 YYSYMBOL. No bounds checking. */
1180 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1182 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1183 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1184 static const char *const yytname[] =
1186 "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1187 "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1188 "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1189 "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1190 "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1191 "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1192 "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1193 "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1194 "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1195 "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1196 "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1197 "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1198 "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
1199 "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
1200 "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
1201 "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
1202 "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
1203 "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
1204 "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1205 "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1206 "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1207 "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
1208 "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
1209 "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
1210 "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
1211 "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
1212 "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
1213 "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
1214 "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
1215 "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
1216 "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
1217 "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
1218 "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
1219 "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1220 "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
1221 "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1222 "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1223 "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
1224 "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1225 "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1226 "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1227 "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1228 "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1229 "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1230 "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1231 "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1232 "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1233 "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1234 "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1235 "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1236 "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1237 "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1238 "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1239 "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1240 "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1241 "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1242 "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1243 "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1244 "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1245 "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1246 "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1247 "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1248 "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1249 "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1250 "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1251 "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1252 "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1253 "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1254 "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1255 "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1256 "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1257 "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1258 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1259 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1260 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1261 "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1262 "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1263 "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1264 "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1265 "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1266 "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
1267 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1268 "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1269 "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1270 "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
1271 "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
1272 "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1273 "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1274 "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1275 "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1276 "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1277 "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1278 "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1279 "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1280 "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1281 "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1282 "$accept", "variable_identifier", "primary_expression",
1283 "postfix_expression", "integer_expression", "function_call",
1284 "function_call_or_method", "function_call_generic",
1285 "function_call_header_no_parameters",
1286 "function_call_header_with_parameters", "function_call_header",
1287 "function_identifier", "unary_expression", "unary_operator",
1288 "multiplicative_expression", "additive_expression", "shift_expression",
1289 "relational_expression", "equality_expression", "and_expression",
1290 "exclusive_or_expression", "inclusive_or_expression",
1291 "logical_and_expression", "logical_xor_expression",
1292 "logical_or_expression", "conditional_expression", "$@1",
1293 "assignment_expression", "assignment_operator", "expression",
1294 "constant_expression", "declaration", "block_structure", "$@2",
1295 "identifier_list", "function_prototype", "function_declarator",
1296 "function_header_with_parameters", "function_header",
1297 "parameter_declarator", "parameter_declaration",
1298 "parameter_type_specifier", "init_declarator_list", "single_declaration",
1299 "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1300 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1301 "precise_qualifier", "type_qualifier", "single_type_qualifier",
1302 "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1303 "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1304 "type_parameter_specifier", "type_parameter_specifier_list",
1305 "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1306 "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1307 "struct_declarator_list", "struct_declarator", "initializer",
1308 "initializer_list", "declaration_statement", "statement",
1309 "simple_statement", "demote_statement", "compound_statement", "$@5",
1310 "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1311 "compound_statement_no_new_scope", "statement_list",
1312 "expression_statement", "selection_statement",
1313 "selection_statement_nonattributed", "selection_rest_statement",
1314 "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1315 "switch_statement_list", "case_label", "iteration_statement",
1316 "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1317 "for_init_statement", "conditionopt", "for_rest_statement",
1318 "jump_statement", "translation_unit", "external_declaration",
1319 "function_definition", "$@13", "attribute", "attribute_list",
1320 "single_attribute", YY_NULLPTR
1324 yysymbol_name (yysymbol_kind_t yysymbol)
1326 return yytname[yysymbol];
1331 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1332 (internal) symbol number NUM (which must be that of a token). */
1333 static const yytype_int16 yytoknum[] =
1335 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1336 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1337 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1338 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1339 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1340 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1341 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1342 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1343 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1344 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1345 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1346 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1347 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1348 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1349 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1350 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1351 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1352 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1353 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1354 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1355 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1356 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1357 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1358 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1359 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1360 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1361 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1362 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1363 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1364 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1365 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1366 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1367 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1368 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1369 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1370 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
1371 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
1372 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
1373 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
1374 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
1375 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
1376 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
1377 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
1378 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
1379 695, 696, 697, 698, 699
1383 #define YYPACT_NINF (-733)
1385 #define yypact_value_is_default(Yyn) \
1386 ((Yyn) == YYPACT_NINF)
1388 #define YYTABLE_NINF (-560)
1390 #define yytable_value_is_error(Yyn) \
1393 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1395 static const yytype_int16 yypact[] =
1397 4304, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1398 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1399 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1400 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1401 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1402 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1403 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1404 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1405 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1406 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1407 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1408 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1409 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1410 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1411 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1412 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1413 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1414 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1415 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1416 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1417 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1418 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1419 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1420 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1421 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1422 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1423 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1424 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1425 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1426 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1427 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1428 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1429 109, -733, -733, -733, -733, -733, 3, -733, -733, -733,
1430 -733, -733, -733, -322, -261, -733, -733, -733, -733, -733,
1431 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1432 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1433 -733, -733, -733, -733, -733, -733, -733, 19, 101, 140,
1434 79, 6514, 57, -733, 96, -733, -733, -733, -733, 4746,
1435 -733, -733, -733, -733, 133, -733, -733, 768, -733, -733,
1436 16, -733, 151, -32, 125, -733, -335, -733, 158, -733,
1437 6514, -733, -733, -733, 6514, 127, 128, -733, 13, -733,
1438 72, -733, -733, 9493, 163, -733, -733, -733, 156, 6514,
1439 -733, 160, -733, 20, -733, -733, 61, 7801, -733, 10,
1440 1210, -733, -733, -733, -733, 163, -330, -733, 8224, 14,
1441 -733, 134, -733, 88, 9493, 9493, -733, 9493, -733, -733,
1442 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1443 -733, -733, -733, -733, -733, -733, -733, 54, -733, -733,
1444 -733, 166, 62, 9916, 171, -733, 9493, -733, -733, -343,
1445 173, -733, 6514, 137, 5188, -733, 6514, 9493, -733, -32,
1446 -733, 141, -733, -733, 122, 93, 39, 28, 41, 157,
1447 159, 161, 192, 195, 21, 181, 8647, -733, 183, 182,
1448 -733, -733, 186, 178, 179, -733, 190, 191, 184, 9070,
1449 196, 9493, 187, 188, 189, 194, 197, 131, -733, -733,
1450 99, -733, 101, 200, 205, -733, -733, -733, -733, -733,
1451 1652, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1452 -376, 173, 8224, 36, 6955, -733, -733, 8224, 6514, -733,
1453 170, -733, -733, -733, 71, -733, -733, 9493, 176, -733,
1454 -733, 9493, 208, -733, -733, -733, 9493, -733, 137, 163,
1455 106, -733, -733, -733, 5630, -733, -733, -733, -733, 9493,
1456 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493,
1457 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, -733, -733,
1458 -733, 210, 180, -733, 2094, -733, -733, -733, 2094, -733,
1459 9493, -733, -733, 108, 9493, 29, -733, -733, -733, -733,
1460 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1461 -733, -733, 9493, 9493, -733, -733, -733, -733, -733, -733,
1462 -733, 8224, -733, -733, 139, -733, 6072, -733, -733, 211,
1463 185, -733, -733, -733, 123, 173, 137, -733, -733, -733,
1464 -733, -733, 122, 122, 93, 93, 39, 39, 39, 39,
1465 28, 28, 41, 157, 159, 161, 192, 195, 9493, -733,
1466 215, 85, -733, 2094, 3862, 153, 3420, 76, -733, 80,
1467 -733, -733, -733, -733, -733, 7378, -733, -733, -733, -733,
1468 86, 9493, 214, 180, 216, 185, 193, 6514, 219, 222,
1469 -733, -733, 3862, 220, -733, -733, -733, 9493, 224, -733,
1470 -733, -733, 217, 2536, 9493, -733, 213, 226, 199, 227,
1471 2978, -733, 228, -733, -733, 8224, -733, -733, -733, 83,
1472 9493, 2536, 220, -733, -733, 2094, -733, 223, 185, -733,
1473 -733, 2094, 225, -733, -733
1476 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1477 Performed when YYTABLE does not specify something else to do. Zero
1478 means the default is an error. */
1479 static const yytype_int16 yydefact[] =
1481 0, 157, 210, 208, 209, 207, 214, 215, 216, 217,
1482 218, 219, 220, 221, 222, 211, 212, 213, 223, 224,
1483 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1484 336, 337, 338, 339, 340, 341, 342, 362, 363, 364,
1485 365, 366, 367, 368, 377, 390, 391, 378, 379, 381,
1486 380, 382, 383, 384, 385, 386, 387, 388, 389, 165,
1487 166, 236, 237, 235, 238, 245, 246, 243, 244, 241,
1488 242, 239, 240, 268, 269, 270, 280, 281, 282, 265,
1489 266, 267, 277, 278, 279, 262, 263, 264, 274, 275,
1490 276, 259, 260, 261, 271, 272, 273, 247, 248, 249,
1491 283, 284, 285, 250, 251, 252, 295, 296, 297, 253,
1492 254, 255, 307, 308, 309, 256, 257, 258, 319, 320,
1493 321, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1494 298, 299, 300, 301, 302, 303, 304, 305, 306, 310,
1495 311, 312, 313, 314, 315, 316, 317, 318, 322, 323,
1496 324, 325, 326, 327, 328, 329, 330, 334, 331, 332,
1497 333, 515, 516, 517, 346, 347, 370, 373, 335, 344,
1498 345, 361, 343, 392, 393, 396, 397, 398, 400, 401,
1499 402, 404, 405, 406, 408, 409, 505, 506, 369, 371,
1500 372, 348, 349, 350, 394, 351, 355, 356, 359, 399,
1501 403, 407, 352, 353, 357, 358, 395, 354, 360, 439,
1502 441, 442, 443, 445, 446, 447, 449, 450, 451, 453,
1503 454, 455, 457, 458, 459, 461, 462, 463, 465, 466,
1504 467, 469, 470, 471, 473, 474, 475, 477, 478, 479,
1505 481, 482, 440, 444, 448, 452, 456, 464, 468, 472,
1506 460, 476, 480, 483, 484, 485, 486, 487, 488, 489,
1507 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
1508 500, 501, 502, 503, 504, 374, 375, 376, 410, 419,
1509 421, 415, 420, 422, 423, 425, 426, 427, 429, 430,
1510 431, 433, 434, 435, 437, 438, 411, 412, 413, 424,
1511 414, 416, 417, 418, 428, 432, 436, 507, 508, 511,
1512 512, 513, 514, 509, 510, 610, 132, 520, 521, 522,
1513 0, 519, 161, 159, 160, 158, 0, 206, 162, 163,
1514 164, 134, 133, 0, 190, 171, 173, 169, 175, 177,
1515 172, 174, 170, 176, 178, 167, 168, 192, 179, 186,
1516 187, 188, 189, 180, 181, 182, 183, 184, 185, 135,
1517 136, 137, 138, 139, 140, 147, 609, 0, 611, 0,
1518 109, 108, 0, 120, 125, 154, 153, 151, 155, 0,
1519 148, 150, 156, 130, 202, 152, 518, 0, 606, 608,
1520 0, 525, 0, 0, 0, 97, 0, 94, 0, 107,
1521 0, 116, 110, 118, 0, 119, 0, 95, 126, 100,
1522 0, 149, 131, 0, 195, 201, 1, 607, 0, 0,
1523 523, 144, 146, 0, 142, 193, 0, 0, 98, 0,
1524 0, 612, 111, 115, 117, 113, 121, 112, 0, 127,
1525 103, 0, 101, 0, 0, 0, 9, 0, 43, 42,
1526 44, 41, 5, 6, 7, 8, 2, 16, 14, 15,
1527 17, 10, 11, 12, 13, 3, 18, 37, 20, 25,
1528 26, 0, 0, 30, 0, 204, 0, 36, 34, 0,
1529 196, 96, 0, 0, 0, 527, 0, 0, 141, 0,
1530 191, 0, 197, 45, 49, 52, 55, 60, 63, 65,
1531 67, 69, 71, 73, 75, 0, 0, 99, 0, 554,
1532 563, 567, 0, 0, 0, 588, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 45, 78, 91,
1534 0, 541, 0, 156, 130, 544, 565, 543, 551, 542,
1535 0, 545, 546, 569, 547, 576, 548, 549, 584, 550,
1536 0, 114, 0, 122, 0, 535, 129, 0, 0, 105,
1537 0, 102, 38, 39, 0, 22, 23, 0, 0, 28,
1538 27, 0, 206, 31, 33, 40, 0, 203, 0, 533,
1539 0, 531, 526, 528, 0, 93, 145, 143, 194, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 76, 198,
1542 199, 0, 0, 553, 0, 586, 599, 598, 0, 590,
1543 0, 602, 600, 0, 0, 0, 583, 603, 604, 605,
1544 552, 81, 82, 84, 83, 86, 87, 88, 89, 90,
1545 85, 80, 0, 0, 568, 564, 566, 570, 577, 585,
1546 124, 0, 538, 539, 0, 128, 0, 106, 4, 0,
1547 24, 21, 32, 205, 0, 534, 0, 529, 524, 46,
1548 47, 48, 51, 50, 53, 54, 58, 59, 56, 57,
1549 61, 62, 64, 66, 68, 70, 72, 74, 0, 200,
1550 616, 0, 614, 555, 0, 0, 0, 0, 601, 0,
1551 582, 79, 92, 123, 536, 0, 104, 19, 530, 532,
1552 0, 0, 0, 0, 0, 574, 0, 0, 0, 0,
1553 593, 592, 595, 561, 578, 537, 540, 0, 0, 613,
1554 615, 556, 0, 0, 0, 594, 0, 0, 573, 0,
1555 0, 571, 0, 77, 617, 0, 558, 587, 557, 0,
1556 596, 0, 561, 560, 562, 580, 575, 0, 597, 591,
1557 572, 581, 0, 589, 579
1560 /* YYPGOTO[NTERM-NUM]. */
1561 static const yytype_int16 yypgoto[] =
1563 -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
1564 -733, -733, 9826, -733, -105, -98, -156, -102, -29, -28,
1565 -30, -27, -26, -31, -733, -82, -733, -101, -733, -109,
1566 -134, 2, -733, -733, -733, 4, -733, -733, -733, 177,
1567 198, 201, -733, -733, -341, -733, -733, -733, -733, 94,
1568 -733, -37, -46, -733, 9, -733, 0, -66, -733, -733,
1569 -733, -733, 262, -733, -733, -733, -481, -149, 11, -79,
1570 -213, -733, -108, -204, -732, -733, -148, -733, -733, -161,
1571 -160, -733, -733, 202, -274, -100, -733, 44, -733, -127,
1572 -733, 47, -733, -733, -733, -733, 49, -733, -733, -733,
1573 -733, -733, -733, -733, -733, 221, -733, -733, -733, -733,
1577 /* YYDEFGOTO[NTERM-NUM]. */
1578 static const yytype_int16 yydefgoto[] =
1580 -1, 465, 466, 467, 659, 468, 469, 470, 471, 472,
1581 473, 474, 527, 476, 494, 495, 496, 497, 498, 499,
1582 500, 501, 502, 503, 504, 528, 688, 529, 642, 530,
1583 586, 531, 367, 558, 443, 532, 369, 370, 371, 401,
1584 402, 403, 372, 373, 374, 375, 376, 377, 423, 424,
1585 378, 379, 380, 381, 477, 426, 478, 429, 414, 415,
1586 479, 384, 385, 386, 486, 419, 484, 485, 580, 581,
1587 556, 654, 535, 536, 537, 538, 539, 614, 714, 747,
1588 738, 739, 740, 748, 540, 541, 542, 543, 741, 718,
1589 544, 545, 742, 762, 546, 547, 548, 694, 618, 696,
1590 722, 736, 737, 549, 387, 388, 389, 398, 550, 691,
1594 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1595 positive, shift that token. If negative, reduce the rule whose
1596 number is the opposite. If YYTABLE_NINF, syntax error. */
1597 static const yytype_int16 yytable[] =
1599 383, 746, 366, 576, 368, 584, 427, 512, 754, 382,
1600 515, 427, 516, 517, 428, 577, 520, 393, 552, 746,
1601 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1602 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1603 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1604 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1605 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1606 52, 53, 54, 55, 56, 57, 58, 656, 394, 61,
1607 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1608 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1609 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1610 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1611 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1612 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1613 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1614 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1615 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1616 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1617 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1618 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1619 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1620 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1621 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1622 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1623 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1624 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1625 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1626 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1627 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1628 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1629 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1630 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1631 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1632 312, 313, 314, 411, 404, 583, 646, 555, 564, 650,
1633 693, 653, 439, 421, 655, 505, 391, 607, 480, 596,
1634 597, 506, 437, 716, 427, 506, 594, 595, 411, 507,
1635 488, 438, 557, 404, 600, 601, 489, 422, 395, 551,
1636 553, 405, 573, 565, 566, 643, 700, 506, 392, 412,
1637 382, 716, 482, 608, 651, 598, 599, 383, 382, 366,
1638 418, 368, 321, -35, 396, 567, 382, 326, 327, 568,
1639 405, 490, 570, 406, 405, 585, 407, 491, 571, 382,
1640 623, 658, 625, 382, 695, 440, 723, 643, 441, 483,
1641 724, 442, 643, 757, 611, 400, 643, 712, 382, 643,
1642 534, 713, 643, 727, 560, 583, 411, 561, 703, 533,
1643 676, 677, 678, 679, 592, 643, 593, 482, 644, 482,
1644 397, 555, 666, 555, 643, 667, 555, 698, 660, 631,
1645 632, 633, 634, 635, 636, 637, 638, 639, 640, 666,
1646 662, 408, 708, 317, 318, 319, 589, 590, 591, 641,
1647 399, 761, 578, 704, 483, 705, 483, 672, 673, 646,
1648 413, 382, 726, 382, 420, 382, 674, 675, 680, 681,
1649 425, 430, 435, 436, 427, 481, 569, 583, 487, 559,
1650 574, 697, 579, 665, 506, 699, 588, 605, 602, 603,
1651 604, 482, 606, 609, 612, 615, 613, 616, 617, 619,
1652 620, 643, 756, 621, 626, 624, 719, 627, 628, -36,
1653 534, 701, 702, 629, -34, 657, 630, 482, -29, 533,
1654 555, 661, 689, 707, 711, 690, 729, 646, 483, 733,
1655 731, 734, 750, -559, 744, 745, 751, 382, 732, 764,
1656 509, 755, 763, 682, 684, 683, 687, 728, 685, 710,
1657 686, 433, 390, 587, 483, 715, 752, 709, 720, 664,
1658 759, 753, 760, 382, 647, 735, 721, 648, 432, 649,
1659 431, 730, 0, 0, 555, 434, 0, 0, 417, 0,
1660 0, 0, 0, 715, 534, 0, 0, 0, 534, 482,
1661 0, 0, 0, 533, 0, 749, 743, 533, 0, 585,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 758, 0, 0, 555, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 483, 717, 0, 0,
1665 0, 0, 0, 0, 0, 382, 0, 0, 0, 0,
1666 0, 411, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 717, 0, 0, 0, 0,
1668 0, 0, 0, 534, 534, 0, 534, 0, 0, 0,
1669 0, 0, 533, 533, 0, 533, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 412, 0, 0,
1671 0, 0, 534, 0, 0, 0, 382, 0, 0, 0,
1672 0, 533, 0, 534, 0, 0, 0, 0, 0, 0,
1673 534, 0, 533, 0, 0, 0, 0, 0, 0, 533,
1674 0, 534, 0, 0, 0, 534, 0, 0, 0, 0,
1675 533, 534, 0, 0, 533, 0, 0, 0, 416, 0,
1676 533, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1677 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1678 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1679 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1680 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1681 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1682 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1683 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1684 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1685 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1686 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1687 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1688 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1689 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1690 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1691 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1692 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1693 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1694 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1695 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1696 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1697 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1698 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1699 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1700 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1701 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1702 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1703 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1704 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1705 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1706 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1707 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 315, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 316, 317, 318, 319, 320, 0, 0, 0, 0,
1713 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
1714 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
1716 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
1717 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
1718 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
1719 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
1720 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
1721 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1722 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1723 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1724 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1725 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1726 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1727 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1728 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1729 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1730 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1731 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1732 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1733 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1734 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1735 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1736 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1737 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1738 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1739 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1740 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1741 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1742 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1743 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1744 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1745 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1746 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1747 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1748 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1749 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1750 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1751 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
1752 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
1754 0, 508, 0, 509, 510, 0, 0, 0, 0, 511,
1755 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
1757 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
1758 325, 326, 327, 512, 513, 514, 515, 0, 516, 517,
1759 518, 519, 520, 521, 522, 523, 524, 525, 328, 329,
1760 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
1761 463, 464, 334, 526, 335, 336, 337, 338, 339, 340,
1762 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1763 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
1764 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
1765 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1766 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1767 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1768 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1769 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1770 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1771 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1772 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1773 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1774 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1775 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1776 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1777 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1778 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1779 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1780 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1781 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1782 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1783 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1784 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1785 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1786 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1787 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1788 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1789 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1790 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1791 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1792 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1793 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1794 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1795 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
1796 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 446, 447, 0, 508, 0, 509, 645, 0, 0, 0,
1799 0, 511, 448, 449, 450, 451, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 316, 317, 318, 319, 320,
1801 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
1802 323, 324, 325, 326, 327, 512, 513, 514, 515, 0,
1803 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
1804 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
1805 461, 462, 463, 464, 334, 526, 335, 336, 337, 338,
1806 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
1807 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
1808 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
1809 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1810 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1811 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1812 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1813 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1814 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1815 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1816 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1817 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1818 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1819 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1820 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1821 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1822 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1823 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1824 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1825 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1826 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1827 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1828 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1829 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1830 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1831 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1832 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1833 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1834 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1835 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1836 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1837 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1838 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1839 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1840 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 446, 447, 0, 508, 0, 509, 0, 0,
1843 0, 0, 0, 511, 448, 449, 450, 451, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
1845 319, 320, 0, 0, 0, 452, 453, 454, 455, 456,
1846 321, 322, 323, 324, 325, 326, 327, 512, 513, 514,
1847 515, 0, 516, 517, 518, 519, 520, 521, 522, 523,
1848 524, 525, 328, 329, 330, 331, 332, 333, 457, 458,
1849 459, 460, 461, 462, 463, 464, 334, 526, 335, 336,
1850 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
1851 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
1852 357, 358, 359, 360, 361, 362, 363, 364, 365, 1,
1853 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1854 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1855 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1856 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1857 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1858 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1859 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1860 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1861 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1862 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1863 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1864 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1865 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1866 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1867 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1868 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1869 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1870 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1871 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1872 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1873 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1874 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1875 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1876 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1877 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1878 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1879 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1880 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1881 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1882 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1883 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1884 312, 313, 314, 0, 0, 444, 445, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 446, 447, 0, 508, 0, 430,
1887 0, 0, 0, 0, 0, 511, 448, 449, 450, 451,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
1889 317, 318, 319, 320, 0, 0, 0, 452, 453, 454,
1890 455, 456, 321, 322, 323, 324, 325, 326, 327, 512,
1891 513, 514, 515, 0, 516, 517, 518, 519, 520, 521,
1892 522, 523, 524, 525, 328, 329, 330, 331, 332, 333,
1893 457, 458, 459, 460, 461, 462, 463, 464, 334, 526,
1894 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1895 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1896 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1897 365, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1898 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1899 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1900 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1901 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1902 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1903 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1904 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1905 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1906 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1907 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1908 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1909 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1910 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1911 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1912 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1913 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1914 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1915 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1916 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1917 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1918 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1919 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1920 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1921 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1922 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1923 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1924 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1925 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1926 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1927 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1928 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 446, 447, 0, 508,
1931 0, 0, 0, 0, 0, 0, 0, 511, 448, 449,
1932 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 316, 317, 318, 319, 320, 0, 0, 0, 452,
1934 453, 454, 455, 456, 321, 322, 323, 324, 325, 326,
1935 327, 512, 513, 514, 515, 0, 516, 517, 518, 519,
1936 520, 521, 522, 523, 524, 525, 328, 329, 330, 331,
1937 332, 333, 457, 458, 459, 460, 461, 462, 463, 464,
1938 334, 526, 335, 336, 337, 338, 339, 340, 341, 342,
1939 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
1940 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
1941 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
1942 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1943 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1944 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1945 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1946 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1947 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1948 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1949 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1950 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1951 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1952 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1953 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1954 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1955 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1956 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1957 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1958 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1959 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1960 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1961 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1962 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1963 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1964 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1965 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1966 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1967 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1968 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1969 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1970 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1971 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1972 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
1973 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 511,
1976 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
1978 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
1979 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
1981 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
1982 463, 464, 334, 0, 335, 336, 337, 338, 339, 340,
1983 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1984 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
1985 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
1986 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1987 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1988 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1989 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1990 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1991 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1992 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1993 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1994 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1995 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1996 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1997 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1998 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1999 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2000 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2001 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2002 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2003 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2004 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2005 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2006 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2007 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2008 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2009 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2010 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2011 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2012 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2013 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2014 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2015 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2016 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
2017 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019 446, 447, 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 448, 449, 450, 451, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
2022 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
2023 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
2026 461, 462, 463, 464, 334, 0, 335, 336, 337, 338,
2027 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
2028 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2029 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
2030 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2031 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2032 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2033 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2034 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2035 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2036 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2037 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2038 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2039 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2040 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2041 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2042 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2043 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2044 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2045 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2046 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2047 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2048 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2049 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2050 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2051 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2052 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2053 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2054 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2055 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2056 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2057 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2058 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2059 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2060 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2061 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 315, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
2066 319, 320, 0, 0, 0, 0, 0, 0, 0, 0,
2067 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
2070 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
2071 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
2072 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2073 357, 358, 359, 360, 361, 362, 363, 364, 365, 1,
2074 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2075 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2076 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2077 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2078 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2079 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2080 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2081 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2082 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2083 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2084 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2085 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2086 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2087 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2088 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2089 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2090 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2091 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2092 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2093 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2094 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2095 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2096 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2097 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2098 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2099 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2100 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2101 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2102 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2103 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2104 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2105 312, 313, 314, 0, 0, 0, 0, 0, 0, 0,
2106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 409, 0, 0, 0, 0,
2109 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
2110 317, 318, 319, 0, 0, 0, 0, 0, 0, 0,
2111 0, 410, 321, 322, 323, 324, 325, 326, 327, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 328, 329, 330, 331, 332, 333,
2114 0, 0, 0, 0, 0, 0, 0, 0, 334, 0,
2115 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2116 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2117 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2118 365, 1, 2, 3, 4, 5, 6, 7, 8, 9,
2119 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2120 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2121 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2122 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2123 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2124 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2125 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2126 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2127 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2128 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2129 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2130 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2131 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2132 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2133 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2134 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2135 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2136 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2137 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2138 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2139 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2140 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2141 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2142 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2143 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2144 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2145 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2146 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2147 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2148 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2149 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 582, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 316, 317, 318, 319, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
2156 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
2158 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
2159 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
2160 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2161 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
2162 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
2163 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2164 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2165 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2166 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2167 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2168 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2169 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2170 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2171 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2172 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2173 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2174 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2175 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2176 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2177 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2178 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2179 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2180 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2181 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2182 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2183 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2184 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2185 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2186 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2187 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2188 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2189 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2190 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2191 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2192 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2193 308, 309, 310, 311, 312, 313, 314, 0, 0, 0,
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 0, 0, 0, 0, 668, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2198 0, 0, 0, 316, 317, 318, 319, 0, 0, 0,
2199 0, 0, 0, 0, 0, 0, 321, 322, 323, 324,
2200 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
2202 330, 331, 332, 333, 0, 0, 0, 0, 0, 0,
2203 0, 0, 334, 0, 335, 336, 337, 338, 339, 340,
2204 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
2205 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2206 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
2207 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2208 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2209 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2210 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2211 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2212 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2213 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2214 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2215 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2216 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2217 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2218 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2219 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2220 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2221 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2222 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2223 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2224 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2225 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2226 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2227 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2228 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2229 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2230 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2231 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2232 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2233 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2234 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2235 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2236 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2237 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 706, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
2243 0, 0, 0, 0, 0, 0, 0, 0, 321, 322,
2244 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 328, 329, 330, 331, 332, 333, 0, 0, 0, 0,
2247 0, 0, 0, 0, 334, 0, 335, 336, 337, 338,
2248 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
2249 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2250 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
2251 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2252 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2253 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2254 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2255 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2256 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2257 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2258 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2259 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2260 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2261 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2262 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2263 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2264 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2265 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2266 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2267 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2268 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2269 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2270 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2271 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2272 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2273 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2274 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2275 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2276 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2277 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2278 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2279 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2280 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2281 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2282 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
2287 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
2291 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
2292 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
2293 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2294 357, 358, 359, 360, 361, 362, 363, 364, 365, 2,
2295 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2296 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2297 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2298 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2299 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2300 53, 54, 55, 56, 57, 58, 0, 0, 61, 62,
2301 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2302 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2303 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2304 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2305 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2306 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2307 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2308 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2309 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2310 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2311 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2312 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2313 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2314 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2315 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2316 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2317 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2318 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2319 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2320 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2321 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2322 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2323 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2324 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2325 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2326 313, 314, 0, 0, 444, 445, 0, 0, 0, 0,
2327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2328 0, 0, 0, 446, 447, 0, 0, 0, 554, 652,
2329 0, 0, 0, 0, 0, 448, 449, 450, 451, 0,
2330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 452, 453, 454, 455,
2332 456, 321, 0, 0, 0, 0, 326, 327, 0, 0,
2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 0, 0, 0, 0, 0, 0, 0, 0, 457,
2335 458, 459, 460, 461, 462, 463, 464, 0, 0, 0,
2336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2337 0, 347, 2, 3, 4, 5, 6, 7, 8, 9,
2338 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2339 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2340 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2341 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2342 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
2343 0, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2344 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2345 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2346 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2347 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2348 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2349 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2350 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2351 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2352 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2353 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2354 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2355 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2356 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2357 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2358 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2359 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2360 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2361 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2362 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2363 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2364 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2365 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2366 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2367 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2368 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 446, 447, 0, 0,
2371 0, 554, 725, 0, 0, 0, 0, 0, 448, 449,
2372 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 452,
2374 453, 454, 455, 456, 321, 0, 0, 0, 0, 326,
2375 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 0, 0, 457, 458, 459, 460, 461, 462, 463, 464,
2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2379 0, 0, 0, 0, 347, 2, 3, 4, 5, 6,
2380 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2381 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2382 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2383 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2384 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2385 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
2386 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2387 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2388 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2389 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2390 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2391 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2392 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2393 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2394 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2395 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2396 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2397 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2398 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2399 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2400 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2401 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2402 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2403 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2404 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2405 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2406 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2407 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2408 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2409 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2410 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
2411 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
2413 447, 0, 0, 492, 0, 0, 0, 0, 0, 0,
2414 0, 448, 449, 450, 451, 0, 0, 0, 0, 0,
2415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2416 0, 0, 452, 453, 454, 455, 456, 321, 0, 0,
2417 0, 0, 326, 327, 0, 0, 0, 0, 0, 0,
2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2419 0, 0, 0, 0, 0, 457, 458, 459, 460, 461,
2420 462, 463, 464, 0, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 347, 2, 3,
2422 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2423 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2424 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2425 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2426 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2427 54, 55, 56, 57, 58, 0, 0, 61, 62, 63,
2428 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2429 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2430 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2431 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2432 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2433 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2434 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2435 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2436 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2437 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2438 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2439 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2440 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2441 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2442 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2443 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2444 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2445 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2446 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2447 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2448 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2449 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2450 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2451 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2452 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2453 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2455 0, 0, 446, 447, 0, 0, 0, 554, 0, 0,
2456 0, 0, 0, 0, 448, 449, 450, 451, 0, 0,
2457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2458 0, 0, 0, 0, 0, 452, 453, 454, 455, 456,
2459 321, 0, 0, 0, 0, 326, 327, 0, 0, 0,
2460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2461 0, 0, 0, 0, 0, 0, 0, 0, 457, 458,
2462 459, 460, 461, 462, 463, 464, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 347, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2465 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2466 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2467 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2468 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2469 51, 52, 53, 54, 55, 56, 57, 58, 0, 0,
2470 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2471 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2472 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2473 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2474 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2475 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2476 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2477 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2478 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2479 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2480 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2481 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2482 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2483 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2484 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2485 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2486 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2487 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2488 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2489 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2490 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2491 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2492 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2493 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2494 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2495 311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2497 0, 0, 0, 0, 0, 446, 447, 0, 0, 610,
2498 0, 0, 0, 0, 0, 0, 0, 448, 449, 450,
2499 451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 0, 0, 0, 0, 0, 0, 0, 0, 452, 453,
2501 454, 455, 456, 321, 0, 0, 0, 0, 326, 327,
2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2504 0, 457, 458, 459, 460, 461, 462, 463, 464, 0,
2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 347, 2, 3, 4, 5, 6, 7,
2507 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2508 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2509 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2510 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2511 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2512 58, 0, 0, 61, 62, 63, 64, 65, 66, 67,
2513 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2514 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2515 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2516 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2517 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2518 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2519 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2520 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2521 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2522 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2523 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2524 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2525 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2526 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2527 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2528 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2529 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2530 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2531 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2532 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2533 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2534 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2535 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2536 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2537 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
2538 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2539 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 622,
2541 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2543 0, 452, 453, 454, 455, 456, 321, 0, 0, 0,
2544 0, 326, 327, 0, 0, 0, 0, 0, 0, 0,
2545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2546 0, 0, 0, 0, 457, 458, 459, 460, 461, 462,
2547 463, 464, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 0, 0, 0, 0, 347, 2, 3, 4,
2549 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2550 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2551 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2552 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2553 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2554 55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
2555 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2556 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2557 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2558 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2559 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2560 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2561 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2562 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2563 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2564 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2565 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2566 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2567 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2568 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2569 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2570 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2571 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2572 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2573 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2574 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2575 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2576 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2577 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2578 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2579 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2580 0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 446, 447, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 448, 449, 450, 451, 0, 0, 0,
2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 452, 453, 454, 455, 456, 321,
2586 0, 0, 0, 0, 326, 327, 0, 0, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 457, 458, 459,
2589 460, 461, 462, 463, 464, 0, 0, 0, 0, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 347,
2591 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2592 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2593 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2594 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2595 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2596 52, 53, 54, 55, 56, 57, 58, 0, 0, 61,
2597 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2598 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2599 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2600 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2601 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2602 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2603 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2604 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2605 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2606 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2607 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2608 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2609 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2610 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2611 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2612 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2613 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2614 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2615 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2616 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2617 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2618 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2619 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2620 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2621 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2622 312, 313, 314, 0, 0, 444, 445, 0, 0, 475,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 493, 446, 447, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 448, 449, 450, 451,
2626 562, 563, 0, 0, 0, 0, 0, 0, 0, 0,
2627 0, 0, 0, 0, 0, 0, 0, 452, 453, 454,
2628 455, 456, 321, 0, 0, 0, 0, 326, 572, 0,
2629 0, 0, 575, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 493, 0, 0, 0, 0, 0, 0,
2631 457, 458, 459, 460, 461, 462, 463, 464, 0, 0,
2632 0, 0, 493, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 347, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 0, 0, 663, 0, 0, 0, 0, 0, 0, 0,
2640 0, 0, 0, 0, 0, 669, 670, 671, 493, 493,
2641 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
2642 493, 493, 493, 493, 0, 0, 0, 0, 0, 0,
2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 493
2655 static const yytype_int16 yycheck[] =
2657 0, 733, 0, 346, 0, 486, 341, 383, 740, 0,
2658 386, 341, 388, 389, 349, 358, 392, 339, 348, 751,
2659 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2660 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2661 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2662 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2663 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2664 54, 55, 56, 57, 58, 59, 60, 558, 339, 63,
2665 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2666 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2667 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2668 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2669 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2670 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2671 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2672 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2673 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2674 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2675 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2676 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2677 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2678 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2679 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2680 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2681 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2682 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2683 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2684 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2685 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2686 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2687 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2688 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2689 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2690 314, 315, 316, 379, 371, 484, 540, 438, 447, 552,
2691 614, 554, 408, 375, 557, 427, 343, 326, 414, 321,
2692 322, 341, 339, 694, 341, 341, 317, 318, 404, 349,
2693 340, 348, 348, 400, 323, 324, 346, 399, 349, 435,
2694 436, 371, 473, 319, 320, 346, 347, 341, 375, 379,
2695 371, 722, 419, 362, 348, 357, 358, 387, 379, 387,
2696 390, 387, 376, 339, 375, 341, 387, 381, 382, 345,
2697 400, 340, 340, 346, 404, 487, 349, 346, 346, 400,
2698 519, 340, 521, 404, 618, 343, 340, 346, 346, 419,
2699 340, 349, 346, 340, 506, 346, 346, 342, 419, 346,
2700 430, 346, 346, 347, 346, 584, 482, 349, 651, 430,
2701 596, 597, 598, 599, 351, 346, 353, 484, 349, 486,
2702 349, 552, 346, 554, 346, 349, 557, 349, 567, 328,
2703 329, 330, 331, 332, 333, 334, 335, 336, 337, 346,
2704 571, 375, 349, 364, 365, 366, 354, 355, 356, 348,
2705 340, 755, 482, 344, 484, 346, 486, 592, 593, 693,
2706 357, 482, 705, 484, 343, 486, 594, 595, 600, 601,
2707 375, 343, 375, 375, 341, 349, 340, 656, 348, 375,
2708 339, 620, 375, 579, 341, 624, 375, 325, 361, 360,
2709 359, 558, 327, 342, 341, 339, 344, 349, 349, 339,
2710 339, 346, 745, 349, 347, 339, 383, 349, 349, 339,
2711 540, 642, 643, 349, 339, 375, 349, 584, 340, 540,
2712 651, 375, 342, 342, 339, 375, 342, 761, 558, 340,
2713 344, 339, 349, 343, 340, 348, 340, 558, 375, 344,
2714 343, 343, 349, 602, 604, 603, 607, 711, 605, 688,
2715 606, 404, 320, 489, 584, 694, 387, 666, 696, 578,
2716 751, 739, 752, 584, 550, 722, 696, 550, 400, 550,
2717 398, 713, -1, -1, 705, 404, -1, -1, 387, -1,
2718 -1, -1, -1, 722, 614, -1, -1, -1, 618, 656,
2719 -1, -1, -1, 614, -1, 734, 727, 618, -1, 711,
2720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2721 -1, 750, -1, -1, 745, -1, -1, -1, -1, -1,
2722 -1, -1, -1, -1, -1, -1, 656, 694, -1, -1,
2723 -1, -1, -1, -1, -1, 656, -1, -1, -1, -1,
2724 -1, 717, -1, -1, -1, -1, -1, -1, -1, -1,
2725 -1, -1, -1, -1, -1, 722, -1, -1, -1, -1,
2726 -1, -1, -1, 693, 694, -1, 696, -1, -1, -1,
2727 -1, -1, 693, 694, -1, 696, -1, -1, -1, -1,
2728 -1, -1, -1, -1, -1, -1, -1, 717, -1, -1,
2729 -1, -1, 722, -1, -1, -1, 717, -1, -1, -1,
2730 -1, 722, -1, 733, -1, -1, -1, -1, -1, -1,
2731 740, -1, 733, -1, -1, -1, -1, -1, -1, 740,
2732 -1, 751, -1, -1, -1, 755, -1, -1, -1, -1,
2733 751, 761, -1, -1, 755, -1, -1, -1, 0, -1,
2734 761, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2735 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2736 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2737 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2738 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2739 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2740 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2741 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2742 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2743 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2744 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2745 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2746 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2747 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2748 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2749 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2750 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2751 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2752 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2753 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2754 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2755 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2756 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2757 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2758 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2759 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2760 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2761 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2762 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2763 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2764 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2765 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
2766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2768 -1, -1, -1, -1, -1, -1, -1, 349, -1, -1,
2769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2770 -1, 363, 364, 365, 366, 367, -1, -1, -1, -1,
2771 -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
2772 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2773 -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
2774 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
2775 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
2776 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
2777 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
2778 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
2779 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2780 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2781 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2782 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2783 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2784 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2785 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2786 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2787 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2788 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2789 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2790 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2791 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2792 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2793 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2794 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2795 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2796 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2797 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2798 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2799 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2800 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2801 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2802 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2803 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2804 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2805 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2806 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2807 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2808 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2809 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
2810 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2811 -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
2812 -1, 341, -1, 343, 344, -1, -1, -1, -1, 349,
2813 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
2814 -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
2815 -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2816 380, 381, 382, 383, 384, 385, 386, -1, 388, 389,
2817 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
2818 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2819 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2820 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
2821 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
2822 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
2823 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2824 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2825 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2826 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2827 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2828 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2829 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2830 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2831 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2832 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2833 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2834 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2835 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2836 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2837 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2838 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2839 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2840 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2841 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2842 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2843 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2844 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2845 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2846 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2847 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2848 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2849 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2850 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2851 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2852 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2853 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
2854 -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
2855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2856 338, 339, -1, 341, -1, 343, 344, -1, -1, -1,
2857 -1, 349, 350, 351, 352, 353, -1, -1, -1, -1,
2858 -1, -1, -1, -1, -1, 363, 364, 365, 366, 367,
2859 -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
2860 378, 379, 380, 381, 382, 383, 384, 385, 386, -1,
2861 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2862 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
2863 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
2864 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
2865 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
2866 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
2867 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2868 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2869 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2870 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2871 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2872 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2873 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2874 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2875 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2876 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2877 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2878 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2879 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2880 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2881 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2882 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2883 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2884 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2885 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2886 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2887 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2888 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2889 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2890 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2891 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2892 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2893 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2894 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2895 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
2896 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
2897 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
2898 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
2899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2900 -1, -1, 338, 339, -1, 341, -1, 343, -1, -1,
2901 -1, -1, -1, 349, 350, 351, 352, 353, -1, -1,
2902 -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
2903 366, 367, -1, -1, -1, 371, 372, 373, 374, 375,
2904 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
2905 386, -1, 388, 389, 390, 391, 392, 393, 394, 395,
2906 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2907 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
2908 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
2909 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
2910 436, 437, 438, 439, 440, 441, 442, 443, 444, 3,
2911 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2912 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2913 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2914 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2915 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2916 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2917 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2918 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2919 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2920 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2921 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2922 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2923 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2924 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2925 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2926 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2927 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2928 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2929 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2930 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2931 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2932 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2933 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2934 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2935 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2936 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2937 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2938 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2939 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2940 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
2941 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
2942 314, 315, 316, -1, -1, 319, 320, -1, -1, -1,
2943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2944 -1, -1, -1, -1, 338, 339, -1, 341, -1, 343,
2945 -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
2946 -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
2947 364, 365, 366, 367, -1, -1, -1, 371, 372, 373,
2948 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2949 384, 385, 386, -1, 388, 389, 390, 391, 392, 393,
2950 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
2951 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
2952 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
2953 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
2954 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
2955 444, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2956 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2957 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2958 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2959 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2960 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2961 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2962 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2963 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2964 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2965 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2966 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2967 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2968 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2969 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2970 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2971 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2972 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2973 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2974 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2975 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2976 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2977 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2978 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2979 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2980 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2981 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2982 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2983 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2984 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2985 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2986 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
2987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2988 -1, -1, -1, -1, -1, -1, 338, 339, -1, 341,
2989 -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
2990 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
2991 -1, 363, 364, 365, 366, 367, -1, -1, -1, 371,
2992 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
2993 382, 383, 384, 385, 386, -1, 388, 389, 390, 391,
2994 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
2995 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
2996 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
2997 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
2998 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
2999 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
3000 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3001 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3002 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3003 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3004 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3005 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3006 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3007 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3008 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3009 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3010 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3011 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3012 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3013 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3014 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3015 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3016 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3017 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3018 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3019 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3020 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3021 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3022 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3023 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3024 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3025 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3026 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3027 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3028 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3029 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3030 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
3031 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3032 -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
3033 -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
3034 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
3035 -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
3036 -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
3037 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
3038 -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
3039 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3040 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
3041 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
3042 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
3043 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
3044 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3045 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3046 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3047 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3048 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3049 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3050 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3051 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3052 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3053 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3054 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3055 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3056 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3057 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3058 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3059 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3060 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3061 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3062 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3063 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3064 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3065 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3066 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3067 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3068 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3069 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3070 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3071 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3072 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3073 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3074 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
3075 -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
3076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3077 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
3078 -1, -1, 350, 351, 352, 353, -1, -1, -1, -1,
3079 -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
3080 -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
3081 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
3082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3083 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
3084 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
3085 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
3086 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
3087 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
3088 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3089 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3090 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3091 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3092 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3093 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
3094 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3095 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3096 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3097 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3098 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3099 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3100 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3101 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3102 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3103 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3104 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3105 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3106 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3107 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3108 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3109 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3110 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3111 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3112 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3113 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3114 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3115 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3116 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3117 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3118 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3119 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3122 -1, -1, -1, 349, -1, -1, -1, -1, -1, -1,
3123 -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
3124 366, 367, -1, -1, -1, -1, -1, -1, -1, -1,
3125 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
3126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3127 -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
3128 -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
3129 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
3130 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
3131 436, 437, 438, 439, 440, 441, 442, 443, 444, 3,
3132 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3133 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3134 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3135 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3136 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3137 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
3138 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3139 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3140 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3141 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3142 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3143 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3144 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3145 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3146 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3147 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3148 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3149 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3150 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3151 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3152 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3153 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3154 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3155 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3156 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3157 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3158 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3159 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3160 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3161 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3162 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3163 314, 315, 316, -1, -1, -1, -1, -1, -1, -1,
3164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3165 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3166 -1, -1, -1, -1, -1, 349, -1, -1, -1, -1,
3167 -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
3168 364, 365, 366, -1, -1, -1, -1, -1, -1, -1,
3169 -1, 375, 376, 377, 378, 379, 380, 381, 382, -1,
3170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3171 -1, -1, -1, -1, 398, 399, 400, 401, 402, 403,
3172 -1, -1, -1, -1, -1, -1, -1, -1, 412, -1,
3173 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
3174 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
3175 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
3176 444, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3177 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3178 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3179 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3180 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3181 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3182 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3183 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3184 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3185 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3186 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3187 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3188 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3189 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3190 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3191 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3192 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3193 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3194 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3195 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3196 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3197 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3198 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3199 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3200 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3201 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3202 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3203 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3204 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3205 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3206 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3207 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
3208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3210 -1, -1, 344, -1, -1, -1, -1, -1, -1, -1,
3211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3212 -1, 363, 364, 365, 366, -1, -1, -1, -1, -1,
3213 -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
3214 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3215 -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
3216 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
3217 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
3218 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
3219 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
3220 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
3221 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3222 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3223 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3224 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3225 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3226 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3227 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3228 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3229 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3230 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3231 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3232 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3233 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3234 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3235 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3236 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3237 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3238 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3239 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3240 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3241 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3242 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3243 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3244 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3245 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3246 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3247 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3248 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3249 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3250 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3251 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
3252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3254 -1, -1, -1, -1, 344, -1, -1, -1, -1, -1,
3255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3256 -1, -1, -1, 363, 364, 365, 366, -1, -1, -1,
3257 -1, -1, -1, -1, -1, -1, 376, 377, 378, 379,
3258 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
3259 -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
3260 400, 401, 402, 403, -1, -1, -1, -1, -1, -1,
3261 -1, -1, 412, -1, 414, 415, 416, 417, 418, 419,
3262 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
3263 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
3264 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
3265 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3266 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3267 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3268 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3269 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3270 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3271 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3272 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3273 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3274 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3275 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3276 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3277 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3278 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3279 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3280 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3281 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3282 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3283 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3284 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3285 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3286 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3287 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3288 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3289 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3290 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3291 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3292 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3293 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3294 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3295 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
3296 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3298 -1, -1, -1, -1, -1, -1, 344, -1, -1, -1,
3299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3300 -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
3301 -1, -1, -1, -1, -1, -1, -1, -1, 376, 377,
3302 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
3303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3304 398, 399, 400, 401, 402, 403, -1, -1, -1, -1,
3305 -1, -1, -1, -1, 412, -1, 414, 415, 416, 417,
3306 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
3307 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
3308 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
3309 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3310 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3311 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3312 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3313 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3314 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
3315 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3316 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3317 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3318 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3319 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3320 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3321 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3322 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3323 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3324 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3325 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3326 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3327 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3328 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3329 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3330 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3331 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3332 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3333 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3334 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3335 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3336 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3337 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3338 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3339 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3340 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3342 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3344 -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
3345 366, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3346 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
3347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3348 -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
3349 -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
3350 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
3351 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
3352 436, 437, 438, 439, 440, 441, 442, 443, 444, 4,
3353 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3354 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3355 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3356 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3357 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3358 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
3359 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3360 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3361 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3362 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3363 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3364 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3365 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
3366 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3367 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
3368 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
3369 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3370 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
3371 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
3372 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
3373 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
3374 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
3375 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
3376 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
3377 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
3378 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
3379 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
3380 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
3381 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
3382 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
3383 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3384 315, 316, -1, -1, 319, 320, -1, -1, -1, -1,
3385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3386 -1, -1, -1, 338, 339, -1, -1, -1, 343, 344,
3387 -1, -1, -1, -1, -1, 350, 351, 352, 353, -1,
3388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3389 -1, -1, -1, -1, -1, -1, 371, 372, 373, 374,
3390 375, 376, -1, -1, -1, -1, 381, 382, -1, -1,
3391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3392 -1, -1, -1, -1, -1, -1, -1, -1, -1, 404,
3393 405, 406, 407, 408, 409, 410, 411, -1, -1, -1,
3394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3395 -1, 426, 4, 5, 6, 7, 8, 9, 10, 11,
3396 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3397 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3398 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3399 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3400 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3401 -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3402 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3403 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3404 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3405 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3406 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3407 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3408 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3409 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3410 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3411 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3412 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3413 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3414 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3415 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3416 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3417 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3418 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3419 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3420 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3421 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3422 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3423 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3424 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3425 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3426 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
3427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3428 -1, -1, -1, -1, -1, -1, 338, 339, -1, -1,
3429 -1, 343, 344, -1, -1, -1, -1, -1, 350, 351,
3430 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
3431 -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
3432 372, 373, 374, 375, 376, -1, -1, -1, -1, 381,
3433 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3435 -1, -1, 404, 405, 406, 407, 408, 409, 410, 411,
3436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3437 -1, -1, -1, -1, 426, 4, 5, 6, 7, 8,
3438 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3439 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3440 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3441 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
3442 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3443 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
3444 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3445 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3446 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
3447 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3448 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3449 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3450 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3451 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3452 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
3453 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
3454 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3455 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3456 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
3457 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
3458 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
3459 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
3460 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
3461 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
3462 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
3463 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
3464 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
3465 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
3466 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
3467 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
3468 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
3469 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
3470 -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
3471 339, -1, -1, 342, -1, -1, -1, -1, -1, -1,
3472 -1, 350, 351, 352, 353, -1, -1, -1, -1, -1,
3473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3474 -1, -1, 371, 372, 373, 374, 375, 376, -1, -1,
3475 -1, -1, 381, 382, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3477 -1, -1, -1, -1, -1, 404, 405, 406, 407, 408,
3478 409, 410, 411, -1, -1, -1, -1, -1, -1, -1,
3479 -1, -1, -1, -1, -1, -1, -1, 426, 4, 5,
3480 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3481 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3482 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3483 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3484 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3485 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
3486 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3487 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3488 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3489 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3490 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3491 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3492 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3493 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3494 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3495 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3496 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3497 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3498 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3499 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3500 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3501 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3502 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3503 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3504 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3505 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3506 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3507 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3508 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
3509 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
3510 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3511 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
3512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3513 -1, -1, 338, 339, -1, -1, -1, 343, -1, -1,
3514 -1, -1, -1, -1, 350, 351, 352, 353, -1, -1,
3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3516 -1, -1, -1, -1, -1, 371, 372, 373, 374, 375,
3517 376, -1, -1, -1, -1, 381, 382, -1, -1, -1,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, -1, -1, -1, -1, -1, -1, -1, 404, 405,
3520 406, 407, 408, 409, 410, 411, -1, -1, -1, -1,
3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3522 426, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3523 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3524 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3525 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3526 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3527 53, 54, 55, 56, 57, 58, 59, 60, -1, -1,
3528 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3529 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3530 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3531 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3532 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3533 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3534 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3535 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3536 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3537 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3538 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3539 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3540 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3541 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3542 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3543 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3544 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3545 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3546 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3547 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3548 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3549 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3550 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3551 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3552 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3553 313, 314, 315, 316, -1, -1, 319, 320, -1, -1,
3554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, 338, 339, -1, -1, 342,
3556 -1, -1, -1, -1, -1, -1, -1, 350, 351, 352,
3557 353, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3558 -1, -1, -1, -1, -1, -1, -1, -1, 371, 372,
3559 373, 374, 375, 376, -1, -1, -1, -1, 381, 382,
3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3562 -1, 404, 405, 406, 407, 408, 409, 410, 411, -1,
3563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3564 -1, -1, -1, 426, 4, 5, 6, 7, 8, 9,
3565 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3566 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3567 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3568 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3569 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3570 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
3571 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3572 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3573 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3574 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3575 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3576 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3577 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3578 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3579 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3580 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3581 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3582 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3583 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3584 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3585 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3586 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3587 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3588 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3589 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3590 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3591 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3592 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3593 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
3594 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
3595 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
3596 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3597 -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
3598 -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
3599 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
3600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3601 -1, 371, 372, 373, 374, 375, 376, -1, -1, -1,
3602 -1, 381, 382, -1, -1, -1, -1, -1, -1, -1,
3603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3604 -1, -1, -1, -1, 404, 405, 406, 407, 408, 409,
3605 410, 411, -1, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, -1, -1, 426, 4, 5, 6,
3607 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3608 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3609 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3610 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3611 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3612 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
3613 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3614 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3615 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3616 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3617 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3618 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3619 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3620 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3621 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
3622 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
3623 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
3624 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
3625 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
3626 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
3627 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
3628 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
3629 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
3630 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
3631 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
3632 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
3633 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
3634 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
3635 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
3636 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
3637 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
3638 -1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3640 -1, 338, 339, -1, -1, -1, -1, -1, -1, -1,
3641 -1, -1, -1, 350, 351, 352, 353, -1, -1, -1,
3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, 371, 372, 373, 374, 375, 376,
3644 -1, -1, -1, -1, 381, 382, -1, -1, -1, -1,
3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3646 -1, -1, -1, -1, -1, -1, -1, 404, 405, 406,
3647 407, 408, 409, 410, 411, -1, -1, -1, -1, -1,
3648 -1, -1, -1, -1, -1, -1, -1, -1, -1, 426,
3649 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3650 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3651 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3652 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3653 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3654 54, 55, 56, 57, 58, 59, 60, -1, -1, 63,
3655 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3656 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3657 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3658 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3659 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3660 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3661 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3662 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3663 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3664 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3665 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3666 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3667 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3668 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3669 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3670 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3671 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3672 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3673 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3674 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3675 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3676 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3677 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3678 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
3679 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
3680 314, 315, 316, -1, -1, 319, 320, -1, -1, 413,
3681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3682 -1, -1, -1, 427, 338, 339, -1, -1, -1, -1,
3683 -1, -1, -1, -1, -1, -1, 350, 351, 352, 353,
3684 444, 445, -1, -1, -1, -1, -1, -1, -1, -1,
3685 -1, -1, -1, -1, -1, -1, -1, 371, 372, 373,
3686 374, 375, 376, -1, -1, -1, -1, 381, 382, -1,
3687 -1, -1, 476, -1, -1, -1, -1, -1, -1, -1,
3688 -1, -1, -1, 487, -1, -1, -1, -1, -1, -1,
3689 404, 405, 406, 407, 408, 409, 410, 411, -1, -1,
3690 -1, -1, 506, -1, -1, -1, -1, -1, -1, -1,
3691 -1, -1, 426, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3697 -1, -1, 576, -1, -1, -1, -1, -1, -1, -1,
3698 -1, -1, -1, -1, -1, 589, 590, 591, 592, 593,
3699 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
3700 604, 605, 606, 607, -1, -1, -1, -1, -1, -1,
3701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3710 -1, -1, -1, -1, -1, -1, -1, 711
3713 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3714 symbol of state STATE-NUM. */
3715 static const yytype_int16 yystos[] =
3717 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3718 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3719 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3720 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3721 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3722 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3723 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3724 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3725 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3726 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3727 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3728 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3729 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3730 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3731 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3732 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3733 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3734 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3735 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3736 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3737 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3738 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3739 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3740 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3741 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3742 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3743 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3744 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3745 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3746 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
3747 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3748 312, 313, 314, 315, 316, 349, 363, 364, 365, 366,
3749 367, 376, 377, 378, 379, 380, 381, 382, 398, 399,
3750 400, 401, 402, 403, 412, 414, 415, 416, 417, 418,
3751 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
3752 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
3753 439, 440, 441, 442, 443, 444, 476, 477, 480, 481,
3754 482, 483, 487, 488, 489, 490, 491, 492, 495, 496,
3755 497, 498, 499, 501, 506, 507, 508, 549, 550, 551,
3756 507, 343, 375, 339, 339, 349, 375, 349, 552, 340,
3757 346, 484, 485, 486, 496, 501, 346, 349, 375, 349,
3758 375, 497, 501, 357, 503, 504, 0, 550, 501, 510,
3759 343, 375, 399, 493, 494, 375, 500, 341, 349, 502,
3760 343, 528, 485, 484, 486, 375, 375, 339, 348, 502,
3761 343, 346, 349, 479, 319, 320, 338, 339, 350, 351,
3762 352, 353, 371, 372, 373, 374, 375, 404, 405, 406,
3763 407, 408, 409, 410, 411, 446, 447, 448, 450, 451,
3764 452, 453, 454, 455, 456, 457, 458, 499, 501, 505,
3765 502, 349, 496, 501, 511, 512, 509, 348, 340, 346,
3766 340, 346, 342, 457, 459, 460, 461, 462, 463, 464,
3767 465, 466, 467, 468, 469, 470, 341, 349, 341, 343,
3768 344, 349, 383, 384, 385, 386, 388, 389, 390, 391,
3769 392, 393, 394, 395, 396, 397, 413, 457, 470, 472,
3770 474, 476, 480, 499, 501, 517, 518, 519, 520, 521,
3771 529, 530, 531, 532, 535, 536, 539, 540, 541, 548,
3772 553, 502, 348, 502, 343, 472, 515, 348, 478, 375,
3773 346, 349, 457, 457, 474, 319, 320, 341, 345, 340,
3774 340, 346, 382, 472, 339, 457, 346, 358, 501, 375,
3775 513, 514, 344, 512, 511, 470, 475, 494, 375, 354,
3776 355, 356, 351, 353, 317, 318, 321, 322, 357, 358,
3777 323, 324, 361, 360, 359, 325, 327, 326, 362, 342,
3778 342, 470, 341, 344, 522, 339, 349, 349, 543, 339,
3779 339, 349, 349, 474, 339, 474, 347, 349, 349, 349,
3780 349, 328, 329, 330, 331, 332, 333, 334, 335, 336,
3781 337, 348, 473, 346, 349, 344, 518, 532, 536, 541,
3782 515, 348, 344, 515, 516, 515, 511, 375, 340, 449,
3783 474, 375, 472, 457, 513, 502, 346, 349, 344, 457,
3784 457, 457, 459, 459, 460, 460, 461, 461, 461, 461,
3785 462, 462, 463, 464, 465, 466, 467, 468, 471, 342,
3786 375, 554, 555, 529, 542, 518, 544, 474, 349, 474,
3787 347, 472, 472, 515, 344, 346, 344, 342, 349, 514,
3788 474, 339, 342, 346, 523, 474, 489, 496, 534, 383,
3789 517, 530, 545, 340, 340, 344, 515, 347, 475, 342,
3790 555, 344, 375, 340, 339, 534, 546, 547, 525, 526,
3791 527, 533, 537, 472, 340, 348, 519, 524, 528, 474,
3792 349, 340, 387, 521, 519, 343, 515, 340, 474, 524,
3793 525, 529, 538, 349, 344
3796 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
3797 static const yytype_int16 yyr1[] =
3799 0, 445, 446, 447, 447, 447, 447, 447, 447, 447,
3800 447, 447, 447, 447, 447, 447, 447, 447, 448, 448,
3801 448, 448, 448, 448, 449, 450, 451, 452, 452, 453,
3802 453, 454, 454, 455, 456, 456, 456, 457, 457, 457,
3803 457, 458, 458, 458, 458, 459, 459, 459, 459, 460,
3804 460, 460, 461, 461, 461, 462, 462, 462, 462, 462,
3805 463, 463, 463, 464, 464, 465, 465, 466, 466, 467,
3806 467, 468, 468, 469, 469, 470, 471, 470, 472, 472,
3807 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
3808 473, 474, 474, 475, 476, 476, 476, 476, 476, 476,
3809 476, 476, 476, 478, 477, 479, 479, 480, 481, 481,
3810 482, 482, 483, 484, 484, 485, 485, 485, 485, 486,
3811 487, 487, 487, 487, 487, 488, 488, 488, 488, 488,
3812 489, 489, 490, 491, 491, 491, 491, 491, 491, 491,
3813 491, 492, 493, 493, 494, 494, 494, 495, 496, 496,
3814 497, 497, 497, 497, 497, 497, 497, 498, 498, 498,
3815 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
3816 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
3817 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
3818 498, 498, 499, 500, 500, 501, 501, 502, 502, 502,
3819 502, 503, 503, 504, 505, 505, 506, 506, 506, 506,
3820 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3821 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3822 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3823 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3824 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3825 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3826 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3827 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3828 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3829 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3830 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3831 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3832 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3833 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3834 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3835 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3836 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3837 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3838 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3839 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3840 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3841 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3842 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3843 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3844 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3845 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3846 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3847 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3848 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3849 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3850 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
3851 507, 507, 507, 509, 508, 510, 508, 511, 511, 512,
3852 512, 513, 513, 514, 514, 515, 515, 515, 515, 516,
3853 516, 517, 518, 518, 519, 519, 519, 519, 519, 519,
3854 519, 519, 520, 521, 522, 523, 521, 524, 524, 526,
3855 525, 527, 525, 528, 528, 529, 529, 530, 530, 531,
3856 531, 532, 533, 533, 534, 534, 535, 535, 537, 536,
3857 538, 538, 539, 539, 540, 540, 542, 541, 543, 541,
3858 544, 541, 545, 545, 546, 546, 547, 547, 548, 548,
3859 548, 548, 548, 548, 548, 548, 549, 549, 550, 550,
3860 550, 552, 551, 553, 554, 554, 555, 555
3863 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
3864 static const yytype_int8 yyr2[] =
3866 0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
3867 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
3868 1, 3, 2, 2, 1, 1, 1, 2, 2, 2,
3869 1, 2, 3, 2, 1, 1, 1, 1, 2, 2,
3870 2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
3871 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
3872 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
3873 3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
3874 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3875 1, 1, 3, 1, 2, 2, 4, 2, 3, 4,
3876 2, 3, 4, 0, 6, 2, 3, 2, 1, 1,
3877 2, 3, 3, 2, 3, 2, 1, 2, 1, 1,
3878 1, 3, 4, 6, 5, 1, 2, 3, 5, 4,
3879 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
3880 1, 4, 1, 3, 1, 3, 1, 1, 1, 2,
3881 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3885 1, 4, 1, 1, 3, 2, 3, 2, 3, 3,
3886 4, 1, 0, 3, 1, 3, 1, 1, 1, 1,
3887 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3889 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3890 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3891 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3893 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3894 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3895 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3896 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3897 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3898 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3899 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3901 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3902 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3905 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3906 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3907 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3908 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3909 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3910 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3911 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3912 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3913 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3914 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3915 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3916 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3917 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3918 1, 1, 1, 0, 6, 0, 5, 1, 2, 3,
3919 4, 1, 3, 1, 2, 1, 3, 4, 2, 1,
3920 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3921 1, 1, 2, 2, 0, 0, 5, 1, 1, 0,
3922 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
3923 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
3924 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
3925 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
3926 2, 3, 2, 2, 2, 2, 1, 2, 1, 1,
3927 1, 0, 3, 5, 1, 3, 1, 4
3931 enum { YYENOMEM = -2 };
3933 #define yyerrok (yyerrstatus = 0)
3934 #define yyclearin (yychar = YYEMPTY)
3936 #define YYACCEPT goto yyacceptlab
3937 #define YYABORT goto yyabortlab
3938 #define YYERROR goto yyerrorlab
3941 #define YYRECOVERING() (!!yyerrstatus)
3943 #define YYBACKUP(Token, Value) \
3945 if (yychar == YYEMPTY) \
3949 YYPOPSTACK (yylen); \
3955 yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3960 /* Backward compatibility with an undocumented macro.
3961 Use YYerror or YYUNDEF. */
3962 #define YYERRCODE YYUNDEF
3965 /* Enable debugging if requested. */
3969 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3970 # define YYFPRINTF fprintf
3973 # define YYDPRINTF(Args) \
3979 /* This macro is provided for backward compatibility. */
3980 # ifndef YY_LOCATION_PRINT
3981 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3985 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
3989 YYFPRINTF (stderr, "%s ", Title); \
3990 yy_symbol_print (stderr, \
3991 Kind, Value, pParseContext); \
3992 YYFPRINTF (stderr, "\n"); \
3997 /*-----------------------------------.
3998 | Print this symbol's value on YYO. |
3999 `-----------------------------------*/
4002 yy_symbol_value_print (FILE *yyo,
4003 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4005 FILE *yyoutput = yyo;
4007 YYUSE (pParseContext);
4011 if (yykind < YYNTOKENS)
4012 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
4014 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4016 YY_IGNORE_MAYBE_UNINITIALIZED_END
4020 /*---------------------------.
4021 | Print this symbol on YYO. |
4022 `---------------------------*/
4025 yy_symbol_print (FILE *yyo,
4026 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4028 YYFPRINTF (yyo, "%s %s (",
4029 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
4031 yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
4032 YYFPRINTF (yyo, ")");
4035 /*------------------------------------------------------------------.
4036 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4038 `------------------------------------------------------------------*/
4041 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
4043 YYFPRINTF (stderr, "Stack now");
4044 for (; yybottom <= yytop; yybottom++)
4046 int yybot = *yybottom;
4047 YYFPRINTF (stderr, " %d", yybot);
4049 YYFPRINTF (stderr, "\n");
4052 # define YY_STACK_PRINT(Bottom, Top) \
4055 yy_stack_print ((Bottom), (Top)); \
4059 /*------------------------------------------------.
4060 | Report that the YYRULE is going to be reduced. |
4061 `------------------------------------------------*/
4064 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
4065 int yyrule, glslang::TParseContext* pParseContext)
4067 int yylno = yyrline[yyrule];
4068 int yynrhs = yyr2[yyrule];
4070 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
4072 /* The symbols being reduced. */
4073 for (yyi = 0; yyi < yynrhs; yyi++)
4075 YYFPRINTF (stderr, " $%d = ", yyi + 1);
4076 yy_symbol_print (stderr,
4077 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
4078 &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
4079 YYFPRINTF (stderr, "\n");
4083 # define YY_REDUCE_PRINT(Rule) \
4086 yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
4089 /* Nonzero means print parse trace. It is left uninitialized so that
4090 multiple parsers can coexist. */
4092 #else /* !YYDEBUG */
4093 # define YYDPRINTF(Args) ((void) 0)
4094 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
4095 # define YY_STACK_PRINT(Bottom, Top)
4096 # define YY_REDUCE_PRINT(Rule)
4097 #endif /* !YYDEBUG */
4100 /* YYINITDEPTH -- initial size of the parser's stacks. */
4102 # define YYINITDEPTH 200
4105 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4106 if the built-in stack extension method is used).
4108 Do not make this value too large; the results are undefined if
4109 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4110 evaluated with infinite-precision integer arithmetic. */
4113 # define YYMAXDEPTH 10000
4117 /* Context of a parse error. */
4121 yysymbol_kind_t yytoken;
4124 /* Put in YYARG at most YYARGN of the expected tokens given the
4125 current YYCTX, and return the number of tokens stored in YYARG. If
4126 YYARG is null, return the number of expected tokens (guaranteed to
4127 be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
4128 Return 0 if there are more than YYARGN expected tokens, yet fill
4129 YYARG up to YYARGN. */
4131 yypcontext_expected_tokens (const yypcontext_t *yyctx,
4132 yysymbol_kind_t yyarg[], int yyargn)
4134 /* Actual size of YYARG. */
4136 int yyn = yypact[+*yyctx->yyssp];
4137 if (!yypact_value_is_default (yyn))
4139 /* Start YYX at -YYN if negative to avoid negative indexes in
4140 YYCHECK. In other words, skip the first -YYN actions for
4141 this state because they are default actions. */
4142 int yyxbegin = yyn < 0 ? -yyn : 0;
4143 /* Stay within bounds of both yycheck and yytname. */
4144 int yychecklim = YYLAST - yyn + 1;
4145 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4147 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4148 if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
4149 && !yytable_value_is_error (yytable[yyx + yyn]))
4153 else if (yycount == yyargn)
4156 yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
4159 if (yyarg && yycount == 0 && 0 < yyargn)
4160 yyarg[0] = YYSYMBOL_YYEMPTY;
4168 # if defined __GLIBC__ && defined _STRING_H
4169 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
4171 /* Return the length of YYSTR. */
4173 yystrlen (const char *yystr)
4176 for (yylen = 0; yystr[yylen]; yylen++)
4184 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4185 # define yystpcpy stpcpy
4187 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4190 yystpcpy (char *yydest, const char *yysrc)
4193 const char *yys = yysrc;
4195 while ((*yyd++ = *yys++) != '\0')
4204 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4205 quotes and backslashes, so that it's suitable for yyerror. The
4206 heuristic is that double-quoting is unnecessary unless the string
4207 contains an apostrophe, a comma, or backslash (other than
4208 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4209 null, do not copy; instead, return the length of what the result
4212 yytnamerr (char *yyres, const char *yystr)
4216 YYPTRDIFF_T yyn = 0;
4217 char const *yyp = yystr;
4223 goto do_not_strip_quotes;
4227 goto do_not_strip_quotes;
4243 do_not_strip_quotes: ;
4247 return yystpcpy (yyres, yystr) - yyres;
4249 return yystrlen (yystr);
4255 yy_syntax_error_arguments (const yypcontext_t *yyctx,
4256 yysymbol_kind_t yyarg[], int yyargn)
4258 /* Actual size of YYARG. */
4260 /* There are many possibilities here to consider:
4261 - If this state is a consistent state with a default action, then
4262 the only way this function was invoked is if the default action
4263 is an error action. In that case, don't check for expected
4264 tokens because there are none.
4265 - The only way there can be no lookahead present (in yychar) is if
4266 this state is a consistent state with a default action. Thus,
4267 detecting the absence of a lookahead is sufficient to determine
4268 that there is no unexpected or expected token to report. In that
4269 case, just report a simple "syntax error".
4270 - Don't assume there isn't a lookahead just because this state is a
4271 consistent state with a default action. There might have been a
4272 previous inconsistent state, consistent state with a non-default
4273 action, or user semantic action that manipulated yychar.
4274 - Of course, the expected token list depends on states to have
4275 correct lookahead information, and it depends on the parser not
4276 to perform extra reductions after fetching a lookahead from the
4277 scanner and before detecting a syntax error. Thus, state merging
4278 (from LALR or IELR) and default reductions corrupt the expected
4279 token list. However, the list is correct for canonical LR with
4280 one exception: it will still contain any token that will not be
4281 accepted due to an error action in a later state.
4283 if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
4287 yyarg[yycount] = yyctx->yytoken;
4289 yyn = yypcontext_expected_tokens (yyctx,
4290 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4291 if (yyn == YYENOMEM)
4299 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
4300 about the unexpected token YYTOKEN for the state stack whose top is
4303 Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
4304 not large enough to hold the message. In that case, also set
4305 *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
4306 required number of bytes is too large to store. */
4308 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
4309 const yypcontext_t *yyctx)
4311 enum { YYARGS_MAX = 5 };
4312 /* Internationalized format string. */
4313 const char *yyformat = YY_NULLPTR;
4314 /* Arguments of yyformat: reported tokens (one for the "unexpected",
4315 one per "expected"). */
4316 yysymbol_kind_t yyarg[YYARGS_MAX];
4317 /* Cumulated lengths of YYARG. */
4318 YYPTRDIFF_T yysize = 0;
4320 /* Actual size of YYARG. */
4321 int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
4322 if (yycount == YYENOMEM)
4327 #define YYCASE_(N, S) \
4331 default: /* Avoid compiler warnings. */
4332 YYCASE_(0, YY_("syntax error"));
4333 YYCASE_(1, YY_("syntax error, unexpected %s"));
4334 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
4335 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
4336 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
4337 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4341 /* Compute error message size. Don't count the "%s"s, but reserve
4342 room for the terminator. */
4343 yysize = yystrlen (yyformat) - 2 * yycount + 1;
4346 for (yyi = 0; yyi < yycount; ++yyi)
4349 = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
4350 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
4357 if (*yymsg_alloc < yysize)
4359 *yymsg_alloc = 2 * yysize;
4360 if (! (yysize <= *yymsg_alloc
4361 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
4362 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
4366 /* Avoid sprintf, as that infringes on the user's name space.
4367 Don't have undefined behavior even if the translation
4368 produced a string with the wrong number of "%s"s. */
4372 while ((*yyp = *yyformat) != '\0')
4373 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4375 yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
4388 /*-----------------------------------------------.
4389 | Release the memory associated to this symbol. |
4390 `-----------------------------------------------*/
4393 yydestruct (const char *yymsg,
4394 yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
4397 YYUSE (pParseContext);
4400 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4402 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4404 YY_IGNORE_MAYBE_UNINITIALIZED_END
4417 yyparse (glslang::TParseContext* pParseContext)
4419 /* Lookahead token kind. */
4423 /* The semantic value of the lookahead symbol. */
4424 /* Default value used for initialization, for pacifying older GCCs
4425 or non-GCC compilers. */
4426 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4427 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4429 /* Number of syntax errors so far. */
4432 yy_state_fast_t yystate = 0;
4433 /* Number of tokens to shift before error messages enabled. */
4434 int yyerrstatus = 0;
4436 /* Refer to the stacks through separate pointers, to allow yyoverflow
4437 to reallocate them elsewhere. */
4440 YYPTRDIFF_T yystacksize = YYINITDEPTH;
4442 /* The state stack: array, bottom, top. */
4443 yy_state_t yyssa[YYINITDEPTH];
4444 yy_state_t *yyss = yyssa;
4445 yy_state_t *yyssp = yyss;
4447 /* The semantic value stack: array, bottom, top. */
4448 YYSTYPE yyvsa[YYINITDEPTH];
4449 YYSTYPE *yyvs = yyvsa;
4450 YYSTYPE *yyvsp = yyvs;
4453 /* The return value of yyparse. */
4455 /* Lookahead symbol kind. */
4456 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4457 /* The variables used to return semantic value and location from the
4461 /* Buffer for error messages, and its allocated size. */
4463 char *yymsg = yymsgbuf;
4464 YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
4466 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4468 /* The number of symbols on the RHS of the reduced rule.
4469 Keep to zero when no symbol should be popped. */
4472 YYDPRINTF ((stderr, "Starting parse\n"));
4474 yychar = YYEMPTY; /* Cause a token to be read. */
4478 /*------------------------------------------------------------.
4479 | yynewstate -- push a new state, which is found in yystate. |
4480 `------------------------------------------------------------*/
4482 /* In all cases, when you get here, the value and location stacks
4483 have just been pushed. So pushing a state here evens the stacks. */
4487 /*--------------------------------------------------------------------.
4488 | yysetstate -- set current state (the top of the stack) to yystate. |
4489 `--------------------------------------------------------------------*/
4491 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4492 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
4493 YY_IGNORE_USELESS_CAST_BEGIN
4494 *yyssp = YY_CAST (yy_state_t, yystate);
4495 YY_IGNORE_USELESS_CAST_END
4496 YY_STACK_PRINT (yyss, yyssp);
4498 if (yyss + yystacksize - 1 <= yyssp)
4499 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
4500 goto yyexhaustedlab;
4503 /* Get the current used size of the three stacks, in elements. */
4504 YYPTRDIFF_T yysize = yyssp - yyss + 1;
4506 # if defined yyoverflow
4508 /* Give user a chance to reallocate the stack. Use copies of
4509 these so that the &'s don't force the real ones into
4511 yy_state_t *yyss1 = yyss;
4512 YYSTYPE *yyvs1 = yyvs;
4514 /* Each stack pointer address is followed by the size of the
4515 data in use in that stack, in bytes. This used to be a
4516 conditional around just the two extra args, but that might
4517 be undefined if yyoverflow is a macro. */
4518 yyoverflow (YY_("memory exhausted"),
4519 &yyss1, yysize * YYSIZEOF (*yyssp),
4520 &yyvs1, yysize * YYSIZEOF (*yyvsp),
4525 # else /* defined YYSTACK_RELOCATE */
4526 /* Extend the stack our own way. */
4527 if (YYMAXDEPTH <= yystacksize)
4528 goto yyexhaustedlab;
4530 if (YYMAXDEPTH < yystacksize)
4531 yystacksize = YYMAXDEPTH;
4534 yy_state_t *yyss1 = yyss;
4535 union yyalloc *yyptr =
4536 YY_CAST (union yyalloc *,
4537 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
4539 goto yyexhaustedlab;
4540 YYSTACK_RELOCATE (yyss_alloc, yyss);
4541 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4542 # undef YYSTACK_RELOCATE
4544 YYSTACK_FREE (yyss1);
4548 yyssp = yyss + yysize - 1;
4549 yyvsp = yyvs + yysize - 1;
4551 YY_IGNORE_USELESS_CAST_BEGIN
4552 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
4553 YY_CAST (long, yystacksize)));
4554 YY_IGNORE_USELESS_CAST_END
4556 if (yyss + yystacksize - 1 <= yyssp)
4559 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
4561 if (yystate == YYFINAL)
4571 /* Do appropriate processing given the current state. Read a
4572 lookahead token if we need one and don't already have one. */
4574 /* First try to decide what to do without reference to lookahead token. */
4575 yyn = yypact[yystate];
4576 if (yypact_value_is_default (yyn))
4579 /* Not known => get a lookahead token if don't already have one. */
4581 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
4582 if (yychar == YYEMPTY)
4584 YYDPRINTF ((stderr, "Reading a token\n"));
4585 yychar = yylex (&yylval, parseContext);
4588 if (yychar <= YYEOF)
4591 yytoken = YYSYMBOL_YYEOF;
4592 YYDPRINTF ((stderr, "Now at end of input.\n"));
4594 else if (yychar == YYerror)
4596 /* The scanner already issued an error message, process directly
4597 to error recovery. But do not keep the error token as
4598 lookahead, it is too special and may lead us to an endless
4599 loop in error recovery. */
4601 yytoken = YYSYMBOL_YYerror;
4606 yytoken = YYTRANSLATE (yychar);
4607 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4610 /* If the proper action on seeing token YYTOKEN is to reduce or to
4611 detect an error, take that action. */
4613 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4618 if (yytable_value_is_error (yyn))
4624 /* Count tokens shifted since error; after three, turn off error
4629 /* Shift the lookahead token. */
4630 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4632 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4634 YY_IGNORE_MAYBE_UNINITIALIZED_END
4636 /* Discard the shifted token. */
4641 /*-----------------------------------------------------------.
4642 | yydefault -- do the default action for the current state. |
4643 `-----------------------------------------------------------*/
4645 yyn = yydefact[yystate];
4651 /*-----------------------------.
4652 | yyreduce -- do a reduction. |
4653 `-----------------------------*/
4655 /* yyn is the number of a rule to reduce with. */
4658 /* If YYLEN is nonzero, implement the default value of the action:
4661 Otherwise, the following line sets YYVAL to garbage.
4662 This behavior is undocumented and Bison
4663 users should not rely upon it. Assigning to YYVAL
4664 unconditionally makes the parser a bit smaller, and it avoids a
4665 GCC warning that YYVAL may be used uninitialized. */
4666 yyval = yyvsp[1-yylen];
4669 YY_REDUCE_PRINT (yyn);
4672 case 2: /* variable_identifier: IDENTIFIER */
4673 #line 371 "MachineIndependent/glslang.y"
4675 (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4677 #line 4678 "MachineIndependent/glslang_tab.cpp"
4680 case 3: /* primary_expression: variable_identifier */
4681 #line 377 "MachineIndependent/glslang.y"
4683 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4685 #line 4686 "MachineIndependent/glslang_tab.cpp"
4688 case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
4689 #line 380 "MachineIndependent/glslang.y"
4691 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4692 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4693 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4695 #line 4696 "MachineIndependent/glslang_tab.cpp"
4698 case 5: /* primary_expression: FLOATCONSTANT */
4699 #line 385 "MachineIndependent/glslang.y"
4701 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4703 #line 4704 "MachineIndependent/glslang_tab.cpp"
4706 case 6: /* primary_expression: INTCONSTANT */
4707 #line 388 "MachineIndependent/glslang.y"
4709 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4711 #line 4712 "MachineIndependent/glslang_tab.cpp"
4714 case 7: /* primary_expression: UINTCONSTANT */
4715 #line 391 "MachineIndependent/glslang.y"
4717 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4718 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4720 #line 4721 "MachineIndependent/glslang_tab.cpp"
4723 case 8: /* primary_expression: BOOLCONSTANT */
4724 #line 395 "MachineIndependent/glslang.y"
4726 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4728 #line 4729 "MachineIndependent/glslang_tab.cpp"
4731 case 9: /* primary_expression: STRING_LITERAL */
4732 #line 399 "MachineIndependent/glslang.y"
4734 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
4736 #line 4737 "MachineIndependent/glslang_tab.cpp"
4739 case 10: /* primary_expression: INT32CONSTANT */
4740 #line 402 "MachineIndependent/glslang.y"
4742 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4743 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4745 #line 4746 "MachineIndependent/glslang_tab.cpp"
4748 case 11: /* primary_expression: UINT32CONSTANT */
4749 #line 406 "MachineIndependent/glslang.y"
4751 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4752 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4754 #line 4755 "MachineIndependent/glslang_tab.cpp"
4757 case 12: /* primary_expression: INT64CONSTANT */
4758 #line 410 "MachineIndependent/glslang.y"
4760 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4761 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4763 #line 4764 "MachineIndependent/glslang_tab.cpp"
4766 case 13: /* primary_expression: UINT64CONSTANT */
4767 #line 414 "MachineIndependent/glslang.y"
4769 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4770 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4772 #line 4773 "MachineIndependent/glslang_tab.cpp"
4775 case 14: /* primary_expression: INT16CONSTANT */
4776 #line 418 "MachineIndependent/glslang.y"
4778 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4779 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4781 #line 4782 "MachineIndependent/glslang_tab.cpp"
4784 case 15: /* primary_expression: UINT16CONSTANT */
4785 #line 422 "MachineIndependent/glslang.y"
4787 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4788 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4790 #line 4791 "MachineIndependent/glslang_tab.cpp"
4793 case 16: /* primary_expression: DOUBLECONSTANT */
4794 #line 426 "MachineIndependent/glslang.y"
4796 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
4797 if (! parseContext.symbolTable.atBuiltInLevel())
4798 parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4799 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4801 #line 4802 "MachineIndependent/glslang_tab.cpp"
4804 case 17: /* primary_expression: FLOAT16CONSTANT */
4805 #line 432 "MachineIndependent/glslang.y"
4807 parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4808 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4810 #line 4811 "MachineIndependent/glslang_tab.cpp"
4813 case 18: /* postfix_expression: primary_expression */
4814 #line 440 "MachineIndependent/glslang.y"
4816 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4818 #line 4819 "MachineIndependent/glslang_tab.cpp"
4821 case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
4822 #line 443 "MachineIndependent/glslang.y"
4824 (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4826 #line 4827 "MachineIndependent/glslang_tab.cpp"
4829 case 20: /* postfix_expression: function_call */
4830 #line 446 "MachineIndependent/glslang.y"
4832 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4834 #line 4835 "MachineIndependent/glslang_tab.cpp"
4837 case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
4838 #line 449 "MachineIndependent/glslang.y"
4840 (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4842 #line 4843 "MachineIndependent/glslang_tab.cpp"
4845 case 22: /* postfix_expression: postfix_expression INC_OP */
4846 #line 452 "MachineIndependent/glslang.y"
4848 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4849 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4850 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4852 #line 4853 "MachineIndependent/glslang_tab.cpp"
4855 case 23: /* postfix_expression: postfix_expression DEC_OP */
4856 #line 457 "MachineIndependent/glslang.y"
4858 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4859 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4860 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4862 #line 4863 "MachineIndependent/glslang_tab.cpp"
4865 case 24: /* integer_expression: expression */
4866 #line 465 "MachineIndependent/glslang.y"
4868 parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4869 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4871 #line 4872 "MachineIndependent/glslang_tab.cpp"
4874 case 25: /* function_call: function_call_or_method */
4875 #line 472 "MachineIndependent/glslang.y"
4877 (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4878 delete (yyvsp[0].interm).function;
4880 #line 4881 "MachineIndependent/glslang_tab.cpp"
4883 case 26: /* function_call_or_method: function_call_generic */
4884 #line 479 "MachineIndependent/glslang.y"
4886 (yyval.interm) = (yyvsp[0].interm);
4888 #line 4889 "MachineIndependent/glslang_tab.cpp"
4891 case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
4892 #line 485 "MachineIndependent/glslang.y"
4894 (yyval.interm) = (yyvsp[-1].interm);
4895 (yyval.interm).loc = (yyvsp[0].lex).loc;
4897 #line 4898 "MachineIndependent/glslang_tab.cpp"
4900 case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
4901 #line 489 "MachineIndependent/glslang.y"
4903 (yyval.interm) = (yyvsp[-1].interm);
4904 (yyval.interm).loc = (yyvsp[0].lex).loc;
4906 #line 4907 "MachineIndependent/glslang_tab.cpp"
4909 case 29: /* function_call_header_no_parameters: function_call_header VOID */
4910 #line 496 "MachineIndependent/glslang.y"
4912 (yyval.interm) = (yyvsp[-1].interm);
4914 #line 4915 "MachineIndependent/glslang_tab.cpp"
4917 case 30: /* function_call_header_no_parameters: function_call_header */
4918 #line 499 "MachineIndependent/glslang.y"
4920 (yyval.interm) = (yyvsp[0].interm);
4922 #line 4923 "MachineIndependent/glslang_tab.cpp"
4925 case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
4926 #line 505 "MachineIndependent/glslang.y"
4928 TParameter param = { 0, new TType };
4929 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4930 (yyvsp[-1].interm).function->addParameter(param);
4931 (yyval.interm).function = (yyvsp[-1].interm).function;
4932 (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4934 #line 4935 "MachineIndependent/glslang_tab.cpp"
4937 case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
4938 #line 512 "MachineIndependent/glslang.y"
4940 TParameter param = { 0, new TType };
4941 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4942 (yyvsp[-2].interm).function->addParameter(param);
4943 (yyval.interm).function = (yyvsp[-2].interm).function;
4944 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4946 #line 4947 "MachineIndependent/glslang_tab.cpp"
4949 case 33: /* function_call_header: function_identifier LEFT_PAREN */
4950 #line 522 "MachineIndependent/glslang.y"
4952 (yyval.interm) = (yyvsp[-1].interm);
4954 #line 4955 "MachineIndependent/glslang_tab.cpp"
4957 case 34: /* function_identifier: type_specifier */
4958 #line 530 "MachineIndependent/glslang.y"
4961 (yyval.interm).intermNode = 0;
4962 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4964 #line 4965 "MachineIndependent/glslang_tab.cpp"
4967 case 35: /* function_identifier: postfix_expression */
4968 #line 535 "MachineIndependent/glslang.y"
4971 // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4973 (yyval.interm).function = 0;
4974 (yyval.interm).intermNode = 0;
4976 TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4978 (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4979 (yyval.interm).intermNode = method->getObject();
4981 TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4983 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4984 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4985 (yyval.interm).function = function;
4987 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4990 if ((yyval.interm).function == 0) {
4992 TString* empty = NewPoolTString("");
4993 (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4996 #line 4997 "MachineIndependent/glslang_tab.cpp"
4999 case 36: /* function_identifier: non_uniform_qualifier */
5000 #line 563 "MachineIndependent/glslang.y"
5003 (yyval.interm).intermNode = 0;
5004 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5006 #line 5007 "MachineIndependent/glslang_tab.cpp"
5009 case 37: /* unary_expression: postfix_expression */
5010 #line 572 "MachineIndependent/glslang.y"
5012 parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
5013 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5014 if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
5015 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
5017 #line 5018 "MachineIndependent/glslang_tab.cpp"
5020 case 38: /* unary_expression: INC_OP unary_expression */
5021 #line 578 "MachineIndependent/glslang.y"
5023 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
5024 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
5026 #line 5027 "MachineIndependent/glslang_tab.cpp"
5029 case 39: /* unary_expression: DEC_OP unary_expression */
5030 #line 582 "MachineIndependent/glslang.y"
5032 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
5033 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
5035 #line 5036 "MachineIndependent/glslang_tab.cpp"
5038 case 40: /* unary_expression: unary_operator unary_expression */
5039 #line 586 "MachineIndependent/glslang.y"
5041 if ((yyvsp[-1].interm).op != EOpNull) {
5042 char errorOp[2] = {0, 0};
5043 switch((yyvsp[-1].interm).op) {
5044 case EOpNegative: errorOp[0] = '-'; break;
5045 case EOpLogicalNot: errorOp[0] = '!'; break;
5046 case EOpBitwiseNot: errorOp[0] = '~'; break;
5047 default: break; // some compilers want this
5049 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
5051 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5052 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5053 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5056 #line 5057 "MachineIndependent/glslang_tab.cpp"
5059 case 41: /* unary_operator: PLUS */
5060 #line 606 "MachineIndependent/glslang.y"
5061 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
5062 #line 5063 "MachineIndependent/glslang_tab.cpp"
5065 case 42: /* unary_operator: DASH */
5066 #line 607 "MachineIndependent/glslang.y"
5067 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
5068 #line 5069 "MachineIndependent/glslang_tab.cpp"
5071 case 43: /* unary_operator: BANG */
5072 #line 608 "MachineIndependent/glslang.y"
5073 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
5074 #line 5075 "MachineIndependent/glslang_tab.cpp"
5077 case 44: /* unary_operator: TILDE */
5078 #line 609 "MachineIndependent/glslang.y"
5079 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
5080 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
5081 #line 5082 "MachineIndependent/glslang_tab.cpp"
5084 case 45: /* multiplicative_expression: unary_expression */
5085 #line 615 "MachineIndependent/glslang.y"
5086 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5087 #line 5088 "MachineIndependent/glslang_tab.cpp"
5090 case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
5091 #line 616 "MachineIndependent/glslang.y"
5093 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5094 if ((yyval.interm.intermTypedNode) == 0)
5095 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5097 #line 5098 "MachineIndependent/glslang_tab.cpp"
5100 case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
5101 #line 621 "MachineIndependent/glslang.y"
5103 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5104 if ((yyval.interm.intermTypedNode) == 0)
5105 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5107 #line 5108 "MachineIndependent/glslang_tab.cpp"
5110 case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
5111 #line 626 "MachineIndependent/glslang.y"
5113 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
5114 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5115 if ((yyval.interm.intermTypedNode) == 0)
5116 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5118 #line 5119 "MachineIndependent/glslang_tab.cpp"
5121 case 49: /* additive_expression: multiplicative_expression */
5122 #line 635 "MachineIndependent/glslang.y"
5123 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5124 #line 5125 "MachineIndependent/glslang_tab.cpp"
5127 case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
5128 #line 636 "MachineIndependent/glslang.y"
5130 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5131 if ((yyval.interm.intermTypedNode) == 0)
5132 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5134 #line 5135 "MachineIndependent/glslang_tab.cpp"
5137 case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
5138 #line 641 "MachineIndependent/glslang.y"
5140 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5141 if ((yyval.interm.intermTypedNode) == 0)
5142 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5144 #line 5145 "MachineIndependent/glslang_tab.cpp"
5147 case 52: /* shift_expression: additive_expression */
5148 #line 649 "MachineIndependent/glslang.y"
5149 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5150 #line 5151 "MachineIndependent/glslang_tab.cpp"
5153 case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
5154 #line 650 "MachineIndependent/glslang.y"
5156 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
5157 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5158 if ((yyval.interm.intermTypedNode) == 0)
5159 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5161 #line 5162 "MachineIndependent/glslang_tab.cpp"
5164 case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
5165 #line 656 "MachineIndependent/glslang.y"
5167 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
5168 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5169 if ((yyval.interm.intermTypedNode) == 0)
5170 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5172 #line 5173 "MachineIndependent/glslang_tab.cpp"
5175 case 55: /* relational_expression: shift_expression */
5176 #line 665 "MachineIndependent/glslang.y"
5177 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5178 #line 5179 "MachineIndependent/glslang_tab.cpp"
5181 case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
5182 #line 666 "MachineIndependent/glslang.y"
5184 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5185 if ((yyval.interm.intermTypedNode) == 0)
5186 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5188 #line 5189 "MachineIndependent/glslang_tab.cpp"
5191 case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
5192 #line 671 "MachineIndependent/glslang.y"
5194 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5195 if ((yyval.interm.intermTypedNode) == 0)
5196 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5198 #line 5199 "MachineIndependent/glslang_tab.cpp"
5201 case 58: /* relational_expression: relational_expression LE_OP shift_expression */
5202 #line 676 "MachineIndependent/glslang.y"
5204 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5205 if ((yyval.interm.intermTypedNode) == 0)
5206 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5208 #line 5209 "MachineIndependent/glslang_tab.cpp"
5211 case 59: /* relational_expression: relational_expression GE_OP shift_expression */
5212 #line 681 "MachineIndependent/glslang.y"
5214 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5215 if ((yyval.interm.intermTypedNode) == 0)
5216 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5218 #line 5219 "MachineIndependent/glslang_tab.cpp"
5221 case 60: /* equality_expression: relational_expression */
5222 #line 689 "MachineIndependent/glslang.y"
5223 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5224 #line 5225 "MachineIndependent/glslang_tab.cpp"
5227 case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
5228 #line 690 "MachineIndependent/glslang.y"
5230 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5231 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5232 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5233 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5234 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5235 if ((yyval.interm.intermTypedNode) == 0)
5236 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5238 #line 5239 "MachineIndependent/glslang_tab.cpp"
5241 case 62: /* equality_expression: equality_expression NE_OP relational_expression */
5242 #line 699 "MachineIndependent/glslang.y"
5244 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5245 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5246 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5247 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5248 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5249 if ((yyval.interm.intermTypedNode) == 0)
5250 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5252 #line 5253 "MachineIndependent/glslang_tab.cpp"
5255 case 63: /* and_expression: equality_expression */
5256 #line 711 "MachineIndependent/glslang.y"
5257 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5258 #line 5259 "MachineIndependent/glslang_tab.cpp"
5261 case 64: /* and_expression: and_expression AMPERSAND equality_expression */
5262 #line 712 "MachineIndependent/glslang.y"
5264 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
5265 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5266 if ((yyval.interm.intermTypedNode) == 0)
5267 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5269 #line 5270 "MachineIndependent/glslang_tab.cpp"
5272 case 65: /* exclusive_or_expression: and_expression */
5273 #line 721 "MachineIndependent/glslang.y"
5274 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5275 #line 5276 "MachineIndependent/glslang_tab.cpp"
5278 case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
5279 #line 722 "MachineIndependent/glslang.y"
5281 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
5282 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5283 if ((yyval.interm.intermTypedNode) == 0)
5284 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5286 #line 5287 "MachineIndependent/glslang_tab.cpp"
5289 case 67: /* inclusive_or_expression: exclusive_or_expression */
5290 #line 731 "MachineIndependent/glslang.y"
5291 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5292 #line 5293 "MachineIndependent/glslang_tab.cpp"
5295 case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
5296 #line 732 "MachineIndependent/glslang.y"
5298 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
5299 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5300 if ((yyval.interm.intermTypedNode) == 0)
5301 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5303 #line 5304 "MachineIndependent/glslang_tab.cpp"
5306 case 69: /* logical_and_expression: inclusive_or_expression */
5307 #line 741 "MachineIndependent/glslang.y"
5308 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5309 #line 5310 "MachineIndependent/glslang_tab.cpp"
5312 case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
5313 #line 742 "MachineIndependent/glslang.y"
5315 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5316 if ((yyval.interm.intermTypedNode) == 0)
5317 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5319 #line 5320 "MachineIndependent/glslang_tab.cpp"
5322 case 71: /* logical_xor_expression: logical_and_expression */
5323 #line 750 "MachineIndependent/glslang.y"
5324 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5325 #line 5326 "MachineIndependent/glslang_tab.cpp"
5328 case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
5329 #line 751 "MachineIndependent/glslang.y"
5331 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5332 if ((yyval.interm.intermTypedNode) == 0)
5333 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5335 #line 5336 "MachineIndependent/glslang_tab.cpp"
5338 case 73: /* logical_or_expression: logical_xor_expression */
5339 #line 759 "MachineIndependent/glslang.y"
5340 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5341 #line 5342 "MachineIndependent/glslang_tab.cpp"
5344 case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
5345 #line 760 "MachineIndependent/glslang.y"
5347 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5348 if ((yyval.interm.intermTypedNode) == 0)
5349 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5351 #line 5352 "MachineIndependent/glslang_tab.cpp"
5354 case 75: /* conditional_expression: logical_or_expression */
5355 #line 768 "MachineIndependent/glslang.y"
5356 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5357 #line 5358 "MachineIndependent/glslang_tab.cpp"
5360 case 76: /* $@1: %empty */
5361 #line 769 "MachineIndependent/glslang.y"
5363 ++parseContext.controlFlowNestingLevel;
5365 #line 5366 "MachineIndependent/glslang_tab.cpp"
5368 case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
5369 #line 772 "MachineIndependent/glslang.y"
5371 --parseContext.controlFlowNestingLevel;
5372 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
5373 parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
5374 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
5375 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
5376 (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
5377 if ((yyval.interm.intermTypedNode) == 0) {
5378 parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5379 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5382 #line 5383 "MachineIndependent/glslang_tab.cpp"
5385 case 78: /* assignment_expression: conditional_expression */
5386 #line 787 "MachineIndependent/glslang.y"
5387 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5388 #line 5389 "MachineIndependent/glslang_tab.cpp"
5391 case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
5392 #line 788 "MachineIndependent/glslang.y"
5394 parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
5395 parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5396 parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5397 parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5398 parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
5399 parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
5400 (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5401 if ((yyval.interm.intermTypedNode) == 0) {
5402 parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5403 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5406 #line 5407 "MachineIndependent/glslang_tab.cpp"
5409 case 80: /* assignment_operator: EQUAL */
5410 #line 804 "MachineIndependent/glslang.y"
5412 (yyval.interm).loc = (yyvsp[0].lex).loc;
5413 (yyval.interm).op = EOpAssign;
5415 #line 5416 "MachineIndependent/glslang_tab.cpp"
5418 case 81: /* assignment_operator: MUL_ASSIGN */
5419 #line 808 "MachineIndependent/glslang.y"
5421 (yyval.interm).loc = (yyvsp[0].lex).loc;
5422 (yyval.interm).op = EOpMulAssign;
5424 #line 5425 "MachineIndependent/glslang_tab.cpp"
5427 case 82: /* assignment_operator: DIV_ASSIGN */
5428 #line 812 "MachineIndependent/glslang.y"
5430 (yyval.interm).loc = (yyvsp[0].lex).loc;
5431 (yyval.interm).op = EOpDivAssign;
5433 #line 5434 "MachineIndependent/glslang_tab.cpp"
5436 case 83: /* assignment_operator: MOD_ASSIGN */
5437 #line 816 "MachineIndependent/glslang.y"
5439 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
5440 (yyval.interm).loc = (yyvsp[0].lex).loc;
5441 (yyval.interm).op = EOpModAssign;
5443 #line 5444 "MachineIndependent/glslang_tab.cpp"
5446 case 84: /* assignment_operator: ADD_ASSIGN */
5447 #line 821 "MachineIndependent/glslang.y"
5449 (yyval.interm).loc = (yyvsp[0].lex).loc;
5450 (yyval.interm).op = EOpAddAssign;
5452 #line 5453 "MachineIndependent/glslang_tab.cpp"
5455 case 85: /* assignment_operator: SUB_ASSIGN */
5456 #line 825 "MachineIndependent/glslang.y"
5458 (yyval.interm).loc = (yyvsp[0].lex).loc;
5459 (yyval.interm).op = EOpSubAssign;
5461 #line 5462 "MachineIndependent/glslang_tab.cpp"
5464 case 86: /* assignment_operator: LEFT_ASSIGN */
5465 #line 829 "MachineIndependent/glslang.y"
5467 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5468 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5470 #line 5471 "MachineIndependent/glslang_tab.cpp"
5473 case 87: /* assignment_operator: RIGHT_ASSIGN */
5474 #line 833 "MachineIndependent/glslang.y"
5476 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5477 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5479 #line 5480 "MachineIndependent/glslang_tab.cpp"
5482 case 88: /* assignment_operator: AND_ASSIGN */
5483 #line 837 "MachineIndependent/glslang.y"
5485 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5486 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5488 #line 5489 "MachineIndependent/glslang_tab.cpp"
5491 case 89: /* assignment_operator: XOR_ASSIGN */
5492 #line 841 "MachineIndependent/glslang.y"
5494 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5495 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
5497 #line 5498 "MachineIndependent/glslang_tab.cpp"
5500 case 90: /* assignment_operator: OR_ASSIGN */
5501 #line 845 "MachineIndependent/glslang.y"
5503 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
5504 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
5506 #line 5507 "MachineIndependent/glslang_tab.cpp"
5509 case 91: /* expression: assignment_expression */
5510 #line 852 "MachineIndependent/glslang.y"
5512 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5514 #line 5515 "MachineIndependent/glslang_tab.cpp"
5517 case 92: /* expression: expression COMMA assignment_expression */
5518 #line 855 "MachineIndependent/glslang.y"
5520 parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
5521 (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5522 if ((yyval.interm.intermTypedNode) == 0) {
5523 parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5524 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5527 #line 5528 "MachineIndependent/glslang_tab.cpp"
5530 case 93: /* constant_expression: conditional_expression */
5531 #line 866 "MachineIndependent/glslang.y"
5533 parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5534 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5536 #line 5537 "MachineIndependent/glslang_tab.cpp"
5539 case 94: /* declaration: function_prototype SEMICOLON */
5540 #line 873 "MachineIndependent/glslang.y"
5542 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5543 (yyval.interm.intermNode) = 0;
5544 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5546 #line 5547 "MachineIndependent/glslang_tab.cpp"
5549 case 95: /* declaration: init_declarator_list SEMICOLON */
5550 #line 878 "MachineIndependent/glslang.y"
5552 if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5553 (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5554 (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5556 #line 5557 "MachineIndependent/glslang_tab.cpp"
5559 case 96: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
5560 #line 883 "MachineIndependent/glslang.y"
5562 parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5563 // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5564 parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5565 parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5566 (yyval.interm.intermNode) = 0;
5568 #line 5569 "MachineIndependent/glslang_tab.cpp"
5571 case 97: /* declaration: block_structure SEMICOLON */
5572 #line 890 "MachineIndependent/glslang.y"
5574 parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5575 (yyval.interm.intermNode) = 0;
5577 #line 5578 "MachineIndependent/glslang_tab.cpp"
5580 case 98: /* declaration: block_structure IDENTIFIER SEMICOLON */
5581 #line 894 "MachineIndependent/glslang.y"
5583 parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5584 (yyval.interm.intermNode) = 0;
5586 #line 5587 "MachineIndependent/glslang_tab.cpp"
5589 case 99: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
5590 #line 898 "MachineIndependent/glslang.y"
5592 parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5593 (yyval.interm.intermNode) = 0;
5595 #line 5596 "MachineIndependent/glslang_tab.cpp"
5598 case 100: /* declaration: type_qualifier SEMICOLON */
5599 #line 902 "MachineIndependent/glslang.y"
5601 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5602 parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5603 (yyval.interm.intermNode) = 0;
5605 #line 5606 "MachineIndependent/glslang_tab.cpp"
5608 case 101: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
5609 #line 907 "MachineIndependent/glslang.y"
5611 parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5612 parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5613 (yyval.interm.intermNode) = 0;
5615 #line 5616 "MachineIndependent/glslang_tab.cpp"
5618 case 102: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
5619 #line 912 "MachineIndependent/glslang.y"
5621 parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5622 (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5623 parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5624 (yyval.interm.intermNode) = 0;
5626 #line 5627 "MachineIndependent/glslang_tab.cpp"
5629 case 103: /* $@2: %empty */
5630 #line 921 "MachineIndependent/glslang.y"
5631 { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5632 #line 5633 "MachineIndependent/glslang_tab.cpp"
5635 case 104: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
5636 #line 921 "MachineIndependent/glslang.y"
5638 --parseContext.blockNestingLevel;
5639 parseContext.blockName = (yyvsp[-4].lex).string;
5640 parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5641 parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5642 parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5643 (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5644 (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5646 #line 5647 "MachineIndependent/glslang_tab.cpp"
5649 case 105: /* identifier_list: COMMA IDENTIFIER */
5650 #line 932 "MachineIndependent/glslang.y"
5652 (yyval.interm.identifierList) = new TIdentifierList;
5653 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5655 #line 5656 "MachineIndependent/glslang_tab.cpp"
5658 case 106: /* identifier_list: identifier_list COMMA IDENTIFIER */
5659 #line 936 "MachineIndependent/glslang.y"
5661 (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5662 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5664 #line 5665 "MachineIndependent/glslang_tab.cpp"
5667 case 107: /* function_prototype: function_declarator RIGHT_PAREN */
5668 #line 943 "MachineIndependent/glslang.y"
5670 (yyval.interm).function = (yyvsp[-1].interm.function);
5671 (yyval.interm).loc = (yyvsp[0].lex).loc;
5673 #line 5674 "MachineIndependent/glslang_tab.cpp"
5676 case 108: /* function_declarator: function_header */
5677 #line 950 "MachineIndependent/glslang.y"
5679 (yyval.interm.function) = (yyvsp[0].interm.function);
5681 #line 5682 "MachineIndependent/glslang_tab.cpp"
5684 case 109: /* function_declarator: function_header_with_parameters */
5685 #line 953 "MachineIndependent/glslang.y"
5687 (yyval.interm.function) = (yyvsp[0].interm.function);
5689 #line 5690 "MachineIndependent/glslang_tab.cpp"
5692 case 110: /* function_header_with_parameters: function_header parameter_declaration */
5693 #line 960 "MachineIndependent/glslang.y"
5695 // Add the parameter
5696 (yyval.interm.function) = (yyvsp[-1].interm.function);
5697 if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5698 (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5700 delete (yyvsp[0].interm).param.type;
5702 #line 5703 "MachineIndependent/glslang_tab.cpp"
5705 case 111: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
5706 #line 968 "MachineIndependent/glslang.y"
5709 // Only first parameter of one-parameter functions can be void
5710 // The check for named parameters not being void is done in parameter_declarator
5712 if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5714 // This parameter > first is void
5716 parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5717 delete (yyvsp[0].interm).param.type;
5719 // Add the parameter
5720 (yyval.interm.function) = (yyvsp[-2].interm.function);
5721 (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5724 #line 5725 "MachineIndependent/glslang_tab.cpp"
5727 case 112: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
5728 #line 988 "MachineIndependent/glslang.y"
5730 if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5731 parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5732 GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5734 if ((yyvsp[-2].interm.type).arraySizes)
5735 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5737 // Add the function as a prototype after parsing it (we do not support recursion)
5738 TFunction *function;
5739 TType type((yyvsp[-2].interm.type));
5741 // Potentially rename shader entry point function. No-op most of the time.
5742 parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5744 // Make the function
5745 function = new TFunction((yyvsp[-1].lex).string, type);
5746 (yyval.interm.function) = function;
5748 #line 5749 "MachineIndependent/glslang_tab.cpp"
5751 case 113: /* parameter_declarator: type_specifier IDENTIFIER */
5752 #line 1011 "MachineIndependent/glslang.y"
5754 if ((yyvsp[-1].interm.type).arraySizes) {
5755 parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5756 parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5757 parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5759 if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5760 parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5762 parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5764 TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5765 (yyval.interm).loc = (yyvsp[0].lex).loc;
5766 (yyval.interm).param = param;
5768 #line 5769 "MachineIndependent/glslang_tab.cpp"
5771 case 114: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
5772 #line 1026 "MachineIndependent/glslang.y"
5774 if ((yyvsp[-2].interm.type).arraySizes) {
5775 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5776 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5777 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5779 TType* type = new TType((yyvsp[-2].interm.type));
5780 type->transferArraySizes((yyvsp[0].interm).arraySizes);
5781 type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5783 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5784 parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5785 parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5787 TParameter param = { (yyvsp[-1].lex).string, type };
5789 (yyval.interm).loc = (yyvsp[-1].lex).loc;
5790 (yyval.interm).param = param;
5792 #line 5793 "MachineIndependent/glslang_tab.cpp"
5795 case 115: /* parameter_declaration: type_qualifier parameter_declarator */
5796 #line 1051 "MachineIndependent/glslang.y"
5798 (yyval.interm) = (yyvsp[0].interm);
5799 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5800 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5801 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5803 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5804 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5805 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5808 #line 5809 "MachineIndependent/glslang_tab.cpp"
5811 case 116: /* parameter_declaration: parameter_declarator */
5812 #line 1062 "MachineIndependent/glslang.y"
5814 (yyval.interm) = (yyvsp[0].interm);
5816 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5817 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5818 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5820 #line 5821 "MachineIndependent/glslang_tab.cpp"
5823 case 117: /* parameter_declaration: type_qualifier parameter_type_specifier */
5824 #line 1072 "MachineIndependent/glslang.y"
5826 (yyval.interm) = (yyvsp[0].interm);
5827 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5828 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5829 parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5831 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5832 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5833 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5835 #line 5836 "MachineIndependent/glslang_tab.cpp"
5838 case 118: /* parameter_declaration: parameter_type_specifier */
5839 #line 1082 "MachineIndependent/glslang.y"
5841 (yyval.interm) = (yyvsp[0].interm);
5843 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5844 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5845 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5847 #line 5848 "MachineIndependent/glslang_tab.cpp"
5850 case 119: /* parameter_type_specifier: type_specifier */
5851 #line 1092 "MachineIndependent/glslang.y"
5853 TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5854 (yyval.interm).param = param;
5855 if ((yyvsp[0].interm.type).arraySizes)
5856 parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5858 #line 5859 "MachineIndependent/glslang_tab.cpp"
5861 case 120: /* init_declarator_list: single_declaration */
5862 #line 1101 "MachineIndependent/glslang.y"
5864 (yyval.interm) = (yyvsp[0].interm);
5866 #line 5867 "MachineIndependent/glslang_tab.cpp"
5869 case 121: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
5870 #line 1104 "MachineIndependent/glslang.y"
5872 (yyval.interm) = (yyvsp[-2].interm);
5873 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5875 #line 5876 "MachineIndependent/glslang_tab.cpp"
5878 case 122: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
5879 #line 1108 "MachineIndependent/glslang.y"
5881 (yyval.interm) = (yyvsp[-3].interm);
5882 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5884 #line 5885 "MachineIndependent/glslang_tab.cpp"
5887 case 123: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
5888 #line 1112 "MachineIndependent/glslang.y"
5890 (yyval.interm).type = (yyvsp[-5].interm).type;
5891 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5892 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5894 #line 5895 "MachineIndependent/glslang_tab.cpp"
5897 case 124: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
5898 #line 1117 "MachineIndependent/glslang.y"
5900 (yyval.interm).type = (yyvsp[-4].interm).type;
5901 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5902 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5904 #line 5905 "MachineIndependent/glslang_tab.cpp"
5907 case 125: /* single_declaration: fully_specified_type */
5908 #line 1125 "MachineIndependent/glslang.y"
5910 (yyval.interm).type = (yyvsp[0].interm.type);
5911 (yyval.interm).intermNode = 0;
5913 parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5916 #line 5917 "MachineIndependent/glslang_tab.cpp"
5919 case 126: /* single_declaration: fully_specified_type IDENTIFIER */
5920 #line 1132 "MachineIndependent/glslang.y"
5922 (yyval.interm).type = (yyvsp[-1].interm.type);
5923 (yyval.interm).intermNode = 0;
5924 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5926 #line 5927 "MachineIndependent/glslang_tab.cpp"
5929 case 127: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
5930 #line 1137 "MachineIndependent/glslang.y"
5932 (yyval.interm).type = (yyvsp[-2].interm.type);
5933 (yyval.interm).intermNode = 0;
5934 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5936 #line 5937 "MachineIndependent/glslang_tab.cpp"
5939 case 128: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
5940 #line 1142 "MachineIndependent/glslang.y"
5942 (yyval.interm).type = (yyvsp[-4].interm.type);
5943 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5944 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5946 #line 5947 "MachineIndependent/glslang_tab.cpp"
5949 case 129: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
5950 #line 1147 "MachineIndependent/glslang.y"
5952 (yyval.interm).type = (yyvsp[-3].interm.type);
5953 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5954 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5956 #line 5957 "MachineIndependent/glslang_tab.cpp"
5959 case 130: /* fully_specified_type: type_specifier */
5960 #line 1156 "MachineIndependent/glslang.y"
5962 (yyval.interm.type) = (yyvsp[0].interm.type);
5964 parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5965 if ((yyvsp[0].interm.type).arraySizes) {
5966 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5967 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5969 parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5971 #line 5972 "MachineIndependent/glslang_tab.cpp"
5974 case 131: /* fully_specified_type: type_qualifier type_specifier */
5975 #line 1166 "MachineIndependent/glslang.y"
5977 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5978 parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5980 if ((yyvsp[0].interm.type).arraySizes) {
5981 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5982 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5985 if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5986 (yyvsp[0].interm.type).arraySizes = nullptr;
5988 parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5989 (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5990 parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5991 parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5993 (yyval.interm.type) = (yyvsp[0].interm.type);
5995 if (! (yyval.interm.type).qualifier.isInterpolation() &&
5996 ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5997 (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5998 (yyval.interm.type).qualifier.smooth = true;
6000 #line 6001 "MachineIndependent/glslang_tab.cpp"
6003 case 132: /* invariant_qualifier: INVARIANT */
6004 #line 1193 "MachineIndependent/glslang.y"
6006 parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
6007 parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
6008 (yyval.interm.type).init((yyvsp[0].lex).loc);
6009 (yyval.interm.type).qualifier.invariant = true;
6011 #line 6012 "MachineIndependent/glslang_tab.cpp"
6014 case 133: /* interpolation_qualifier: SMOOTH */
6015 #line 1202 "MachineIndependent/glslang.y"
6017 parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
6018 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
6019 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
6020 (yyval.interm.type).init((yyvsp[0].lex).loc);
6021 (yyval.interm.type).qualifier.smooth = true;
6023 #line 6024 "MachineIndependent/glslang_tab.cpp"
6026 case 134: /* interpolation_qualifier: FLAT */
6027 #line 1209 "MachineIndependent/glslang.y"
6029 parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
6030 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
6031 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
6032 (yyval.interm.type).init((yyvsp[0].lex).loc);
6033 (yyval.interm.type).qualifier.flat = true;
6035 #line 6036 "MachineIndependent/glslang_tab.cpp"
6038 case 135: /* interpolation_qualifier: NOPERSPECTIVE */
6039 #line 1217 "MachineIndependent/glslang.y"
6041 parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
6042 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
6043 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
6044 (yyval.interm.type).init((yyvsp[0].lex).loc);
6045 (yyval.interm.type).qualifier.nopersp = true;
6047 #line 6048 "MachineIndependent/glslang_tab.cpp"
6050 case 136: /* interpolation_qualifier: EXPLICITINTERPAMD */
6051 #line 1224 "MachineIndependent/glslang.y"
6053 parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
6054 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6055 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6056 (yyval.interm.type).init((yyvsp[0].lex).loc);
6057 (yyval.interm.type).qualifier.explicitInterp = true;
6059 #line 6060 "MachineIndependent/glslang_tab.cpp"
6062 case 137: /* interpolation_qualifier: PERVERTEXNV */
6063 #line 1231 "MachineIndependent/glslang.y"
6065 parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
6066 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6067 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6068 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6069 (yyval.interm.type).init((yyvsp[0].lex).loc);
6070 (yyval.interm.type).qualifier.pervertexNV = true;
6072 #line 6073 "MachineIndependent/glslang_tab.cpp"
6075 case 138: /* interpolation_qualifier: PERPRIMITIVENV */
6076 #line 1239 "MachineIndependent/glslang.y"
6078 // No need for profile version or extension check. Shader stage already checks both.
6079 parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
6080 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
6081 // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6082 if (parseContext.language == EShLangFragment)
6083 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
6084 (yyval.interm.type).init((yyvsp[0].lex).loc);
6085 (yyval.interm.type).qualifier.perPrimitiveNV = true;
6087 #line 6088 "MachineIndependent/glslang_tab.cpp"
6090 case 139: /* interpolation_qualifier: PERVIEWNV */
6091 #line 1249 "MachineIndependent/glslang.y"
6093 // No need for profile version or extension check. Shader stage already checks both.
6094 parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
6095 parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
6096 (yyval.interm.type).init((yyvsp[0].lex).loc);
6097 (yyval.interm.type).qualifier.perViewNV = true;
6099 #line 6100 "MachineIndependent/glslang_tab.cpp"
6102 case 140: /* interpolation_qualifier: PERTASKNV */
6103 #line 1256 "MachineIndependent/glslang.y"
6105 // No need for profile version or extension check. Shader stage already checks both.
6106 parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
6107 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
6108 (yyval.interm.type).init((yyvsp[0].lex).loc);
6109 (yyval.interm.type).qualifier.perTaskNV = true;
6111 #line 6112 "MachineIndependent/glslang_tab.cpp"
6114 case 141: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
6115 #line 1267 "MachineIndependent/glslang.y"
6117 (yyval.interm.type) = (yyvsp[-1].interm.type);
6119 #line 6120 "MachineIndependent/glslang_tab.cpp"
6122 case 142: /* layout_qualifier_id_list: layout_qualifier_id */
6123 #line 1273 "MachineIndependent/glslang.y"
6125 (yyval.interm.type) = (yyvsp[0].interm.type);
6127 #line 6128 "MachineIndependent/glslang_tab.cpp"
6130 case 143: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
6131 #line 1276 "MachineIndependent/glslang.y"
6133 (yyval.interm.type) = (yyvsp[-2].interm.type);
6134 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6135 parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6137 #line 6138 "MachineIndependent/glslang_tab.cpp"
6140 case 144: /* layout_qualifier_id: IDENTIFIER */
6141 #line 1283 "MachineIndependent/glslang.y"
6143 (yyval.interm.type).init((yyvsp[0].lex).loc);
6144 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
6146 #line 6147 "MachineIndependent/glslang_tab.cpp"
6149 case 145: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
6150 #line 1287 "MachineIndependent/glslang.y"
6152 (yyval.interm.type).init((yyvsp[-2].lex).loc);
6153 parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
6155 #line 6156 "MachineIndependent/glslang_tab.cpp"
6158 case 146: /* layout_qualifier_id: SHARED */
6159 #line 1291 "MachineIndependent/glslang.y"
6160 { // because "shared" is both an identifier and a keyword
6161 (yyval.interm.type).init((yyvsp[0].lex).loc);
6162 TString strShared("shared");
6163 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
6165 #line 6166 "MachineIndependent/glslang_tab.cpp"
6168 case 147: /* precise_qualifier: PRECISE */
6169 #line 1300 "MachineIndependent/glslang.y"
6171 parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
6172 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
6173 (yyval.interm.type).init((yyvsp[0].lex).loc);
6174 (yyval.interm.type).qualifier.noContraction = true;
6176 #line 6177 "MachineIndependent/glslang_tab.cpp"
6179 case 148: /* type_qualifier: single_type_qualifier */
6180 #line 1310 "MachineIndependent/glslang.y"
6182 (yyval.interm.type) = (yyvsp[0].interm.type);
6184 #line 6185 "MachineIndependent/glslang_tab.cpp"
6187 case 149: /* type_qualifier: type_qualifier single_type_qualifier */
6188 #line 1313 "MachineIndependent/glslang.y"
6190 (yyval.interm.type) = (yyvsp[-1].interm.type);
6191 if ((yyval.interm.type).basicType == EbtVoid)
6192 (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
6194 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6195 parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6197 #line 6198 "MachineIndependent/glslang_tab.cpp"
6200 case 150: /* single_type_qualifier: storage_qualifier */
6201 #line 1324 "MachineIndependent/glslang.y"
6203 (yyval.interm.type) = (yyvsp[0].interm.type);
6205 #line 6206 "MachineIndependent/glslang_tab.cpp"
6208 case 151: /* single_type_qualifier: layout_qualifier */
6209 #line 1327 "MachineIndependent/glslang.y"
6211 (yyval.interm.type) = (yyvsp[0].interm.type);
6213 #line 6214 "MachineIndependent/glslang_tab.cpp"
6216 case 152: /* single_type_qualifier: precision_qualifier */
6217 #line 1330 "MachineIndependent/glslang.y"
6219 parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
6220 (yyval.interm.type) = (yyvsp[0].interm.type);
6222 #line 6223 "MachineIndependent/glslang_tab.cpp"
6225 case 153: /* single_type_qualifier: interpolation_qualifier */
6226 #line 1334 "MachineIndependent/glslang.y"
6228 // allow inheritance of storage qualifier from block declaration
6229 (yyval.interm.type) = (yyvsp[0].interm.type);
6231 #line 6232 "MachineIndependent/glslang_tab.cpp"
6234 case 154: /* single_type_qualifier: invariant_qualifier */
6235 #line 1338 "MachineIndependent/glslang.y"
6237 // allow inheritance of storage qualifier from block declaration
6238 (yyval.interm.type) = (yyvsp[0].interm.type);
6240 #line 6241 "MachineIndependent/glslang_tab.cpp"
6243 case 155: /* single_type_qualifier: precise_qualifier */
6244 #line 1343 "MachineIndependent/glslang.y"
6246 // allow inheritance of storage qualifier from block declaration
6247 (yyval.interm.type) = (yyvsp[0].interm.type);
6249 #line 6250 "MachineIndependent/glslang_tab.cpp"
6252 case 156: /* single_type_qualifier: non_uniform_qualifier */
6253 #line 1347 "MachineIndependent/glslang.y"
6255 (yyval.interm.type) = (yyvsp[0].interm.type);
6257 #line 6258 "MachineIndependent/glslang_tab.cpp"
6260 case 157: /* storage_qualifier: CONST */
6261 #line 1354 "MachineIndependent/glslang.y"
6263 (yyval.interm.type).init((yyvsp[0].lex).loc);
6264 (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
6266 #line 6267 "MachineIndependent/glslang_tab.cpp"
6269 case 158: /* storage_qualifier: INOUT */
6270 #line 1358 "MachineIndependent/glslang.y"
6272 parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
6273 (yyval.interm.type).init((yyvsp[0].lex).loc);
6274 (yyval.interm.type).qualifier.storage = EvqInOut;
6276 #line 6277 "MachineIndependent/glslang_tab.cpp"
6279 case 159: /* storage_qualifier: IN */
6280 #line 1363 "MachineIndependent/glslang.y"
6282 parseContext.globalCheck((yyvsp[0].lex).loc, "in");
6283 (yyval.interm.type).init((yyvsp[0].lex).loc);
6284 // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
6285 (yyval.interm.type).qualifier.storage = EvqIn;
6287 #line 6288 "MachineIndependent/glslang_tab.cpp"
6290 case 160: /* storage_qualifier: OUT */
6291 #line 1369 "MachineIndependent/glslang.y"
6293 parseContext.globalCheck((yyvsp[0].lex).loc, "out");
6294 (yyval.interm.type).init((yyvsp[0].lex).loc);
6295 // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
6296 (yyval.interm.type).qualifier.storage = EvqOut;
6298 #line 6299 "MachineIndependent/glslang_tab.cpp"
6301 case 161: /* storage_qualifier: CENTROID */
6302 #line 1375 "MachineIndependent/glslang.y"
6304 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
6305 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
6306 parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
6307 (yyval.interm.type).init((yyvsp[0].lex).loc);
6308 (yyval.interm.type).qualifier.centroid = true;
6310 #line 6311 "MachineIndependent/glslang_tab.cpp"
6313 case 162: /* storage_qualifier: UNIFORM */
6314 #line 1382 "MachineIndependent/glslang.y"
6316 parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
6317 (yyval.interm.type).init((yyvsp[0].lex).loc);
6318 (yyval.interm.type).qualifier.storage = EvqUniform;
6320 #line 6321 "MachineIndependent/glslang_tab.cpp"
6323 case 163: /* storage_qualifier: SHARED */
6324 #line 1387 "MachineIndependent/glslang.y"
6326 parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
6327 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
6328 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
6329 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
6330 (yyval.interm.type).init((yyvsp[0].lex).loc);
6331 (yyval.interm.type).qualifier.storage = EvqShared;
6333 #line 6334 "MachineIndependent/glslang_tab.cpp"
6336 case 164: /* storage_qualifier: BUFFER */
6337 #line 1395 "MachineIndependent/glslang.y"
6339 parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
6340 (yyval.interm.type).init((yyvsp[0].lex).loc);
6341 (yyval.interm.type).qualifier.storage = EvqBuffer;
6343 #line 6344 "MachineIndependent/glslang_tab.cpp"
6346 case 165: /* storage_qualifier: ATTRIBUTE */
6347 #line 1401 "MachineIndependent/glslang.y"
6349 parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
6350 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
6351 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
6352 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
6353 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
6355 parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
6357 (yyval.interm.type).init((yyvsp[0].lex).loc);
6358 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6360 #line 6361 "MachineIndependent/glslang_tab.cpp"
6363 case 166: /* storage_qualifier: VARYING */
6364 #line 1413 "MachineIndependent/glslang.y"
6366 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
6367 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
6368 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
6369 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
6371 parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
6373 (yyval.interm.type).init((yyvsp[0].lex).loc);
6374 if (parseContext.language == EShLangVertex)
6375 (yyval.interm.type).qualifier.storage = EvqVaryingOut;
6377 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6379 #line 6380 "MachineIndependent/glslang_tab.cpp"
6382 case 167: /* storage_qualifier: PATCH */
6383 #line 1427 "MachineIndependent/glslang.y"
6385 parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
6386 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
6387 (yyval.interm.type).init((yyvsp[0].lex).loc);
6388 (yyval.interm.type).qualifier.patch = true;
6390 #line 6391 "MachineIndependent/glslang_tab.cpp"
6393 case 168: /* storage_qualifier: SAMPLE */
6394 #line 1433 "MachineIndependent/glslang.y"
6396 parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
6397 (yyval.interm.type).init((yyvsp[0].lex).loc);
6398 (yyval.interm.type).qualifier.sample = true;
6400 #line 6401 "MachineIndependent/glslang_tab.cpp"
6403 case 169: /* storage_qualifier: HITATTRNV */
6404 #line 1438 "MachineIndependent/glslang.y"
6406 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
6407 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
6408 | EShLangAnyHitMask), "hitAttributeNV");
6409 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
6410 (yyval.interm.type).init((yyvsp[0].lex).loc);
6411 (yyval.interm.type).qualifier.storage = EvqHitAttr;
6413 #line 6414 "MachineIndependent/glslang_tab.cpp"
6416 case 170: /* storage_qualifier: HITATTREXT */
6417 #line 1446 "MachineIndependent/glslang.y"
6419 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
6420 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
6421 | EShLangAnyHitMask), "hitAttributeEXT");
6422 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
6423 (yyval.interm.type).init((yyvsp[0].lex).loc);
6424 (yyval.interm.type).qualifier.storage = EvqHitAttr;
6426 #line 6427 "MachineIndependent/glslang_tab.cpp"
6429 case 171: /* storage_qualifier: PAYLOADNV */
6430 #line 1454 "MachineIndependent/glslang.y"
6432 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
6433 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
6434 EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
6435 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
6436 (yyval.interm.type).init((yyvsp[0].lex).loc);
6437 (yyval.interm.type).qualifier.storage = EvqPayload;
6439 #line 6440 "MachineIndependent/glslang_tab.cpp"
6442 case 172: /* storage_qualifier: PAYLOADEXT */
6443 #line 1462 "MachineIndependent/glslang.y"
6445 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
6446 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
6447 EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
6448 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
6449 (yyval.interm.type).init((yyvsp[0].lex).loc);
6450 (yyval.interm.type).qualifier.storage = EvqPayload;
6452 #line 6453 "MachineIndependent/glslang_tab.cpp"
6455 case 173: /* storage_qualifier: PAYLOADINNV */
6456 #line 1470 "MachineIndependent/glslang.y"
6458 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
6459 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6460 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
6461 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
6462 (yyval.interm.type).init((yyvsp[0].lex).loc);
6463 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6465 #line 6466 "MachineIndependent/glslang_tab.cpp"
6468 case 174: /* storage_qualifier: PAYLOADINEXT */
6469 #line 1478 "MachineIndependent/glslang.y"
6471 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
6472 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6473 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
6474 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
6475 (yyval.interm.type).init((yyvsp[0].lex).loc);
6476 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6478 #line 6479 "MachineIndependent/glslang_tab.cpp"
6481 case 175: /* storage_qualifier: CALLDATANV */
6482 #line 1486 "MachineIndependent/glslang.y"
6484 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
6485 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6486 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
6487 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
6488 (yyval.interm.type).init((yyvsp[0].lex).loc);
6489 (yyval.interm.type).qualifier.storage = EvqCallableData;
6491 #line 6492 "MachineIndependent/glslang_tab.cpp"
6494 case 176: /* storage_qualifier: CALLDATAEXT */
6495 #line 1494 "MachineIndependent/glslang.y"
6497 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
6498 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6499 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
6500 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
6501 (yyval.interm.type).init((yyvsp[0].lex).loc);
6502 (yyval.interm.type).qualifier.storage = EvqCallableData;
6504 #line 6505 "MachineIndependent/glslang_tab.cpp"
6507 case 177: /* storage_qualifier: CALLDATAINNV */
6508 #line 1502 "MachineIndependent/glslang.y"
6510 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
6511 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
6512 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
6513 (yyval.interm.type).init((yyvsp[0].lex).loc);
6514 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6516 #line 6517 "MachineIndependent/glslang_tab.cpp"
6519 case 178: /* storage_qualifier: CALLDATAINEXT */
6520 #line 1509 "MachineIndependent/glslang.y"
6522 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
6523 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
6524 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
6525 (yyval.interm.type).init((yyvsp[0].lex).loc);
6526 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6528 #line 6529 "MachineIndependent/glslang_tab.cpp"
6531 case 179: /* storage_qualifier: COHERENT */
6532 #line 1516 "MachineIndependent/glslang.y"
6534 (yyval.interm.type).init((yyvsp[0].lex).loc);
6535 (yyval.interm.type).qualifier.coherent = true;
6537 #line 6538 "MachineIndependent/glslang_tab.cpp"
6540 case 180: /* storage_qualifier: DEVICECOHERENT */
6541 #line 1520 "MachineIndependent/glslang.y"
6543 (yyval.interm.type).init((yyvsp[0].lex).loc);
6544 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
6545 (yyval.interm.type).qualifier.devicecoherent = true;
6547 #line 6548 "MachineIndependent/glslang_tab.cpp"
6550 case 181: /* storage_qualifier: QUEUEFAMILYCOHERENT */
6551 #line 1525 "MachineIndependent/glslang.y"
6553 (yyval.interm.type).init((yyvsp[0].lex).loc);
6554 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
6555 (yyval.interm.type).qualifier.queuefamilycoherent = true;
6557 #line 6558 "MachineIndependent/glslang_tab.cpp"
6560 case 182: /* storage_qualifier: WORKGROUPCOHERENT */
6561 #line 1530 "MachineIndependent/glslang.y"
6563 (yyval.interm.type).init((yyvsp[0].lex).loc);
6564 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6565 (yyval.interm.type).qualifier.workgroupcoherent = true;
6567 #line 6568 "MachineIndependent/glslang_tab.cpp"
6570 case 183: /* storage_qualifier: SUBGROUPCOHERENT */
6571 #line 1535 "MachineIndependent/glslang.y"
6573 (yyval.interm.type).init((yyvsp[0].lex).loc);
6574 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6575 (yyval.interm.type).qualifier.subgroupcoherent = true;
6577 #line 6578 "MachineIndependent/glslang_tab.cpp"
6580 case 184: /* storage_qualifier: NONPRIVATE */
6581 #line 1540 "MachineIndependent/glslang.y"
6583 (yyval.interm.type).init((yyvsp[0].lex).loc);
6584 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6585 (yyval.interm.type).qualifier.nonprivate = true;
6587 #line 6588 "MachineIndependent/glslang_tab.cpp"
6590 case 185: /* storage_qualifier: SHADERCALLCOHERENT */
6591 #line 1545 "MachineIndependent/glslang.y"
6593 (yyval.interm.type).init((yyvsp[0].lex).loc);
6594 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
6595 (yyval.interm.type).qualifier.shadercallcoherent = true;
6597 #line 6598 "MachineIndependent/glslang_tab.cpp"
6600 case 186: /* storage_qualifier: VOLATILE */
6601 #line 1550 "MachineIndependent/glslang.y"
6603 (yyval.interm.type).init((yyvsp[0].lex).loc);
6604 (yyval.interm.type).qualifier.volatil = true;
6606 #line 6607 "MachineIndependent/glslang_tab.cpp"
6609 case 187: /* storage_qualifier: RESTRICT */
6610 #line 1554 "MachineIndependent/glslang.y"
6612 (yyval.interm.type).init((yyvsp[0].lex).loc);
6613 (yyval.interm.type).qualifier.restrict = true;
6615 #line 6616 "MachineIndependent/glslang_tab.cpp"
6618 case 188: /* storage_qualifier: READONLY */
6619 #line 1558 "MachineIndependent/glslang.y"
6621 (yyval.interm.type).init((yyvsp[0].lex).loc);
6622 (yyval.interm.type).qualifier.readonly = true;
6624 #line 6625 "MachineIndependent/glslang_tab.cpp"
6627 case 189: /* storage_qualifier: WRITEONLY */
6628 #line 1562 "MachineIndependent/glslang.y"
6630 (yyval.interm.type).init((yyvsp[0].lex).loc);
6631 (yyval.interm.type).qualifier.writeonly = true;
6633 #line 6634 "MachineIndependent/glslang_tab.cpp"
6636 case 190: /* storage_qualifier: SUBROUTINE */
6637 #line 1566 "MachineIndependent/glslang.y"
6639 parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6640 parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6641 parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6642 (yyval.interm.type).init((yyvsp[0].lex).loc);
6644 #line 6645 "MachineIndependent/glslang_tab.cpp"
6647 case 191: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
6648 #line 1572 "MachineIndependent/glslang.y"
6650 parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6651 parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6652 parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6653 (yyval.interm.type).init((yyvsp[-3].lex).loc);
6655 #line 6656 "MachineIndependent/glslang_tab.cpp"
6658 case 192: /* non_uniform_qualifier: NONUNIFORM */
6659 #line 1583 "MachineIndependent/glslang.y"
6661 (yyval.interm.type).init((yyvsp[0].lex).loc);
6662 (yyval.interm.type).qualifier.nonUniform = true;
6664 #line 6665 "MachineIndependent/glslang_tab.cpp"
6667 case 193: /* type_name_list: IDENTIFIER */
6668 #line 1590 "MachineIndependent/glslang.y"
6672 #line 6673 "MachineIndependent/glslang_tab.cpp"
6675 case 194: /* type_name_list: type_name_list COMMA IDENTIFIER */
6676 #line 1593 "MachineIndependent/glslang.y"
6678 // TODO: 4.0 semantics: subroutines
6679 // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6680 // 2) save all of the identifiers for future comparison with the declared function
6682 #line 6683 "MachineIndependent/glslang_tab.cpp"
6685 case 195: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
6686 #line 1602 "MachineIndependent/glslang.y"
6688 (yyval.interm.type) = (yyvsp[-1].interm.type);
6689 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6690 (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6692 #line 6693 "MachineIndependent/glslang_tab.cpp"
6695 case 196: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
6696 #line 1607 "MachineIndependent/glslang.y"
6698 parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6699 (yyval.interm.type) = (yyvsp[-2].interm.type);
6700 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6701 (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6702 (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6704 #line 6705 "MachineIndependent/glslang_tab.cpp"
6707 case 197: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
6708 #line 1617 "MachineIndependent/glslang.y"
6710 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6711 (yyval.interm).arraySizes = new TArraySizes;
6712 (yyval.interm).arraySizes->addInnerSize();
6714 #line 6715 "MachineIndependent/glslang_tab.cpp"
6717 case 198: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
6718 #line 1622 "MachineIndependent/glslang.y"
6720 (yyval.interm).loc = (yyvsp[-2].lex).loc;
6721 (yyval.interm).arraySizes = new TArraySizes;
6724 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6725 (yyval.interm).arraySizes->addInnerSize(size);
6727 #line 6728 "MachineIndependent/glslang_tab.cpp"
6730 case 199: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
6731 #line 1630 "MachineIndependent/glslang.y"
6733 (yyval.interm) = (yyvsp[-2].interm);
6734 (yyval.interm).arraySizes->addInnerSize();
6736 #line 6737 "MachineIndependent/glslang_tab.cpp"
6739 case 200: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
6740 #line 1634 "MachineIndependent/glslang.y"
6742 (yyval.interm) = (yyvsp[-3].interm);
6745 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6746 (yyval.interm).arraySizes->addInnerSize(size);
6748 #line 6749 "MachineIndependent/glslang_tab.cpp"
6751 case 201: /* type_parameter_specifier_opt: type_parameter_specifier */
6752 #line 1644 "MachineIndependent/glslang.y"
6754 (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6756 #line 6757 "MachineIndependent/glslang_tab.cpp"
6759 case 202: /* type_parameter_specifier_opt: %empty */
6760 #line 1647 "MachineIndependent/glslang.y"
6762 (yyval.interm.typeParameters) = 0;
6764 #line 6765 "MachineIndependent/glslang_tab.cpp"
6767 case 203: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
6768 #line 1653 "MachineIndependent/glslang.y"
6770 (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6772 #line 6773 "MachineIndependent/glslang_tab.cpp"
6775 case 204: /* type_parameter_specifier_list: unary_expression */
6776 #line 1659 "MachineIndependent/glslang.y"
6778 (yyval.interm.typeParameters) = new TArraySizes;
6781 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6782 (yyval.interm.typeParameters)->addInnerSize(size);
6784 #line 6785 "MachineIndependent/glslang_tab.cpp"
6787 case 205: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
6788 #line 1666 "MachineIndependent/glslang.y"
6790 (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6793 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6794 (yyval.interm.typeParameters)->addInnerSize(size);
6796 #line 6797 "MachineIndependent/glslang_tab.cpp"
6799 case 206: /* type_specifier_nonarray: VOID */
6800 #line 1676 "MachineIndependent/glslang.y"
6802 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6803 (yyval.interm.type).basicType = EbtVoid;
6805 #line 6806 "MachineIndependent/glslang_tab.cpp"
6808 case 207: /* type_specifier_nonarray: FLOAT */
6809 #line 1680 "MachineIndependent/glslang.y"
6811 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6812 (yyval.interm.type).basicType = EbtFloat;
6814 #line 6815 "MachineIndependent/glslang_tab.cpp"
6817 case 208: /* type_specifier_nonarray: INT */
6818 #line 1684 "MachineIndependent/glslang.y"
6820 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6821 (yyval.interm.type).basicType = EbtInt;
6823 #line 6824 "MachineIndependent/glslang_tab.cpp"
6826 case 209: /* type_specifier_nonarray: UINT */
6827 #line 1688 "MachineIndependent/glslang.y"
6829 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6830 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6831 (yyval.interm.type).basicType = EbtUint;
6833 #line 6834 "MachineIndependent/glslang_tab.cpp"
6836 case 210: /* type_specifier_nonarray: BOOL */
6837 #line 1693 "MachineIndependent/glslang.y"
6839 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6840 (yyval.interm.type).basicType = EbtBool;
6842 #line 6843 "MachineIndependent/glslang_tab.cpp"
6845 case 211: /* type_specifier_nonarray: VEC2 */
6846 #line 1697 "MachineIndependent/glslang.y"
6848 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6849 (yyval.interm.type).basicType = EbtFloat;
6850 (yyval.interm.type).setVector(2);
6852 #line 6853 "MachineIndependent/glslang_tab.cpp"
6855 case 212: /* type_specifier_nonarray: VEC3 */
6856 #line 1702 "MachineIndependent/glslang.y"
6858 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6859 (yyval.interm.type).basicType = EbtFloat;
6860 (yyval.interm.type).setVector(3);
6862 #line 6863 "MachineIndependent/glslang_tab.cpp"
6865 case 213: /* type_specifier_nonarray: VEC4 */
6866 #line 1707 "MachineIndependent/glslang.y"
6868 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6869 (yyval.interm.type).basicType = EbtFloat;
6870 (yyval.interm.type).setVector(4);
6872 #line 6873 "MachineIndependent/glslang_tab.cpp"
6875 case 214: /* type_specifier_nonarray: BVEC2 */
6876 #line 1712 "MachineIndependent/glslang.y"
6878 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6879 (yyval.interm.type).basicType = EbtBool;
6880 (yyval.interm.type).setVector(2);
6882 #line 6883 "MachineIndependent/glslang_tab.cpp"
6885 case 215: /* type_specifier_nonarray: BVEC3 */
6886 #line 1717 "MachineIndependent/glslang.y"
6888 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6889 (yyval.interm.type).basicType = EbtBool;
6890 (yyval.interm.type).setVector(3);
6892 #line 6893 "MachineIndependent/glslang_tab.cpp"
6895 case 216: /* type_specifier_nonarray: BVEC4 */
6896 #line 1722 "MachineIndependent/glslang.y"
6898 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6899 (yyval.interm.type).basicType = EbtBool;
6900 (yyval.interm.type).setVector(4);
6902 #line 6903 "MachineIndependent/glslang_tab.cpp"
6905 case 217: /* type_specifier_nonarray: IVEC2 */
6906 #line 1727 "MachineIndependent/glslang.y"
6908 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6909 (yyval.interm.type).basicType = EbtInt;
6910 (yyval.interm.type).setVector(2);
6912 #line 6913 "MachineIndependent/glslang_tab.cpp"
6915 case 218: /* type_specifier_nonarray: IVEC3 */
6916 #line 1732 "MachineIndependent/glslang.y"
6918 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6919 (yyval.interm.type).basicType = EbtInt;
6920 (yyval.interm.type).setVector(3);
6922 #line 6923 "MachineIndependent/glslang_tab.cpp"
6925 case 219: /* type_specifier_nonarray: IVEC4 */
6926 #line 1737 "MachineIndependent/glslang.y"
6928 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6929 (yyval.interm.type).basicType = EbtInt;
6930 (yyval.interm.type).setVector(4);
6932 #line 6933 "MachineIndependent/glslang_tab.cpp"
6935 case 220: /* type_specifier_nonarray: UVEC2 */
6936 #line 1742 "MachineIndependent/glslang.y"
6938 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6939 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6940 (yyval.interm.type).basicType = EbtUint;
6941 (yyval.interm.type).setVector(2);
6943 #line 6944 "MachineIndependent/glslang_tab.cpp"
6946 case 221: /* type_specifier_nonarray: UVEC3 */
6947 #line 1748 "MachineIndependent/glslang.y"
6949 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6950 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6951 (yyval.interm.type).basicType = EbtUint;
6952 (yyval.interm.type).setVector(3);
6954 #line 6955 "MachineIndependent/glslang_tab.cpp"
6957 case 222: /* type_specifier_nonarray: UVEC4 */
6958 #line 1754 "MachineIndependent/glslang.y"
6960 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6961 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6962 (yyval.interm.type).basicType = EbtUint;
6963 (yyval.interm.type).setVector(4);
6965 #line 6966 "MachineIndependent/glslang_tab.cpp"
6968 case 223: /* type_specifier_nonarray: MAT2 */
6969 #line 1760 "MachineIndependent/glslang.y"
6971 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6972 (yyval.interm.type).basicType = EbtFloat;
6973 (yyval.interm.type).setMatrix(2, 2);
6975 #line 6976 "MachineIndependent/glslang_tab.cpp"
6978 case 224: /* type_specifier_nonarray: MAT3 */
6979 #line 1765 "MachineIndependent/glslang.y"
6981 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6982 (yyval.interm.type).basicType = EbtFloat;
6983 (yyval.interm.type).setMatrix(3, 3);
6985 #line 6986 "MachineIndependent/glslang_tab.cpp"
6988 case 225: /* type_specifier_nonarray: MAT4 */
6989 #line 1770 "MachineIndependent/glslang.y"
6991 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6992 (yyval.interm.type).basicType = EbtFloat;
6993 (yyval.interm.type).setMatrix(4, 4);
6995 #line 6996 "MachineIndependent/glslang_tab.cpp"
6998 case 226: /* type_specifier_nonarray: MAT2X2 */
6999 #line 1775 "MachineIndependent/glslang.y"
7001 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7002 (yyval.interm.type).basicType = EbtFloat;
7003 (yyval.interm.type).setMatrix(2, 2);
7005 #line 7006 "MachineIndependent/glslang_tab.cpp"
7008 case 227: /* type_specifier_nonarray: MAT2X3 */
7009 #line 1780 "MachineIndependent/glslang.y"
7011 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7012 (yyval.interm.type).basicType = EbtFloat;
7013 (yyval.interm.type).setMatrix(2, 3);
7015 #line 7016 "MachineIndependent/glslang_tab.cpp"
7018 case 228: /* type_specifier_nonarray: MAT2X4 */
7019 #line 1785 "MachineIndependent/glslang.y"
7021 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7022 (yyval.interm.type).basicType = EbtFloat;
7023 (yyval.interm.type).setMatrix(2, 4);
7025 #line 7026 "MachineIndependent/glslang_tab.cpp"
7028 case 229: /* type_specifier_nonarray: MAT3X2 */
7029 #line 1790 "MachineIndependent/glslang.y"
7031 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7032 (yyval.interm.type).basicType = EbtFloat;
7033 (yyval.interm.type).setMatrix(3, 2);
7035 #line 7036 "MachineIndependent/glslang_tab.cpp"
7038 case 230: /* type_specifier_nonarray: MAT3X3 */
7039 #line 1795 "MachineIndependent/glslang.y"
7041 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7042 (yyval.interm.type).basicType = EbtFloat;
7043 (yyval.interm.type).setMatrix(3, 3);
7045 #line 7046 "MachineIndependent/glslang_tab.cpp"
7048 case 231: /* type_specifier_nonarray: MAT3X4 */
7049 #line 1800 "MachineIndependent/glslang.y"
7051 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7052 (yyval.interm.type).basicType = EbtFloat;
7053 (yyval.interm.type).setMatrix(3, 4);
7055 #line 7056 "MachineIndependent/glslang_tab.cpp"
7058 case 232: /* type_specifier_nonarray: MAT4X2 */
7059 #line 1805 "MachineIndependent/glslang.y"
7061 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7062 (yyval.interm.type).basicType = EbtFloat;
7063 (yyval.interm.type).setMatrix(4, 2);
7065 #line 7066 "MachineIndependent/glslang_tab.cpp"
7068 case 233: /* type_specifier_nonarray: MAT4X3 */
7069 #line 1810 "MachineIndependent/glslang.y"
7071 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7072 (yyval.interm.type).basicType = EbtFloat;
7073 (yyval.interm.type).setMatrix(4, 3);
7075 #line 7076 "MachineIndependent/glslang_tab.cpp"
7078 case 234: /* type_specifier_nonarray: MAT4X4 */
7079 #line 1815 "MachineIndependent/glslang.y"
7081 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7082 (yyval.interm.type).basicType = EbtFloat;
7083 (yyval.interm.type).setMatrix(4, 4);
7085 #line 7086 "MachineIndependent/glslang_tab.cpp"
7088 case 235: /* type_specifier_nonarray: DOUBLE */
7089 #line 1821 "MachineIndependent/glslang.y"
7091 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
7092 if (! parseContext.symbolTable.atBuiltInLevel())
7093 parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
7094 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7095 (yyval.interm.type).basicType = EbtDouble;
7097 #line 7098 "MachineIndependent/glslang_tab.cpp"
7100 case 236: /* type_specifier_nonarray: FLOAT16_T */
7101 #line 1828 "MachineIndependent/glslang.y"
7103 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
7104 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7105 (yyval.interm.type).basicType = EbtFloat16;
7107 #line 7108 "MachineIndependent/glslang_tab.cpp"
7110 case 237: /* type_specifier_nonarray: FLOAT32_T */
7111 #line 1833 "MachineIndependent/glslang.y"
7113 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
7114 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7115 (yyval.interm.type).basicType = EbtFloat;
7117 #line 7118 "MachineIndependent/glslang_tab.cpp"
7120 case 238: /* type_specifier_nonarray: FLOAT64_T */
7121 #line 1838 "MachineIndependent/glslang.y"
7123 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
7124 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7125 (yyval.interm.type).basicType = EbtDouble;
7127 #line 7128 "MachineIndependent/glslang_tab.cpp"
7130 case 239: /* type_specifier_nonarray: INT8_T */
7131 #line 1843 "MachineIndependent/glslang.y"
7133 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7134 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7135 (yyval.interm.type).basicType = EbtInt8;
7137 #line 7138 "MachineIndependent/glslang_tab.cpp"
7140 case 240: /* type_specifier_nonarray: UINT8_T */
7141 #line 1848 "MachineIndependent/glslang.y"
7143 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7144 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7145 (yyval.interm.type).basicType = EbtUint8;
7147 #line 7148 "MachineIndependent/glslang_tab.cpp"
7150 case 241: /* type_specifier_nonarray: INT16_T */
7151 #line 1853 "MachineIndependent/glslang.y"
7153 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7154 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7155 (yyval.interm.type).basicType = EbtInt16;
7157 #line 7158 "MachineIndependent/glslang_tab.cpp"
7160 case 242: /* type_specifier_nonarray: UINT16_T */
7161 #line 1858 "MachineIndependent/glslang.y"
7163 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7164 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7165 (yyval.interm.type).basicType = EbtUint16;
7167 #line 7168 "MachineIndependent/glslang_tab.cpp"
7170 case 243: /* type_specifier_nonarray: INT32_T */
7171 #line 1863 "MachineIndependent/glslang.y"
7173 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7174 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7175 (yyval.interm.type).basicType = EbtInt;
7177 #line 7178 "MachineIndependent/glslang_tab.cpp"
7180 case 244: /* type_specifier_nonarray: UINT32_T */
7181 #line 1868 "MachineIndependent/glslang.y"
7183 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7184 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7185 (yyval.interm.type).basicType = EbtUint;
7187 #line 7188 "MachineIndependent/glslang_tab.cpp"
7190 case 245: /* type_specifier_nonarray: INT64_T */
7191 #line 1873 "MachineIndependent/glslang.y"
7193 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
7194 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7195 (yyval.interm.type).basicType = EbtInt64;
7197 #line 7198 "MachineIndependent/glslang_tab.cpp"
7200 case 246: /* type_specifier_nonarray: UINT64_T */
7201 #line 1878 "MachineIndependent/glslang.y"
7203 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7204 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7205 (yyval.interm.type).basicType = EbtUint64;
7207 #line 7208 "MachineIndependent/glslang_tab.cpp"
7210 case 247: /* type_specifier_nonarray: DVEC2 */
7211 #line 1883 "MachineIndependent/glslang.y"
7213 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7214 if (! parseContext.symbolTable.atBuiltInLevel())
7215 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7216 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7217 (yyval.interm.type).basicType = EbtDouble;
7218 (yyval.interm.type).setVector(2);
7220 #line 7221 "MachineIndependent/glslang_tab.cpp"
7223 case 248: /* type_specifier_nonarray: DVEC3 */
7224 #line 1891 "MachineIndependent/glslang.y"
7226 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7227 if (! parseContext.symbolTable.atBuiltInLevel())
7228 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7229 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7230 (yyval.interm.type).basicType = EbtDouble;
7231 (yyval.interm.type).setVector(3);
7233 #line 7234 "MachineIndependent/glslang_tab.cpp"
7236 case 249: /* type_specifier_nonarray: DVEC4 */
7237 #line 1899 "MachineIndependent/glslang.y"
7239 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7240 if (! parseContext.symbolTable.atBuiltInLevel())
7241 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7242 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7243 (yyval.interm.type).basicType = EbtDouble;
7244 (yyval.interm.type).setVector(4);
7246 #line 7247 "MachineIndependent/glslang_tab.cpp"
7249 case 250: /* type_specifier_nonarray: F16VEC2 */
7250 #line 1907 "MachineIndependent/glslang.y"
7252 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7253 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7254 (yyval.interm.type).basicType = EbtFloat16;
7255 (yyval.interm.type).setVector(2);
7257 #line 7258 "MachineIndependent/glslang_tab.cpp"
7260 case 251: /* type_specifier_nonarray: F16VEC3 */
7261 #line 1913 "MachineIndependent/glslang.y"
7263 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7264 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7265 (yyval.interm.type).basicType = EbtFloat16;
7266 (yyval.interm.type).setVector(3);
7268 #line 7269 "MachineIndependent/glslang_tab.cpp"
7271 case 252: /* type_specifier_nonarray: F16VEC4 */
7272 #line 1919 "MachineIndependent/glslang.y"
7274 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7275 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7276 (yyval.interm.type).basicType = EbtFloat16;
7277 (yyval.interm.type).setVector(4);
7279 #line 7280 "MachineIndependent/glslang_tab.cpp"
7282 case 253: /* type_specifier_nonarray: F32VEC2 */
7283 #line 1925 "MachineIndependent/glslang.y"
7285 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7286 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287 (yyval.interm.type).basicType = EbtFloat;
7288 (yyval.interm.type).setVector(2);
7290 #line 7291 "MachineIndependent/glslang_tab.cpp"
7293 case 254: /* type_specifier_nonarray: F32VEC3 */
7294 #line 1931 "MachineIndependent/glslang.y"
7296 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7297 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7298 (yyval.interm.type).basicType = EbtFloat;
7299 (yyval.interm.type).setVector(3);
7301 #line 7302 "MachineIndependent/glslang_tab.cpp"
7304 case 255: /* type_specifier_nonarray: F32VEC4 */
7305 #line 1937 "MachineIndependent/glslang.y"
7307 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7308 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7309 (yyval.interm.type).basicType = EbtFloat;
7310 (yyval.interm.type).setVector(4);
7312 #line 7313 "MachineIndependent/glslang_tab.cpp"
7315 case 256: /* type_specifier_nonarray: F64VEC2 */
7316 #line 1943 "MachineIndependent/glslang.y"
7318 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7319 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7320 (yyval.interm.type).basicType = EbtDouble;
7321 (yyval.interm.type).setVector(2);
7323 #line 7324 "MachineIndependent/glslang_tab.cpp"
7326 case 257: /* type_specifier_nonarray: F64VEC3 */
7327 #line 1949 "MachineIndependent/glslang.y"
7329 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7330 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7331 (yyval.interm.type).basicType = EbtDouble;
7332 (yyval.interm.type).setVector(3);
7334 #line 7335 "MachineIndependent/glslang_tab.cpp"
7337 case 258: /* type_specifier_nonarray: F64VEC4 */
7338 #line 1955 "MachineIndependent/glslang.y"
7340 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7341 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7342 (yyval.interm.type).basicType = EbtDouble;
7343 (yyval.interm.type).setVector(4);
7345 #line 7346 "MachineIndependent/glslang_tab.cpp"
7348 case 259: /* type_specifier_nonarray: I8VEC2 */
7349 #line 1961 "MachineIndependent/glslang.y"
7351 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7352 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7353 (yyval.interm.type).basicType = EbtInt8;
7354 (yyval.interm.type).setVector(2);
7356 #line 7357 "MachineIndependent/glslang_tab.cpp"
7359 case 260: /* type_specifier_nonarray: I8VEC3 */
7360 #line 1967 "MachineIndependent/glslang.y"
7362 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7363 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7364 (yyval.interm.type).basicType = EbtInt8;
7365 (yyval.interm.type).setVector(3);
7367 #line 7368 "MachineIndependent/glslang_tab.cpp"
7370 case 261: /* type_specifier_nonarray: I8VEC4 */
7371 #line 1973 "MachineIndependent/glslang.y"
7373 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7374 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7375 (yyval.interm.type).basicType = EbtInt8;
7376 (yyval.interm.type).setVector(4);
7378 #line 7379 "MachineIndependent/glslang_tab.cpp"
7381 case 262: /* type_specifier_nonarray: I16VEC2 */
7382 #line 1979 "MachineIndependent/glslang.y"
7384 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7385 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7386 (yyval.interm.type).basicType = EbtInt16;
7387 (yyval.interm.type).setVector(2);
7389 #line 7390 "MachineIndependent/glslang_tab.cpp"
7392 case 263: /* type_specifier_nonarray: I16VEC3 */
7393 #line 1985 "MachineIndependent/glslang.y"
7395 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7396 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7397 (yyval.interm.type).basicType = EbtInt16;
7398 (yyval.interm.type).setVector(3);
7400 #line 7401 "MachineIndependent/glslang_tab.cpp"
7403 case 264: /* type_specifier_nonarray: I16VEC4 */
7404 #line 1991 "MachineIndependent/glslang.y"
7406 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7407 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7408 (yyval.interm.type).basicType = EbtInt16;
7409 (yyval.interm.type).setVector(4);
7411 #line 7412 "MachineIndependent/glslang_tab.cpp"
7414 case 265: /* type_specifier_nonarray: I32VEC2 */
7415 #line 1997 "MachineIndependent/glslang.y"
7417 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7418 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419 (yyval.interm.type).basicType = EbtInt;
7420 (yyval.interm.type).setVector(2);
7422 #line 7423 "MachineIndependent/glslang_tab.cpp"
7425 case 266: /* type_specifier_nonarray: I32VEC3 */
7426 #line 2003 "MachineIndependent/glslang.y"
7428 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7429 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7430 (yyval.interm.type).basicType = EbtInt;
7431 (yyval.interm.type).setVector(3);
7433 #line 7434 "MachineIndependent/glslang_tab.cpp"
7436 case 267: /* type_specifier_nonarray: I32VEC4 */
7437 #line 2009 "MachineIndependent/glslang.y"
7439 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7440 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7441 (yyval.interm.type).basicType = EbtInt;
7442 (yyval.interm.type).setVector(4);
7444 #line 7445 "MachineIndependent/glslang_tab.cpp"
7447 case 268: /* type_specifier_nonarray: I64VEC2 */
7448 #line 2015 "MachineIndependent/glslang.y"
7450 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7451 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7452 (yyval.interm.type).basicType = EbtInt64;
7453 (yyval.interm.type).setVector(2);
7455 #line 7456 "MachineIndependent/glslang_tab.cpp"
7458 case 269: /* type_specifier_nonarray: I64VEC3 */
7459 #line 2021 "MachineIndependent/glslang.y"
7461 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7462 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7463 (yyval.interm.type).basicType = EbtInt64;
7464 (yyval.interm.type).setVector(3);
7466 #line 7467 "MachineIndependent/glslang_tab.cpp"
7469 case 270: /* type_specifier_nonarray: I64VEC4 */
7470 #line 2027 "MachineIndependent/glslang.y"
7472 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7473 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7474 (yyval.interm.type).basicType = EbtInt64;
7475 (yyval.interm.type).setVector(4);
7477 #line 7478 "MachineIndependent/glslang_tab.cpp"
7480 case 271: /* type_specifier_nonarray: U8VEC2 */
7481 #line 2033 "MachineIndependent/glslang.y"
7483 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7484 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7485 (yyval.interm.type).basicType = EbtUint8;
7486 (yyval.interm.type).setVector(2);
7488 #line 7489 "MachineIndependent/glslang_tab.cpp"
7491 case 272: /* type_specifier_nonarray: U8VEC3 */
7492 #line 2039 "MachineIndependent/glslang.y"
7494 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7495 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7496 (yyval.interm.type).basicType = EbtUint8;
7497 (yyval.interm.type).setVector(3);
7499 #line 7500 "MachineIndependent/glslang_tab.cpp"
7502 case 273: /* type_specifier_nonarray: U8VEC4 */
7503 #line 2045 "MachineIndependent/glslang.y"
7505 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7506 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507 (yyval.interm.type).basicType = EbtUint8;
7508 (yyval.interm.type).setVector(4);
7510 #line 7511 "MachineIndependent/glslang_tab.cpp"
7513 case 274: /* type_specifier_nonarray: U16VEC2 */
7514 #line 2051 "MachineIndependent/glslang.y"
7516 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7517 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7518 (yyval.interm.type).basicType = EbtUint16;
7519 (yyval.interm.type).setVector(2);
7521 #line 7522 "MachineIndependent/glslang_tab.cpp"
7524 case 275: /* type_specifier_nonarray: U16VEC3 */
7525 #line 2057 "MachineIndependent/glslang.y"
7527 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7528 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7529 (yyval.interm.type).basicType = EbtUint16;
7530 (yyval.interm.type).setVector(3);
7532 #line 7533 "MachineIndependent/glslang_tab.cpp"
7535 case 276: /* type_specifier_nonarray: U16VEC4 */
7536 #line 2063 "MachineIndependent/glslang.y"
7538 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7539 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7540 (yyval.interm.type).basicType = EbtUint16;
7541 (yyval.interm.type).setVector(4);
7543 #line 7544 "MachineIndependent/glslang_tab.cpp"
7546 case 277: /* type_specifier_nonarray: U32VEC2 */
7547 #line 2069 "MachineIndependent/glslang.y"
7549 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7550 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7551 (yyval.interm.type).basicType = EbtUint;
7552 (yyval.interm.type).setVector(2);
7554 #line 7555 "MachineIndependent/glslang_tab.cpp"
7557 case 278: /* type_specifier_nonarray: U32VEC3 */
7558 #line 2075 "MachineIndependent/glslang.y"
7560 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7561 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7562 (yyval.interm.type).basicType = EbtUint;
7563 (yyval.interm.type).setVector(3);
7565 #line 7566 "MachineIndependent/glslang_tab.cpp"
7568 case 279: /* type_specifier_nonarray: U32VEC4 */
7569 #line 2081 "MachineIndependent/glslang.y"
7571 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7572 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7573 (yyval.interm.type).basicType = EbtUint;
7574 (yyval.interm.type).setVector(4);
7576 #line 7577 "MachineIndependent/glslang_tab.cpp"
7579 case 280: /* type_specifier_nonarray: U64VEC2 */
7580 #line 2087 "MachineIndependent/glslang.y"
7582 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7583 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7584 (yyval.interm.type).basicType = EbtUint64;
7585 (yyval.interm.type).setVector(2);
7587 #line 7588 "MachineIndependent/glslang_tab.cpp"
7590 case 281: /* type_specifier_nonarray: U64VEC3 */
7591 #line 2093 "MachineIndependent/glslang.y"
7593 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7594 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7595 (yyval.interm.type).basicType = EbtUint64;
7596 (yyval.interm.type).setVector(3);
7598 #line 7599 "MachineIndependent/glslang_tab.cpp"
7601 case 282: /* type_specifier_nonarray: U64VEC4 */
7602 #line 2099 "MachineIndependent/glslang.y"
7604 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7605 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7606 (yyval.interm.type).basicType = EbtUint64;
7607 (yyval.interm.type).setVector(4);
7609 #line 7610 "MachineIndependent/glslang_tab.cpp"
7612 case 283: /* type_specifier_nonarray: DMAT2 */
7613 #line 2105 "MachineIndependent/glslang.y"
7615 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7616 if (! parseContext.symbolTable.atBuiltInLevel())
7617 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7618 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7619 (yyval.interm.type).basicType = EbtDouble;
7620 (yyval.interm.type).setMatrix(2, 2);
7622 #line 7623 "MachineIndependent/glslang_tab.cpp"
7625 case 284: /* type_specifier_nonarray: DMAT3 */
7626 #line 2113 "MachineIndependent/glslang.y"
7628 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7629 if (! parseContext.symbolTable.atBuiltInLevel())
7630 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7631 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632 (yyval.interm.type).basicType = EbtDouble;
7633 (yyval.interm.type).setMatrix(3, 3);
7635 #line 7636 "MachineIndependent/glslang_tab.cpp"
7638 case 285: /* type_specifier_nonarray: DMAT4 */
7639 #line 2121 "MachineIndependent/glslang.y"
7641 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7642 if (! parseContext.symbolTable.atBuiltInLevel())
7643 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7644 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7645 (yyval.interm.type).basicType = EbtDouble;
7646 (yyval.interm.type).setMatrix(4, 4);
7648 #line 7649 "MachineIndependent/glslang_tab.cpp"
7651 case 286: /* type_specifier_nonarray: DMAT2X2 */
7652 #line 2129 "MachineIndependent/glslang.y"
7654 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7655 if (! parseContext.symbolTable.atBuiltInLevel())
7656 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7657 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7658 (yyval.interm.type).basicType = EbtDouble;
7659 (yyval.interm.type).setMatrix(2, 2);
7661 #line 7662 "MachineIndependent/glslang_tab.cpp"
7664 case 287: /* type_specifier_nonarray: DMAT2X3 */
7665 #line 2137 "MachineIndependent/glslang.y"
7667 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7668 if (! parseContext.symbolTable.atBuiltInLevel())
7669 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7670 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7671 (yyval.interm.type).basicType = EbtDouble;
7672 (yyval.interm.type).setMatrix(2, 3);
7674 #line 7675 "MachineIndependent/glslang_tab.cpp"
7677 case 288: /* type_specifier_nonarray: DMAT2X4 */
7678 #line 2145 "MachineIndependent/glslang.y"
7680 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7681 if (! parseContext.symbolTable.atBuiltInLevel())
7682 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7683 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7684 (yyval.interm.type).basicType = EbtDouble;
7685 (yyval.interm.type).setMatrix(2, 4);
7687 #line 7688 "MachineIndependent/glslang_tab.cpp"
7690 case 289: /* type_specifier_nonarray: DMAT3X2 */
7691 #line 2153 "MachineIndependent/glslang.y"
7693 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7694 if (! parseContext.symbolTable.atBuiltInLevel())
7695 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7696 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7697 (yyval.interm.type).basicType = EbtDouble;
7698 (yyval.interm.type).setMatrix(3, 2);
7700 #line 7701 "MachineIndependent/glslang_tab.cpp"
7703 case 290: /* type_specifier_nonarray: DMAT3X3 */
7704 #line 2161 "MachineIndependent/glslang.y"
7706 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7707 if (! parseContext.symbolTable.atBuiltInLevel())
7708 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7709 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7710 (yyval.interm.type).basicType = EbtDouble;
7711 (yyval.interm.type).setMatrix(3, 3);
7713 #line 7714 "MachineIndependent/glslang_tab.cpp"
7716 case 291: /* type_specifier_nonarray: DMAT3X4 */
7717 #line 2169 "MachineIndependent/glslang.y"
7719 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7720 if (! parseContext.symbolTable.atBuiltInLevel())
7721 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7722 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7723 (yyval.interm.type).basicType = EbtDouble;
7724 (yyval.interm.type).setMatrix(3, 4);
7726 #line 7727 "MachineIndependent/glslang_tab.cpp"
7729 case 292: /* type_specifier_nonarray: DMAT4X2 */
7730 #line 2177 "MachineIndependent/glslang.y"
7732 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7733 if (! parseContext.symbolTable.atBuiltInLevel())
7734 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7735 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7736 (yyval.interm.type).basicType = EbtDouble;
7737 (yyval.interm.type).setMatrix(4, 2);
7739 #line 7740 "MachineIndependent/glslang_tab.cpp"
7742 case 293: /* type_specifier_nonarray: DMAT4X3 */
7743 #line 2185 "MachineIndependent/glslang.y"
7745 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7746 if (! parseContext.symbolTable.atBuiltInLevel())
7747 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7748 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7749 (yyval.interm.type).basicType = EbtDouble;
7750 (yyval.interm.type).setMatrix(4, 3);
7752 #line 7753 "MachineIndependent/glslang_tab.cpp"
7755 case 294: /* type_specifier_nonarray: DMAT4X4 */
7756 #line 2193 "MachineIndependent/glslang.y"
7758 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7759 if (! parseContext.symbolTable.atBuiltInLevel())
7760 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7761 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7762 (yyval.interm.type).basicType = EbtDouble;
7763 (yyval.interm.type).setMatrix(4, 4);
7765 #line 7766 "MachineIndependent/glslang_tab.cpp"
7768 case 295: /* type_specifier_nonarray: F16MAT2 */
7769 #line 2201 "MachineIndependent/glslang.y"
7771 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7772 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7773 (yyval.interm.type).basicType = EbtFloat16;
7774 (yyval.interm.type).setMatrix(2, 2);
7776 #line 7777 "MachineIndependent/glslang_tab.cpp"
7779 case 296: /* type_specifier_nonarray: F16MAT3 */
7780 #line 2207 "MachineIndependent/glslang.y"
7782 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7783 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7784 (yyval.interm.type).basicType = EbtFloat16;
7785 (yyval.interm.type).setMatrix(3, 3);
7787 #line 7788 "MachineIndependent/glslang_tab.cpp"
7790 case 297: /* type_specifier_nonarray: F16MAT4 */
7791 #line 2213 "MachineIndependent/glslang.y"
7793 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7794 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7795 (yyval.interm.type).basicType = EbtFloat16;
7796 (yyval.interm.type).setMatrix(4, 4);
7798 #line 7799 "MachineIndependent/glslang_tab.cpp"
7801 case 298: /* type_specifier_nonarray: F16MAT2X2 */
7802 #line 2219 "MachineIndependent/glslang.y"
7804 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7805 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7806 (yyval.interm.type).basicType = EbtFloat16;
7807 (yyval.interm.type).setMatrix(2, 2);
7809 #line 7810 "MachineIndependent/glslang_tab.cpp"
7812 case 299: /* type_specifier_nonarray: F16MAT2X3 */
7813 #line 2225 "MachineIndependent/glslang.y"
7815 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7816 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7817 (yyval.interm.type).basicType = EbtFloat16;
7818 (yyval.interm.type).setMatrix(2, 3);
7820 #line 7821 "MachineIndependent/glslang_tab.cpp"
7823 case 300: /* type_specifier_nonarray: F16MAT2X4 */
7824 #line 2231 "MachineIndependent/glslang.y"
7826 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7827 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7828 (yyval.interm.type).basicType = EbtFloat16;
7829 (yyval.interm.type).setMatrix(2, 4);
7831 #line 7832 "MachineIndependent/glslang_tab.cpp"
7834 case 301: /* type_specifier_nonarray: F16MAT3X2 */
7835 #line 2237 "MachineIndependent/glslang.y"
7837 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7838 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7839 (yyval.interm.type).basicType = EbtFloat16;
7840 (yyval.interm.type).setMatrix(3, 2);
7842 #line 7843 "MachineIndependent/glslang_tab.cpp"
7845 case 302: /* type_specifier_nonarray: F16MAT3X3 */
7846 #line 2243 "MachineIndependent/glslang.y"
7848 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7849 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7850 (yyval.interm.type).basicType = EbtFloat16;
7851 (yyval.interm.type).setMatrix(3, 3);
7853 #line 7854 "MachineIndependent/glslang_tab.cpp"
7856 case 303: /* type_specifier_nonarray: F16MAT3X4 */
7857 #line 2249 "MachineIndependent/glslang.y"
7859 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7860 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7861 (yyval.interm.type).basicType = EbtFloat16;
7862 (yyval.interm.type).setMatrix(3, 4);
7864 #line 7865 "MachineIndependent/glslang_tab.cpp"
7867 case 304: /* type_specifier_nonarray: F16MAT4X2 */
7868 #line 2255 "MachineIndependent/glslang.y"
7870 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7871 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7872 (yyval.interm.type).basicType = EbtFloat16;
7873 (yyval.interm.type).setMatrix(4, 2);
7875 #line 7876 "MachineIndependent/glslang_tab.cpp"
7878 case 305: /* type_specifier_nonarray: F16MAT4X3 */
7879 #line 2261 "MachineIndependent/glslang.y"
7881 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7882 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7883 (yyval.interm.type).basicType = EbtFloat16;
7884 (yyval.interm.type).setMatrix(4, 3);
7886 #line 7887 "MachineIndependent/glslang_tab.cpp"
7889 case 306: /* type_specifier_nonarray: F16MAT4X4 */
7890 #line 2267 "MachineIndependent/glslang.y"
7892 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7893 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7894 (yyval.interm.type).basicType = EbtFloat16;
7895 (yyval.interm.type).setMatrix(4, 4);
7897 #line 7898 "MachineIndependent/glslang_tab.cpp"
7900 case 307: /* type_specifier_nonarray: F32MAT2 */
7901 #line 2273 "MachineIndependent/glslang.y"
7903 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7904 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7905 (yyval.interm.type).basicType = EbtFloat;
7906 (yyval.interm.type).setMatrix(2, 2);
7908 #line 7909 "MachineIndependent/glslang_tab.cpp"
7911 case 308: /* type_specifier_nonarray: F32MAT3 */
7912 #line 2279 "MachineIndependent/glslang.y"
7914 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7915 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7916 (yyval.interm.type).basicType = EbtFloat;
7917 (yyval.interm.type).setMatrix(3, 3);
7919 #line 7920 "MachineIndependent/glslang_tab.cpp"
7922 case 309: /* type_specifier_nonarray: F32MAT4 */
7923 #line 2285 "MachineIndependent/glslang.y"
7925 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7926 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7927 (yyval.interm.type).basicType = EbtFloat;
7928 (yyval.interm.type).setMatrix(4, 4);
7930 #line 7931 "MachineIndependent/glslang_tab.cpp"
7933 case 310: /* type_specifier_nonarray: F32MAT2X2 */
7934 #line 2291 "MachineIndependent/glslang.y"
7936 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7937 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7938 (yyval.interm.type).basicType = EbtFloat;
7939 (yyval.interm.type).setMatrix(2, 2);
7941 #line 7942 "MachineIndependent/glslang_tab.cpp"
7944 case 311: /* type_specifier_nonarray: F32MAT2X3 */
7945 #line 2297 "MachineIndependent/glslang.y"
7947 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7948 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7949 (yyval.interm.type).basicType = EbtFloat;
7950 (yyval.interm.type).setMatrix(2, 3);
7952 #line 7953 "MachineIndependent/glslang_tab.cpp"
7955 case 312: /* type_specifier_nonarray: F32MAT2X4 */
7956 #line 2303 "MachineIndependent/glslang.y"
7958 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7959 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7960 (yyval.interm.type).basicType = EbtFloat;
7961 (yyval.interm.type).setMatrix(2, 4);
7963 #line 7964 "MachineIndependent/glslang_tab.cpp"
7966 case 313: /* type_specifier_nonarray: F32MAT3X2 */
7967 #line 2309 "MachineIndependent/glslang.y"
7969 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7970 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7971 (yyval.interm.type).basicType = EbtFloat;
7972 (yyval.interm.type).setMatrix(3, 2);
7974 #line 7975 "MachineIndependent/glslang_tab.cpp"
7977 case 314: /* type_specifier_nonarray: F32MAT3X3 */
7978 #line 2315 "MachineIndependent/glslang.y"
7980 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7981 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7982 (yyval.interm.type).basicType = EbtFloat;
7983 (yyval.interm.type).setMatrix(3, 3);
7985 #line 7986 "MachineIndependent/glslang_tab.cpp"
7988 case 315: /* type_specifier_nonarray: F32MAT3X4 */
7989 #line 2321 "MachineIndependent/glslang.y"
7991 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7992 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7993 (yyval.interm.type).basicType = EbtFloat;
7994 (yyval.interm.type).setMatrix(3, 4);
7996 #line 7997 "MachineIndependent/glslang_tab.cpp"
7999 case 316: /* type_specifier_nonarray: F32MAT4X2 */
8000 #line 2327 "MachineIndependent/glslang.y"
8002 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8003 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8004 (yyval.interm.type).basicType = EbtFloat;
8005 (yyval.interm.type).setMatrix(4, 2);
8007 #line 8008 "MachineIndependent/glslang_tab.cpp"
8010 case 317: /* type_specifier_nonarray: F32MAT4X3 */
8011 #line 2333 "MachineIndependent/glslang.y"
8013 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8014 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8015 (yyval.interm.type).basicType = EbtFloat;
8016 (yyval.interm.type).setMatrix(4, 3);
8018 #line 8019 "MachineIndependent/glslang_tab.cpp"
8021 case 318: /* type_specifier_nonarray: F32MAT4X4 */
8022 #line 2339 "MachineIndependent/glslang.y"
8024 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8025 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8026 (yyval.interm.type).basicType = EbtFloat;
8027 (yyval.interm.type).setMatrix(4, 4);
8029 #line 8030 "MachineIndependent/glslang_tab.cpp"
8032 case 319: /* type_specifier_nonarray: F64MAT2 */
8033 #line 2345 "MachineIndependent/glslang.y"
8035 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8036 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8037 (yyval.interm.type).basicType = EbtDouble;
8038 (yyval.interm.type).setMatrix(2, 2);
8040 #line 8041 "MachineIndependent/glslang_tab.cpp"
8043 case 320: /* type_specifier_nonarray: F64MAT3 */
8044 #line 2351 "MachineIndependent/glslang.y"
8046 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8047 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8048 (yyval.interm.type).basicType = EbtDouble;
8049 (yyval.interm.type).setMatrix(3, 3);
8051 #line 8052 "MachineIndependent/glslang_tab.cpp"
8054 case 321: /* type_specifier_nonarray: F64MAT4 */
8055 #line 2357 "MachineIndependent/glslang.y"
8057 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8058 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8059 (yyval.interm.type).basicType = EbtDouble;
8060 (yyval.interm.type).setMatrix(4, 4);
8062 #line 8063 "MachineIndependent/glslang_tab.cpp"
8065 case 322: /* type_specifier_nonarray: F64MAT2X2 */
8066 #line 2363 "MachineIndependent/glslang.y"
8068 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8069 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8070 (yyval.interm.type).basicType = EbtDouble;
8071 (yyval.interm.type).setMatrix(2, 2);
8073 #line 8074 "MachineIndependent/glslang_tab.cpp"
8076 case 323: /* type_specifier_nonarray: F64MAT2X3 */
8077 #line 2369 "MachineIndependent/glslang.y"
8079 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8080 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8081 (yyval.interm.type).basicType = EbtDouble;
8082 (yyval.interm.type).setMatrix(2, 3);
8084 #line 8085 "MachineIndependent/glslang_tab.cpp"
8087 case 324: /* type_specifier_nonarray: F64MAT2X4 */
8088 #line 2375 "MachineIndependent/glslang.y"
8090 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8091 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8092 (yyval.interm.type).basicType = EbtDouble;
8093 (yyval.interm.type).setMatrix(2, 4);
8095 #line 8096 "MachineIndependent/glslang_tab.cpp"
8098 case 325: /* type_specifier_nonarray: F64MAT3X2 */
8099 #line 2381 "MachineIndependent/glslang.y"
8101 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8102 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8103 (yyval.interm.type).basicType = EbtDouble;
8104 (yyval.interm.type).setMatrix(3, 2);
8106 #line 8107 "MachineIndependent/glslang_tab.cpp"
8109 case 326: /* type_specifier_nonarray: F64MAT3X3 */
8110 #line 2387 "MachineIndependent/glslang.y"
8112 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8113 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8114 (yyval.interm.type).basicType = EbtDouble;
8115 (yyval.interm.type).setMatrix(3, 3);
8117 #line 8118 "MachineIndependent/glslang_tab.cpp"
8120 case 327: /* type_specifier_nonarray: F64MAT3X4 */
8121 #line 2393 "MachineIndependent/glslang.y"
8123 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8124 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8125 (yyval.interm.type).basicType = EbtDouble;
8126 (yyval.interm.type).setMatrix(3, 4);
8128 #line 8129 "MachineIndependent/glslang_tab.cpp"
8131 case 328: /* type_specifier_nonarray: F64MAT4X2 */
8132 #line 2399 "MachineIndependent/glslang.y"
8134 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8135 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8136 (yyval.interm.type).basicType = EbtDouble;
8137 (yyval.interm.type).setMatrix(4, 2);
8139 #line 8140 "MachineIndependent/glslang_tab.cpp"
8142 case 329: /* type_specifier_nonarray: F64MAT4X3 */
8143 #line 2405 "MachineIndependent/glslang.y"
8145 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8146 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8147 (yyval.interm.type).basicType = EbtDouble;
8148 (yyval.interm.type).setMatrix(4, 3);
8150 #line 8151 "MachineIndependent/glslang_tab.cpp"
8153 case 330: /* type_specifier_nonarray: F64MAT4X4 */
8154 #line 2411 "MachineIndependent/glslang.y"
8156 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8157 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8158 (yyval.interm.type).basicType = EbtDouble;
8159 (yyval.interm.type).setMatrix(4, 4);
8161 #line 8162 "MachineIndependent/glslang_tab.cpp"
8164 case 331: /* type_specifier_nonarray: ACCSTRUCTNV */
8165 #line 2417 "MachineIndependent/glslang.y"
8167 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8168 (yyval.interm.type).basicType = EbtAccStruct;
8170 #line 8171 "MachineIndependent/glslang_tab.cpp"
8173 case 332: /* type_specifier_nonarray: ACCSTRUCTEXT */
8174 #line 2421 "MachineIndependent/glslang.y"
8176 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8177 (yyval.interm.type).basicType = EbtAccStruct;
8179 #line 8180 "MachineIndependent/glslang_tab.cpp"
8182 case 333: /* type_specifier_nonarray: RAYQUERYEXT */
8183 #line 2425 "MachineIndependent/glslang.y"
8185 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8186 (yyval.interm.type).basicType = EbtRayQuery;
8188 #line 8189 "MachineIndependent/glslang_tab.cpp"
8191 case 334: /* type_specifier_nonarray: ATOMIC_UINT */
8192 #line 2429 "MachineIndependent/glslang.y"
8194 parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
8195 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8196 (yyval.interm.type).basicType = EbtAtomicUint;
8198 #line 8199 "MachineIndependent/glslang_tab.cpp"
8201 case 335: /* type_specifier_nonarray: SAMPLER1D */
8202 #line 2434 "MachineIndependent/glslang.y"
8204 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8205 (yyval.interm.type).basicType = EbtSampler;
8206 (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
8208 #line 8209 "MachineIndependent/glslang_tab.cpp"
8211 case 336: /* type_specifier_nonarray: SAMPLER2D */
8212 #line 2440 "MachineIndependent/glslang.y"
8214 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8215 (yyval.interm.type).basicType = EbtSampler;
8216 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
8218 #line 8219 "MachineIndependent/glslang_tab.cpp"
8221 case 337: /* type_specifier_nonarray: SAMPLER3D */
8222 #line 2445 "MachineIndependent/glslang.y"
8224 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8225 (yyval.interm.type).basicType = EbtSampler;
8226 (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
8228 #line 8229 "MachineIndependent/glslang_tab.cpp"
8231 case 338: /* type_specifier_nonarray: SAMPLERCUBE */
8232 #line 2450 "MachineIndependent/glslang.y"
8234 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8235 (yyval.interm.type).basicType = EbtSampler;
8236 (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
8238 #line 8239 "MachineIndependent/glslang_tab.cpp"
8241 case 339: /* type_specifier_nonarray: SAMPLER2DSHADOW */
8242 #line 2455 "MachineIndependent/glslang.y"
8244 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8245 (yyval.interm.type).basicType = EbtSampler;
8246 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
8248 #line 8249 "MachineIndependent/glslang_tab.cpp"
8251 case 340: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
8252 #line 2460 "MachineIndependent/glslang.y"
8254 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8255 (yyval.interm.type).basicType = EbtSampler;
8256 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
8258 #line 8259 "MachineIndependent/glslang_tab.cpp"
8261 case 341: /* type_specifier_nonarray: SAMPLER2DARRAY */
8262 #line 2465 "MachineIndependent/glslang.y"
8264 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8265 (yyval.interm.type).basicType = EbtSampler;
8266 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
8268 #line 8269 "MachineIndependent/glslang_tab.cpp"
8271 case 342: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
8272 #line 2470 "MachineIndependent/glslang.y"
8274 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8275 (yyval.interm.type).basicType = EbtSampler;
8276 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
8278 #line 8279 "MachineIndependent/glslang_tab.cpp"
8281 case 343: /* type_specifier_nonarray: SAMPLER1DSHADOW */
8282 #line 2476 "MachineIndependent/glslang.y"
8284 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8285 (yyval.interm.type).basicType = EbtSampler;
8286 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
8288 #line 8289 "MachineIndependent/glslang_tab.cpp"
8291 case 344: /* type_specifier_nonarray: SAMPLER1DARRAY */
8292 #line 2481 "MachineIndependent/glslang.y"
8294 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8295 (yyval.interm.type).basicType = EbtSampler;
8296 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
8298 #line 8299 "MachineIndependent/glslang_tab.cpp"
8301 case 345: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
8302 #line 2486 "MachineIndependent/glslang.y"
8304 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8305 (yyval.interm.type).basicType = EbtSampler;
8306 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
8308 #line 8309 "MachineIndependent/glslang_tab.cpp"
8311 case 346: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
8312 #line 2491 "MachineIndependent/glslang.y"
8314 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8315 (yyval.interm.type).basicType = EbtSampler;
8316 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
8318 #line 8319 "MachineIndependent/glslang_tab.cpp"
8321 case 347: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
8322 #line 2496 "MachineIndependent/glslang.y"
8324 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8325 (yyval.interm.type).basicType = EbtSampler;
8326 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
8328 #line 8329 "MachineIndependent/glslang_tab.cpp"
8331 case 348: /* type_specifier_nonarray: F16SAMPLER1D */
8332 #line 2501 "MachineIndependent/glslang.y"
8334 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8335 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8336 (yyval.interm.type).basicType = EbtSampler;
8337 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
8339 #line 8340 "MachineIndependent/glslang_tab.cpp"
8342 case 349: /* type_specifier_nonarray: F16SAMPLER2D */
8343 #line 2507 "MachineIndependent/glslang.y"
8345 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8346 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8347 (yyval.interm.type).basicType = EbtSampler;
8348 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
8350 #line 8351 "MachineIndependent/glslang_tab.cpp"
8353 case 350: /* type_specifier_nonarray: F16SAMPLER3D */
8354 #line 2513 "MachineIndependent/glslang.y"
8356 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8357 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8358 (yyval.interm.type).basicType = EbtSampler;
8359 (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
8361 #line 8362 "MachineIndependent/glslang_tab.cpp"
8364 case 351: /* type_specifier_nonarray: F16SAMPLERCUBE */
8365 #line 2519 "MachineIndependent/glslang.y"
8367 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8368 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8369 (yyval.interm.type).basicType = EbtSampler;
8370 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
8372 #line 8373 "MachineIndependent/glslang_tab.cpp"
8375 case 352: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
8376 #line 2525 "MachineIndependent/glslang.y"
8378 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8379 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8380 (yyval.interm.type).basicType = EbtSampler;
8381 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
8383 #line 8384 "MachineIndependent/glslang_tab.cpp"
8386 case 353: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
8387 #line 2531 "MachineIndependent/glslang.y"
8389 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8390 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8391 (yyval.interm.type).basicType = EbtSampler;
8392 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
8394 #line 8395 "MachineIndependent/glslang_tab.cpp"
8397 case 354: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
8398 #line 2537 "MachineIndependent/glslang.y"
8400 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8401 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8402 (yyval.interm.type).basicType = EbtSampler;
8403 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
8405 #line 8406 "MachineIndependent/glslang_tab.cpp"
8408 case 355: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
8409 #line 2543 "MachineIndependent/glslang.y"
8411 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8412 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8413 (yyval.interm.type).basicType = EbtSampler;
8414 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
8416 #line 8417 "MachineIndependent/glslang_tab.cpp"
8419 case 356: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
8420 #line 2549 "MachineIndependent/glslang.y"
8422 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8423 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8424 (yyval.interm.type).basicType = EbtSampler;
8425 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
8427 #line 8428 "MachineIndependent/glslang_tab.cpp"
8430 case 357: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
8431 #line 2555 "MachineIndependent/glslang.y"
8433 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8434 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8435 (yyval.interm.type).basicType = EbtSampler;
8436 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
8438 #line 8439 "MachineIndependent/glslang_tab.cpp"
8441 case 358: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
8442 #line 2561 "MachineIndependent/glslang.y"
8444 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8445 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8446 (yyval.interm.type).basicType = EbtSampler;
8447 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
8449 #line 8450 "MachineIndependent/glslang_tab.cpp"
8452 case 359: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
8453 #line 2567 "MachineIndependent/glslang.y"
8455 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8456 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8457 (yyval.interm.type).basicType = EbtSampler;
8458 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
8460 #line 8461 "MachineIndependent/glslang_tab.cpp"
8463 case 360: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
8464 #line 2573 "MachineIndependent/glslang.y"
8466 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8467 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8468 (yyval.interm.type).basicType = EbtSampler;
8469 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
8471 #line 8472 "MachineIndependent/glslang_tab.cpp"
8474 case 361: /* type_specifier_nonarray: ISAMPLER1D */
8475 #line 2579 "MachineIndependent/glslang.y"
8477 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8478 (yyval.interm.type).basicType = EbtSampler;
8479 (yyval.interm.type).sampler.set(EbtInt, Esd1D);
8481 #line 8482 "MachineIndependent/glslang_tab.cpp"
8484 case 362: /* type_specifier_nonarray: ISAMPLER2D */
8485 #line 2585 "MachineIndependent/glslang.y"
8487 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8488 (yyval.interm.type).basicType = EbtSampler;
8489 (yyval.interm.type).sampler.set(EbtInt, Esd2D);
8491 #line 8492 "MachineIndependent/glslang_tab.cpp"
8494 case 363: /* type_specifier_nonarray: ISAMPLER3D */
8495 #line 2590 "MachineIndependent/glslang.y"
8497 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8498 (yyval.interm.type).basicType = EbtSampler;
8499 (yyval.interm.type).sampler.set(EbtInt, Esd3D);
8501 #line 8502 "MachineIndependent/glslang_tab.cpp"
8504 case 364: /* type_specifier_nonarray: ISAMPLERCUBE */
8505 #line 2595 "MachineIndependent/glslang.y"
8507 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8508 (yyval.interm.type).basicType = EbtSampler;
8509 (yyval.interm.type).sampler.set(EbtInt, EsdCube);
8511 #line 8512 "MachineIndependent/glslang_tab.cpp"
8514 case 365: /* type_specifier_nonarray: ISAMPLER2DARRAY */
8515 #line 2600 "MachineIndependent/glslang.y"
8517 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8518 (yyval.interm.type).basicType = EbtSampler;
8519 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
8521 #line 8522 "MachineIndependent/glslang_tab.cpp"
8524 case 366: /* type_specifier_nonarray: USAMPLER2D */
8525 #line 2605 "MachineIndependent/glslang.y"
8527 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8528 (yyval.interm.type).basicType = EbtSampler;
8529 (yyval.interm.type).sampler.set(EbtUint, Esd2D);
8531 #line 8532 "MachineIndependent/glslang_tab.cpp"
8534 case 367: /* type_specifier_nonarray: USAMPLER3D */
8535 #line 2610 "MachineIndependent/glslang.y"
8537 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8538 (yyval.interm.type).basicType = EbtSampler;
8539 (yyval.interm.type).sampler.set(EbtUint, Esd3D);
8541 #line 8542 "MachineIndependent/glslang_tab.cpp"
8544 case 368: /* type_specifier_nonarray: USAMPLERCUBE */
8545 #line 2615 "MachineIndependent/glslang.y"
8547 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8548 (yyval.interm.type).basicType = EbtSampler;
8549 (yyval.interm.type).sampler.set(EbtUint, EsdCube);
8551 #line 8552 "MachineIndependent/glslang_tab.cpp"
8554 case 369: /* type_specifier_nonarray: ISAMPLER1DARRAY */
8555 #line 2621 "MachineIndependent/glslang.y"
8557 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8558 (yyval.interm.type).basicType = EbtSampler;
8559 (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
8561 #line 8562 "MachineIndependent/glslang_tab.cpp"
8564 case 370: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
8565 #line 2626 "MachineIndependent/glslang.y"
8567 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8568 (yyval.interm.type).basicType = EbtSampler;
8569 (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
8571 #line 8572 "MachineIndependent/glslang_tab.cpp"
8574 case 371: /* type_specifier_nonarray: USAMPLER1D */
8575 #line 2631 "MachineIndependent/glslang.y"
8577 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8578 (yyval.interm.type).basicType = EbtSampler;
8579 (yyval.interm.type).sampler.set(EbtUint, Esd1D);
8581 #line 8582 "MachineIndependent/glslang_tab.cpp"
8584 case 372: /* type_specifier_nonarray: USAMPLER1DARRAY */
8585 #line 2636 "MachineIndependent/glslang.y"
8587 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8588 (yyval.interm.type).basicType = EbtSampler;
8589 (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
8591 #line 8592 "MachineIndependent/glslang_tab.cpp"
8594 case 373: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
8595 #line 2641 "MachineIndependent/glslang.y"
8597 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8598 (yyval.interm.type).basicType = EbtSampler;
8599 (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8601 #line 8602 "MachineIndependent/glslang_tab.cpp"
8604 case 374: /* type_specifier_nonarray: TEXTURECUBEARRAY */
8605 #line 2646 "MachineIndependent/glslang.y"
8607 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8608 (yyval.interm.type).basicType = EbtSampler;
8609 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8611 #line 8612 "MachineIndependent/glslang_tab.cpp"
8614 case 375: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
8615 #line 2651 "MachineIndependent/glslang.y"
8617 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8618 (yyval.interm.type).basicType = EbtSampler;
8619 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8621 #line 8622 "MachineIndependent/glslang_tab.cpp"
8624 case 376: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
8625 #line 2656 "MachineIndependent/glslang.y"
8627 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8628 (yyval.interm.type).basicType = EbtSampler;
8629 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8631 #line 8632 "MachineIndependent/glslang_tab.cpp"
8634 case 377: /* type_specifier_nonarray: USAMPLER2DARRAY */
8635 #line 2662 "MachineIndependent/glslang.y"
8637 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8638 (yyval.interm.type).basicType = EbtSampler;
8639 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8641 #line 8642 "MachineIndependent/glslang_tab.cpp"
8644 case 378: /* type_specifier_nonarray: TEXTURE2D */
8645 #line 2667 "MachineIndependent/glslang.y"
8647 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8648 (yyval.interm.type).basicType = EbtSampler;
8649 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8651 #line 8652 "MachineIndependent/glslang_tab.cpp"
8654 case 379: /* type_specifier_nonarray: TEXTURE3D */
8655 #line 2672 "MachineIndependent/glslang.y"
8657 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8658 (yyval.interm.type).basicType = EbtSampler;
8659 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8661 #line 8662 "MachineIndependent/glslang_tab.cpp"
8664 case 380: /* type_specifier_nonarray: TEXTURE2DARRAY */
8665 #line 2677 "MachineIndependent/glslang.y"
8667 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8668 (yyval.interm.type).basicType = EbtSampler;
8669 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8671 #line 8672 "MachineIndependent/glslang_tab.cpp"
8674 case 381: /* type_specifier_nonarray: TEXTURECUBE */
8675 #line 2682 "MachineIndependent/glslang.y"
8677 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8678 (yyval.interm.type).basicType = EbtSampler;
8679 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8681 #line 8682 "MachineIndependent/glslang_tab.cpp"
8684 case 382: /* type_specifier_nonarray: ITEXTURE2D */
8685 #line 2687 "MachineIndependent/glslang.y"
8687 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8688 (yyval.interm.type).basicType = EbtSampler;
8689 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8691 #line 8692 "MachineIndependent/glslang_tab.cpp"
8694 case 383: /* type_specifier_nonarray: ITEXTURE3D */
8695 #line 2692 "MachineIndependent/glslang.y"
8697 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8698 (yyval.interm.type).basicType = EbtSampler;
8699 (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8701 #line 8702 "MachineIndependent/glslang_tab.cpp"
8704 case 384: /* type_specifier_nonarray: ITEXTURECUBE */
8705 #line 2697 "MachineIndependent/glslang.y"
8707 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8708 (yyval.interm.type).basicType = EbtSampler;
8709 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8711 #line 8712 "MachineIndependent/glslang_tab.cpp"
8714 case 385: /* type_specifier_nonarray: ITEXTURE2DARRAY */
8715 #line 2702 "MachineIndependent/glslang.y"
8717 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8718 (yyval.interm.type).basicType = EbtSampler;
8719 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8721 #line 8722 "MachineIndependent/glslang_tab.cpp"
8724 case 386: /* type_specifier_nonarray: UTEXTURE2D */
8725 #line 2707 "MachineIndependent/glslang.y"
8727 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8728 (yyval.interm.type).basicType = EbtSampler;
8729 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8731 #line 8732 "MachineIndependent/glslang_tab.cpp"
8734 case 387: /* type_specifier_nonarray: UTEXTURE3D */
8735 #line 2712 "MachineIndependent/glslang.y"
8737 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8738 (yyval.interm.type).basicType = EbtSampler;
8739 (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8741 #line 8742 "MachineIndependent/glslang_tab.cpp"
8744 case 388: /* type_specifier_nonarray: UTEXTURECUBE */
8745 #line 2717 "MachineIndependent/glslang.y"
8747 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8748 (yyval.interm.type).basicType = EbtSampler;
8749 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8751 #line 8752 "MachineIndependent/glslang_tab.cpp"
8754 case 389: /* type_specifier_nonarray: UTEXTURE2DARRAY */
8755 #line 2722 "MachineIndependent/glslang.y"
8757 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8758 (yyval.interm.type).basicType = EbtSampler;
8759 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8761 #line 8762 "MachineIndependent/glslang_tab.cpp"
8764 case 390: /* type_specifier_nonarray: SAMPLER */
8765 #line 2727 "MachineIndependent/glslang.y"
8767 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8768 (yyval.interm.type).basicType = EbtSampler;
8769 (yyval.interm.type).sampler.setPureSampler(false);
8771 #line 8772 "MachineIndependent/glslang_tab.cpp"
8774 case 391: /* type_specifier_nonarray: SAMPLERSHADOW */
8775 #line 2732 "MachineIndependent/glslang.y"
8777 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8778 (yyval.interm.type).basicType = EbtSampler;
8779 (yyval.interm.type).sampler.setPureSampler(true);
8781 #line 8782 "MachineIndependent/glslang_tab.cpp"
8784 case 392: /* type_specifier_nonarray: SAMPLER2DRECT */
8785 #line 2738 "MachineIndependent/glslang.y"
8787 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8788 (yyval.interm.type).basicType = EbtSampler;
8789 (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8791 #line 8792 "MachineIndependent/glslang_tab.cpp"
8794 case 393: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
8795 #line 2743 "MachineIndependent/glslang.y"
8797 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8798 (yyval.interm.type).basicType = EbtSampler;
8799 (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8801 #line 8802 "MachineIndependent/glslang_tab.cpp"
8804 case 394: /* type_specifier_nonarray: F16SAMPLER2DRECT */
8805 #line 2748 "MachineIndependent/glslang.y"
8807 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8808 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8809 (yyval.interm.type).basicType = EbtSampler;
8810 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8812 #line 8813 "MachineIndependent/glslang_tab.cpp"
8815 case 395: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
8816 #line 2754 "MachineIndependent/glslang.y"
8818 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8819 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8820 (yyval.interm.type).basicType = EbtSampler;
8821 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8823 #line 8824 "MachineIndependent/glslang_tab.cpp"
8826 case 396: /* type_specifier_nonarray: ISAMPLER2DRECT */
8827 #line 2760 "MachineIndependent/glslang.y"
8829 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8830 (yyval.interm.type).basicType = EbtSampler;
8831 (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8833 #line 8834 "MachineIndependent/glslang_tab.cpp"
8836 case 397: /* type_specifier_nonarray: USAMPLER2DRECT */
8837 #line 2765 "MachineIndependent/glslang.y"
8839 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8840 (yyval.interm.type).basicType = EbtSampler;
8841 (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8843 #line 8844 "MachineIndependent/glslang_tab.cpp"
8846 case 398: /* type_specifier_nonarray: SAMPLERBUFFER */
8847 #line 2770 "MachineIndependent/glslang.y"
8849 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8850 (yyval.interm.type).basicType = EbtSampler;
8851 (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8853 #line 8854 "MachineIndependent/glslang_tab.cpp"
8856 case 399: /* type_specifier_nonarray: F16SAMPLERBUFFER */
8857 #line 2775 "MachineIndependent/glslang.y"
8859 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8860 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8861 (yyval.interm.type).basicType = EbtSampler;
8862 (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8864 #line 8865 "MachineIndependent/glslang_tab.cpp"
8867 case 400: /* type_specifier_nonarray: ISAMPLERBUFFER */
8868 #line 2781 "MachineIndependent/glslang.y"
8870 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8871 (yyval.interm.type).basicType = EbtSampler;
8872 (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8874 #line 8875 "MachineIndependent/glslang_tab.cpp"
8877 case 401: /* type_specifier_nonarray: USAMPLERBUFFER */
8878 #line 2786 "MachineIndependent/glslang.y"
8880 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881 (yyval.interm.type).basicType = EbtSampler;
8882 (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8884 #line 8885 "MachineIndependent/glslang_tab.cpp"
8887 case 402: /* type_specifier_nonarray: SAMPLER2DMS */
8888 #line 2791 "MachineIndependent/glslang.y"
8890 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8891 (yyval.interm.type).basicType = EbtSampler;
8892 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8894 #line 8895 "MachineIndependent/glslang_tab.cpp"
8897 case 403: /* type_specifier_nonarray: F16SAMPLER2DMS */
8898 #line 2796 "MachineIndependent/glslang.y"
8900 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8901 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8902 (yyval.interm.type).basicType = EbtSampler;
8903 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8905 #line 8906 "MachineIndependent/glslang_tab.cpp"
8908 case 404: /* type_specifier_nonarray: ISAMPLER2DMS */
8909 #line 2802 "MachineIndependent/glslang.y"
8911 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8912 (yyval.interm.type).basicType = EbtSampler;
8913 (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8915 #line 8916 "MachineIndependent/glslang_tab.cpp"
8918 case 405: /* type_specifier_nonarray: USAMPLER2DMS */
8919 #line 2807 "MachineIndependent/glslang.y"
8921 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8922 (yyval.interm.type).basicType = EbtSampler;
8923 (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8925 #line 8926 "MachineIndependent/glslang_tab.cpp"
8928 case 406: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
8929 #line 2812 "MachineIndependent/glslang.y"
8931 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8932 (yyval.interm.type).basicType = EbtSampler;
8933 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8935 #line 8936 "MachineIndependent/glslang_tab.cpp"
8938 case 407: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
8939 #line 2817 "MachineIndependent/glslang.y"
8941 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8942 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8943 (yyval.interm.type).basicType = EbtSampler;
8944 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8946 #line 8947 "MachineIndependent/glslang_tab.cpp"
8949 case 408: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
8950 #line 2823 "MachineIndependent/glslang.y"
8952 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8953 (yyval.interm.type).basicType = EbtSampler;
8954 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8956 #line 8957 "MachineIndependent/glslang_tab.cpp"
8959 case 409: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
8960 #line 2828 "MachineIndependent/glslang.y"
8962 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8963 (yyval.interm.type).basicType = EbtSampler;
8964 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8966 #line 8967 "MachineIndependent/glslang_tab.cpp"
8969 case 410: /* type_specifier_nonarray: TEXTURE1D */
8970 #line 2833 "MachineIndependent/glslang.y"
8972 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8973 (yyval.interm.type).basicType = EbtSampler;
8974 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8976 #line 8977 "MachineIndependent/glslang_tab.cpp"
8979 case 411: /* type_specifier_nonarray: F16TEXTURE1D */
8980 #line 2838 "MachineIndependent/glslang.y"
8982 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8983 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8984 (yyval.interm.type).basicType = EbtSampler;
8985 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8987 #line 8988 "MachineIndependent/glslang_tab.cpp"
8990 case 412: /* type_specifier_nonarray: F16TEXTURE2D */
8991 #line 2844 "MachineIndependent/glslang.y"
8993 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8994 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8995 (yyval.interm.type).basicType = EbtSampler;
8996 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8998 #line 8999 "MachineIndependent/glslang_tab.cpp"
9001 case 413: /* type_specifier_nonarray: F16TEXTURE3D */
9002 #line 2850 "MachineIndependent/glslang.y"
9004 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9005 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9006 (yyval.interm.type).basicType = EbtSampler;
9007 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
9009 #line 9010 "MachineIndependent/glslang_tab.cpp"
9012 case 414: /* type_specifier_nonarray: F16TEXTURECUBE */
9013 #line 2856 "MachineIndependent/glslang.y"
9015 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9016 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9017 (yyval.interm.type).basicType = EbtSampler;
9018 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
9020 #line 9021 "MachineIndependent/glslang_tab.cpp"
9023 case 415: /* type_specifier_nonarray: TEXTURE1DARRAY */
9024 #line 2862 "MachineIndependent/glslang.y"
9026 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9027 (yyval.interm.type).basicType = EbtSampler;
9028 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
9030 #line 9031 "MachineIndependent/glslang_tab.cpp"
9033 case 416: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
9034 #line 2867 "MachineIndependent/glslang.y"
9036 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9037 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9038 (yyval.interm.type).basicType = EbtSampler;
9039 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
9041 #line 9042 "MachineIndependent/glslang_tab.cpp"
9044 case 417: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
9045 #line 2873 "MachineIndependent/glslang.y"
9047 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9048 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9049 (yyval.interm.type).basicType = EbtSampler;
9050 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
9052 #line 9053 "MachineIndependent/glslang_tab.cpp"
9055 case 418: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
9056 #line 2879 "MachineIndependent/glslang.y"
9058 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9059 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9060 (yyval.interm.type).basicType = EbtSampler;
9061 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
9063 #line 9064 "MachineIndependent/glslang_tab.cpp"
9066 case 419: /* type_specifier_nonarray: ITEXTURE1D */
9067 #line 2885 "MachineIndependent/glslang.y"
9069 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9070 (yyval.interm.type).basicType = EbtSampler;
9071 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
9073 #line 9074 "MachineIndependent/glslang_tab.cpp"
9076 case 420: /* type_specifier_nonarray: ITEXTURE1DARRAY */
9077 #line 2890 "MachineIndependent/glslang.y"
9079 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9080 (yyval.interm.type).basicType = EbtSampler;
9081 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
9083 #line 9084 "MachineIndependent/glslang_tab.cpp"
9086 case 421: /* type_specifier_nonarray: UTEXTURE1D */
9087 #line 2895 "MachineIndependent/glslang.y"
9089 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9090 (yyval.interm.type).basicType = EbtSampler;
9091 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
9093 #line 9094 "MachineIndependent/glslang_tab.cpp"
9096 case 422: /* type_specifier_nonarray: UTEXTURE1DARRAY */
9097 #line 2900 "MachineIndependent/glslang.y"
9099 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9100 (yyval.interm.type).basicType = EbtSampler;
9101 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
9103 #line 9104 "MachineIndependent/glslang_tab.cpp"
9106 case 423: /* type_specifier_nonarray: TEXTURE2DRECT */
9107 #line 2905 "MachineIndependent/glslang.y"
9109 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9110 (yyval.interm.type).basicType = EbtSampler;
9111 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
9113 #line 9114 "MachineIndependent/glslang_tab.cpp"
9116 case 424: /* type_specifier_nonarray: F16TEXTURE2DRECT */
9117 #line 2910 "MachineIndependent/glslang.y"
9119 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9120 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9121 (yyval.interm.type).basicType = EbtSampler;
9122 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
9124 #line 9125 "MachineIndependent/glslang_tab.cpp"
9127 case 425: /* type_specifier_nonarray: ITEXTURE2DRECT */
9128 #line 2916 "MachineIndependent/glslang.y"
9130 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9131 (yyval.interm.type).basicType = EbtSampler;
9132 (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
9134 #line 9135 "MachineIndependent/glslang_tab.cpp"
9137 case 426: /* type_specifier_nonarray: UTEXTURE2DRECT */
9138 #line 2921 "MachineIndependent/glslang.y"
9140 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9141 (yyval.interm.type).basicType = EbtSampler;
9142 (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
9144 #line 9145 "MachineIndependent/glslang_tab.cpp"
9147 case 427: /* type_specifier_nonarray: TEXTUREBUFFER */
9148 #line 2926 "MachineIndependent/glslang.y"
9150 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9151 (yyval.interm.type).basicType = EbtSampler;
9152 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
9154 #line 9155 "MachineIndependent/glslang_tab.cpp"
9157 case 428: /* type_specifier_nonarray: F16TEXTUREBUFFER */
9158 #line 2931 "MachineIndependent/glslang.y"
9160 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9161 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9162 (yyval.interm.type).basicType = EbtSampler;
9163 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
9165 #line 9166 "MachineIndependent/glslang_tab.cpp"
9168 case 429: /* type_specifier_nonarray: ITEXTUREBUFFER */
9169 #line 2937 "MachineIndependent/glslang.y"
9171 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9172 (yyval.interm.type).basicType = EbtSampler;
9173 (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
9175 #line 9176 "MachineIndependent/glslang_tab.cpp"
9178 case 430: /* type_specifier_nonarray: UTEXTUREBUFFER */
9179 #line 2942 "MachineIndependent/glslang.y"
9181 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9182 (yyval.interm.type).basicType = EbtSampler;
9183 (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
9185 #line 9186 "MachineIndependent/glslang_tab.cpp"
9188 case 431: /* type_specifier_nonarray: TEXTURE2DMS */
9189 #line 2947 "MachineIndependent/glslang.y"
9191 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9192 (yyval.interm.type).basicType = EbtSampler;
9193 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
9195 #line 9196 "MachineIndependent/glslang_tab.cpp"
9198 case 432: /* type_specifier_nonarray: F16TEXTURE2DMS */
9199 #line 2952 "MachineIndependent/glslang.y"
9201 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9202 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9203 (yyval.interm.type).basicType = EbtSampler;
9204 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
9206 #line 9207 "MachineIndependent/glslang_tab.cpp"
9209 case 433: /* type_specifier_nonarray: ITEXTURE2DMS */
9210 #line 2958 "MachineIndependent/glslang.y"
9212 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9213 (yyval.interm.type).basicType = EbtSampler;
9214 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
9216 #line 9217 "MachineIndependent/glslang_tab.cpp"
9219 case 434: /* type_specifier_nonarray: UTEXTURE2DMS */
9220 #line 2963 "MachineIndependent/glslang.y"
9222 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9223 (yyval.interm.type).basicType = EbtSampler;
9224 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
9226 #line 9227 "MachineIndependent/glslang_tab.cpp"
9229 case 435: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
9230 #line 2968 "MachineIndependent/glslang.y"
9232 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9233 (yyval.interm.type).basicType = EbtSampler;
9234 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
9236 #line 9237 "MachineIndependent/glslang_tab.cpp"
9239 case 436: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
9240 #line 2973 "MachineIndependent/glslang.y"
9242 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9243 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9244 (yyval.interm.type).basicType = EbtSampler;
9245 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
9247 #line 9248 "MachineIndependent/glslang_tab.cpp"
9250 case 437: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
9251 #line 2979 "MachineIndependent/glslang.y"
9253 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9254 (yyval.interm.type).basicType = EbtSampler;
9255 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
9257 #line 9258 "MachineIndependent/glslang_tab.cpp"
9260 case 438: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
9261 #line 2984 "MachineIndependent/glslang.y"
9263 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9264 (yyval.interm.type).basicType = EbtSampler;
9265 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
9267 #line 9268 "MachineIndependent/glslang_tab.cpp"
9270 case 439: /* type_specifier_nonarray: IMAGE1D */
9271 #line 2989 "MachineIndependent/glslang.y"
9273 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9274 (yyval.interm.type).basicType = EbtSampler;
9275 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
9277 #line 9278 "MachineIndependent/glslang_tab.cpp"
9280 case 440: /* type_specifier_nonarray: F16IMAGE1D */
9281 #line 2994 "MachineIndependent/glslang.y"
9283 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9284 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9285 (yyval.interm.type).basicType = EbtSampler;
9286 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
9288 #line 9289 "MachineIndependent/glslang_tab.cpp"
9291 case 441: /* type_specifier_nonarray: IIMAGE1D */
9292 #line 3000 "MachineIndependent/glslang.y"
9294 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9295 (yyval.interm.type).basicType = EbtSampler;
9296 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
9298 #line 9299 "MachineIndependent/glslang_tab.cpp"
9301 case 442: /* type_specifier_nonarray: UIMAGE1D */
9302 #line 3005 "MachineIndependent/glslang.y"
9304 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9305 (yyval.interm.type).basicType = EbtSampler;
9306 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
9308 #line 9309 "MachineIndependent/glslang_tab.cpp"
9311 case 443: /* type_specifier_nonarray: IMAGE2D */
9312 #line 3010 "MachineIndependent/glslang.y"
9314 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9315 (yyval.interm.type).basicType = EbtSampler;
9316 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
9318 #line 9319 "MachineIndependent/glslang_tab.cpp"
9321 case 444: /* type_specifier_nonarray: F16IMAGE2D */
9322 #line 3015 "MachineIndependent/glslang.y"
9324 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9325 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9326 (yyval.interm.type).basicType = EbtSampler;
9327 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
9329 #line 9330 "MachineIndependent/glslang_tab.cpp"
9332 case 445: /* type_specifier_nonarray: IIMAGE2D */
9333 #line 3021 "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.setImage(EbtInt, Esd2D);
9339 #line 9340 "MachineIndependent/glslang_tab.cpp"
9342 case 446: /* type_specifier_nonarray: UIMAGE2D */
9343 #line 3026 "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.setImage(EbtUint, Esd2D);
9349 #line 9350 "MachineIndependent/glslang_tab.cpp"
9352 case 447: /* type_specifier_nonarray: IMAGE3D */
9353 #line 3031 "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.setImage(EbtFloat, Esd3D);
9359 #line 9360 "MachineIndependent/glslang_tab.cpp"
9362 case 448: /* type_specifier_nonarray: F16IMAGE3D */
9363 #line 3036 "MachineIndependent/glslang.y"
9365 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9366 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9367 (yyval.interm.type).basicType = EbtSampler;
9368 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
9370 #line 9371 "MachineIndependent/glslang_tab.cpp"
9373 case 449: /* type_specifier_nonarray: IIMAGE3D */
9374 #line 3042 "MachineIndependent/glslang.y"
9376 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9377 (yyval.interm.type).basicType = EbtSampler;
9378 (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
9380 #line 9381 "MachineIndependent/glslang_tab.cpp"
9383 case 450: /* type_specifier_nonarray: UIMAGE3D */
9384 #line 3047 "MachineIndependent/glslang.y"
9386 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9387 (yyval.interm.type).basicType = EbtSampler;
9388 (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
9390 #line 9391 "MachineIndependent/glslang_tab.cpp"
9393 case 451: /* type_specifier_nonarray: IMAGE2DRECT */
9394 #line 3052 "MachineIndependent/glslang.y"
9396 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9397 (yyval.interm.type).basicType = EbtSampler;
9398 (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
9400 #line 9401 "MachineIndependent/glslang_tab.cpp"
9403 case 452: /* type_specifier_nonarray: F16IMAGE2DRECT */
9404 #line 3057 "MachineIndependent/glslang.y"
9406 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9407 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9408 (yyval.interm.type).basicType = EbtSampler;
9409 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
9411 #line 9412 "MachineIndependent/glslang_tab.cpp"
9414 case 453: /* type_specifier_nonarray: IIMAGE2DRECT */
9415 #line 3063 "MachineIndependent/glslang.y"
9417 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9418 (yyval.interm.type).basicType = EbtSampler;
9419 (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
9421 #line 9422 "MachineIndependent/glslang_tab.cpp"
9424 case 454: /* type_specifier_nonarray: UIMAGE2DRECT */
9425 #line 3068 "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.setImage(EbtUint, EsdRect);
9431 #line 9432 "MachineIndependent/glslang_tab.cpp"
9434 case 455: /* type_specifier_nonarray: IMAGECUBE */
9435 #line 3073 "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.setImage(EbtFloat, EsdCube);
9441 #line 9442 "MachineIndependent/glslang_tab.cpp"
9444 case 456: /* type_specifier_nonarray: F16IMAGECUBE */
9445 #line 3078 "MachineIndependent/glslang.y"
9447 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9448 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9449 (yyval.interm.type).basicType = EbtSampler;
9450 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
9452 #line 9453 "MachineIndependent/glslang_tab.cpp"
9455 case 457: /* type_specifier_nonarray: IIMAGECUBE */
9456 #line 3084 "MachineIndependent/glslang.y"
9458 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9459 (yyval.interm.type).basicType = EbtSampler;
9460 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
9462 #line 9463 "MachineIndependent/glslang_tab.cpp"
9465 case 458: /* type_specifier_nonarray: UIMAGECUBE */
9466 #line 3089 "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.setImage(EbtUint, EsdCube);
9472 #line 9473 "MachineIndependent/glslang_tab.cpp"
9475 case 459: /* type_specifier_nonarray: IMAGEBUFFER */
9476 #line 3094 "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.setImage(EbtFloat, EsdBuffer);
9482 #line 9483 "MachineIndependent/glslang_tab.cpp"
9485 case 460: /* type_specifier_nonarray: F16IMAGEBUFFER */
9486 #line 3099 "MachineIndependent/glslang.y"
9488 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9489 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9490 (yyval.interm.type).basicType = EbtSampler;
9491 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
9493 #line 9494 "MachineIndependent/glslang_tab.cpp"
9496 case 461: /* type_specifier_nonarray: IIMAGEBUFFER */
9497 #line 3105 "MachineIndependent/glslang.y"
9499 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9500 (yyval.interm.type).basicType = EbtSampler;
9501 (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
9503 #line 9504 "MachineIndependent/glslang_tab.cpp"
9506 case 462: /* type_specifier_nonarray: UIMAGEBUFFER */
9507 #line 3110 "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.setImage(EbtUint, EsdBuffer);
9513 #line 9514 "MachineIndependent/glslang_tab.cpp"
9516 case 463: /* type_specifier_nonarray: IMAGE1DARRAY */
9517 #line 3115 "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.setImage(EbtFloat, Esd1D, true);
9523 #line 9524 "MachineIndependent/glslang_tab.cpp"
9526 case 464: /* type_specifier_nonarray: F16IMAGE1DARRAY */
9527 #line 3120 "MachineIndependent/glslang.y"
9529 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9530 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9531 (yyval.interm.type).basicType = EbtSampler;
9532 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
9534 #line 9535 "MachineIndependent/glslang_tab.cpp"
9537 case 465: /* type_specifier_nonarray: IIMAGE1DARRAY */
9538 #line 3126 "MachineIndependent/glslang.y"
9540 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9541 (yyval.interm.type).basicType = EbtSampler;
9542 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
9544 #line 9545 "MachineIndependent/glslang_tab.cpp"
9547 case 466: /* type_specifier_nonarray: UIMAGE1DARRAY */
9548 #line 3131 "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.setImage(EbtUint, Esd1D, true);
9554 #line 9555 "MachineIndependent/glslang_tab.cpp"
9557 case 467: /* type_specifier_nonarray: IMAGE2DARRAY */
9558 #line 3136 "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.setImage(EbtFloat, Esd2D, true);
9564 #line 9565 "MachineIndependent/glslang_tab.cpp"
9567 case 468: /* type_specifier_nonarray: F16IMAGE2DARRAY */
9568 #line 3141 "MachineIndependent/glslang.y"
9570 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9571 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9572 (yyval.interm.type).basicType = EbtSampler;
9573 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9575 #line 9576 "MachineIndependent/glslang_tab.cpp"
9578 case 469: /* type_specifier_nonarray: IIMAGE2DARRAY */
9579 #line 3147 "MachineIndependent/glslang.y"
9581 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9582 (yyval.interm.type).basicType = EbtSampler;
9583 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9585 #line 9586 "MachineIndependent/glslang_tab.cpp"
9588 case 470: /* type_specifier_nonarray: UIMAGE2DARRAY */
9589 #line 3152 "MachineIndependent/glslang.y"
9591 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9592 (yyval.interm.type).basicType = EbtSampler;
9593 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9595 #line 9596 "MachineIndependent/glslang_tab.cpp"
9598 case 471: /* type_specifier_nonarray: IMAGECUBEARRAY */
9599 #line 3157 "MachineIndependent/glslang.y"
9601 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9602 (yyval.interm.type).basicType = EbtSampler;
9603 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9605 #line 9606 "MachineIndependent/glslang_tab.cpp"
9608 case 472: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
9609 #line 3162 "MachineIndependent/glslang.y"
9611 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9612 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9613 (yyval.interm.type).basicType = EbtSampler;
9614 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9616 #line 9617 "MachineIndependent/glslang_tab.cpp"
9619 case 473: /* type_specifier_nonarray: IIMAGECUBEARRAY */
9620 #line 3168 "MachineIndependent/glslang.y"
9622 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9623 (yyval.interm.type).basicType = EbtSampler;
9624 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9626 #line 9627 "MachineIndependent/glslang_tab.cpp"
9629 case 474: /* type_specifier_nonarray: UIMAGECUBEARRAY */
9630 #line 3173 "MachineIndependent/glslang.y"
9632 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9633 (yyval.interm.type).basicType = EbtSampler;
9634 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9636 #line 9637 "MachineIndependent/glslang_tab.cpp"
9639 case 475: /* type_specifier_nonarray: IMAGE2DMS */
9640 #line 3178 "MachineIndependent/glslang.y"
9642 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9643 (yyval.interm.type).basicType = EbtSampler;
9644 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9646 #line 9647 "MachineIndependent/glslang_tab.cpp"
9649 case 476: /* type_specifier_nonarray: F16IMAGE2DMS */
9650 #line 3183 "MachineIndependent/glslang.y"
9652 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9653 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9654 (yyval.interm.type).basicType = EbtSampler;
9655 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9657 #line 9658 "MachineIndependent/glslang_tab.cpp"
9660 case 477: /* type_specifier_nonarray: IIMAGE2DMS */
9661 #line 3189 "MachineIndependent/glslang.y"
9663 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9664 (yyval.interm.type).basicType = EbtSampler;
9665 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9667 #line 9668 "MachineIndependent/glslang_tab.cpp"
9670 case 478: /* type_specifier_nonarray: UIMAGE2DMS */
9671 #line 3194 "MachineIndependent/glslang.y"
9673 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9674 (yyval.interm.type).basicType = EbtSampler;
9675 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9677 #line 9678 "MachineIndependent/glslang_tab.cpp"
9680 case 479: /* type_specifier_nonarray: IMAGE2DMSARRAY */
9681 #line 3199 "MachineIndependent/glslang.y"
9683 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9684 (yyval.interm.type).basicType = EbtSampler;
9685 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9687 #line 9688 "MachineIndependent/glslang_tab.cpp"
9690 case 480: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
9691 #line 3204 "MachineIndependent/glslang.y"
9693 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9694 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9695 (yyval.interm.type).basicType = EbtSampler;
9696 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9698 #line 9699 "MachineIndependent/glslang_tab.cpp"
9701 case 481: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
9702 #line 3210 "MachineIndependent/glslang.y"
9704 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9705 (yyval.interm.type).basicType = EbtSampler;
9706 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9708 #line 9709 "MachineIndependent/glslang_tab.cpp"
9711 case 482: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
9712 #line 3215 "MachineIndependent/glslang.y"
9714 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9715 (yyval.interm.type).basicType = EbtSampler;
9716 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9718 #line 9719 "MachineIndependent/glslang_tab.cpp"
9721 case 483: /* type_specifier_nonarray: I64IMAGE1D */
9722 #line 3220 "MachineIndependent/glslang.y"
9724 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9725 (yyval.interm.type).basicType = EbtSampler;
9726 (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
9728 #line 9729 "MachineIndependent/glslang_tab.cpp"
9731 case 484: /* type_specifier_nonarray: U64IMAGE1D */
9732 #line 3225 "MachineIndependent/glslang.y"
9734 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9735 (yyval.interm.type).basicType = EbtSampler;
9736 (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
9738 #line 9739 "MachineIndependent/glslang_tab.cpp"
9741 case 485: /* type_specifier_nonarray: I64IMAGE2D */
9742 #line 3230 "MachineIndependent/glslang.y"
9744 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9745 (yyval.interm.type).basicType = EbtSampler;
9746 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
9748 #line 9749 "MachineIndependent/glslang_tab.cpp"
9751 case 486: /* type_specifier_nonarray: U64IMAGE2D */
9752 #line 3235 "MachineIndependent/glslang.y"
9754 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9755 (yyval.interm.type).basicType = EbtSampler;
9756 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
9758 #line 9759 "MachineIndependent/glslang_tab.cpp"
9761 case 487: /* type_specifier_nonarray: I64IMAGE3D */
9762 #line 3240 "MachineIndependent/glslang.y"
9764 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9765 (yyval.interm.type).basicType = EbtSampler;
9766 (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
9768 #line 9769 "MachineIndependent/glslang_tab.cpp"
9771 case 488: /* type_specifier_nonarray: U64IMAGE3D */
9772 #line 3245 "MachineIndependent/glslang.y"
9774 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9775 (yyval.interm.type).basicType = EbtSampler;
9776 (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
9778 #line 9779 "MachineIndependent/glslang_tab.cpp"
9781 case 489: /* type_specifier_nonarray: I64IMAGE2DRECT */
9782 #line 3250 "MachineIndependent/glslang.y"
9784 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9785 (yyval.interm.type).basicType = EbtSampler;
9786 (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
9788 #line 9789 "MachineIndependent/glslang_tab.cpp"
9791 case 490: /* type_specifier_nonarray: U64IMAGE2DRECT */
9792 #line 3255 "MachineIndependent/glslang.y"
9794 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9795 (yyval.interm.type).basicType = EbtSampler;
9796 (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
9798 #line 9799 "MachineIndependent/glslang_tab.cpp"
9801 case 491: /* type_specifier_nonarray: I64IMAGECUBE */
9802 #line 3260 "MachineIndependent/glslang.y"
9804 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9805 (yyval.interm.type).basicType = EbtSampler;
9806 (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
9808 #line 9809 "MachineIndependent/glslang_tab.cpp"
9811 case 492: /* type_specifier_nonarray: U64IMAGECUBE */
9812 #line 3265 "MachineIndependent/glslang.y"
9814 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9815 (yyval.interm.type).basicType = EbtSampler;
9816 (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
9818 #line 9819 "MachineIndependent/glslang_tab.cpp"
9821 case 493: /* type_specifier_nonarray: I64IMAGEBUFFER */
9822 #line 3270 "MachineIndependent/glslang.y"
9824 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9825 (yyval.interm.type).basicType = EbtSampler;
9826 (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
9828 #line 9829 "MachineIndependent/glslang_tab.cpp"
9831 case 494: /* type_specifier_nonarray: U64IMAGEBUFFER */
9832 #line 3275 "MachineIndependent/glslang.y"
9834 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9835 (yyval.interm.type).basicType = EbtSampler;
9836 (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
9838 #line 9839 "MachineIndependent/glslang_tab.cpp"
9841 case 495: /* type_specifier_nonarray: I64IMAGE1DARRAY */
9842 #line 3280 "MachineIndependent/glslang.y"
9844 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9845 (yyval.interm.type).basicType = EbtSampler;
9846 (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
9848 #line 9849 "MachineIndependent/glslang_tab.cpp"
9851 case 496: /* type_specifier_nonarray: U64IMAGE1DARRAY */
9852 #line 3285 "MachineIndependent/glslang.y"
9854 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9855 (yyval.interm.type).basicType = EbtSampler;
9856 (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
9858 #line 9859 "MachineIndependent/glslang_tab.cpp"
9861 case 497: /* type_specifier_nonarray: I64IMAGE2DARRAY */
9862 #line 3290 "MachineIndependent/glslang.y"
9864 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9865 (yyval.interm.type).basicType = EbtSampler;
9866 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
9868 #line 9869 "MachineIndependent/glslang_tab.cpp"
9871 case 498: /* type_specifier_nonarray: U64IMAGE2DARRAY */
9872 #line 3295 "MachineIndependent/glslang.y"
9874 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9875 (yyval.interm.type).basicType = EbtSampler;
9876 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
9878 #line 9879 "MachineIndependent/glslang_tab.cpp"
9881 case 499: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
9882 #line 3300 "MachineIndependent/glslang.y"
9884 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9885 (yyval.interm.type).basicType = EbtSampler;
9886 (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
9888 #line 9889 "MachineIndependent/glslang_tab.cpp"
9891 case 500: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
9892 #line 3305 "MachineIndependent/glslang.y"
9894 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9895 (yyval.interm.type).basicType = EbtSampler;
9896 (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
9898 #line 9899 "MachineIndependent/glslang_tab.cpp"
9901 case 501: /* type_specifier_nonarray: I64IMAGE2DMS */
9902 #line 3310 "MachineIndependent/glslang.y"
9904 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9905 (yyval.interm.type).basicType = EbtSampler;
9906 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
9908 #line 9909 "MachineIndependent/glslang_tab.cpp"
9911 case 502: /* type_specifier_nonarray: U64IMAGE2DMS */
9912 #line 3315 "MachineIndependent/glslang.y"
9914 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9915 (yyval.interm.type).basicType = EbtSampler;
9916 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
9918 #line 9919 "MachineIndependent/glslang_tab.cpp"
9921 case 503: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
9922 #line 3320 "MachineIndependent/glslang.y"
9924 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9925 (yyval.interm.type).basicType = EbtSampler;
9926 (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
9928 #line 9929 "MachineIndependent/glslang_tab.cpp"
9931 case 504: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
9932 #line 3325 "MachineIndependent/glslang.y"
9934 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9935 (yyval.interm.type).basicType = EbtSampler;
9936 (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
9938 #line 9939 "MachineIndependent/glslang_tab.cpp"
9941 case 505: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
9942 #line 3330 "MachineIndependent/glslang.y"
9943 { // GL_OES_EGL_image_external
9944 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9945 (yyval.interm.type).basicType = EbtSampler;
9946 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9947 (yyval.interm.type).sampler.external = true;
9949 #line 9950 "MachineIndependent/glslang_tab.cpp"
9952 case 506: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
9953 #line 3336 "MachineIndependent/glslang.y"
9954 { // GL_EXT_YUV_target
9955 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9956 (yyval.interm.type).basicType = EbtSampler;
9957 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9958 (yyval.interm.type).sampler.yuv = true;
9960 #line 9961 "MachineIndependent/glslang_tab.cpp"
9963 case 507: /* type_specifier_nonarray: SUBPASSINPUT */
9964 #line 3342 "MachineIndependent/glslang.y"
9966 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9967 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9968 (yyval.interm.type).basicType = EbtSampler;
9969 (yyval.interm.type).sampler.setSubpass(EbtFloat);
9971 #line 9972 "MachineIndependent/glslang_tab.cpp"
9974 case 508: /* type_specifier_nonarray: SUBPASSINPUTMS */
9975 #line 3348 "MachineIndependent/glslang.y"
9977 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9978 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9979 (yyval.interm.type).basicType = EbtSampler;
9980 (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9982 #line 9983 "MachineIndependent/glslang_tab.cpp"
9985 case 509: /* type_specifier_nonarray: F16SUBPASSINPUT */
9986 #line 3354 "MachineIndependent/glslang.y"
9988 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9989 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9990 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9991 (yyval.interm.type).basicType = EbtSampler;
9992 (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9994 #line 9995 "MachineIndependent/glslang_tab.cpp"
9997 case 510: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
9998 #line 3361 "MachineIndependent/glslang.y"
10000 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10001 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10002 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10003 (yyval.interm.type).basicType = EbtSampler;
10004 (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
10006 #line 10007 "MachineIndependent/glslang_tab.cpp"
10009 case 511: /* type_specifier_nonarray: ISUBPASSINPUT */
10010 #line 3368 "MachineIndependent/glslang.y"
10012 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10013 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10014 (yyval.interm.type).basicType = EbtSampler;
10015 (yyval.interm.type).sampler.setSubpass(EbtInt);
10017 #line 10018 "MachineIndependent/glslang_tab.cpp"
10020 case 512: /* type_specifier_nonarray: ISUBPASSINPUTMS */
10021 #line 3374 "MachineIndependent/glslang.y"
10023 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10024 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10025 (yyval.interm.type).basicType = EbtSampler;
10026 (yyval.interm.type).sampler.setSubpass(EbtInt, true);
10028 #line 10029 "MachineIndependent/glslang_tab.cpp"
10031 case 513: /* type_specifier_nonarray: USUBPASSINPUT */
10032 #line 3380 "MachineIndependent/glslang.y"
10034 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10035 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10036 (yyval.interm.type).basicType = EbtSampler;
10037 (yyval.interm.type).sampler.setSubpass(EbtUint);
10039 #line 10040 "MachineIndependent/glslang_tab.cpp"
10042 case 514: /* type_specifier_nonarray: USUBPASSINPUTMS */
10043 #line 3386 "MachineIndependent/glslang.y"
10045 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10046 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10047 (yyval.interm.type).basicType = EbtSampler;
10048 (yyval.interm.type).sampler.setSubpass(EbtUint, true);
10050 #line 10051 "MachineIndependent/glslang_tab.cpp"
10053 case 515: /* type_specifier_nonarray: FCOOPMATNV */
10054 #line 3392 "MachineIndependent/glslang.y"
10056 parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10057 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10058 (yyval.interm.type).basicType = EbtFloat;
10059 (yyval.interm.type).coopmat = true;
10061 #line 10062 "MachineIndependent/glslang_tab.cpp"
10064 case 516: /* type_specifier_nonarray: ICOOPMATNV */
10065 #line 3398 "MachineIndependent/glslang.y"
10067 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10068 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10069 (yyval.interm.type).basicType = EbtInt;
10070 (yyval.interm.type).coopmat = true;
10072 #line 10073 "MachineIndependent/glslang_tab.cpp"
10075 case 517: /* type_specifier_nonarray: UCOOPMATNV */
10076 #line 3404 "MachineIndependent/glslang.y"
10078 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10079 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10080 (yyval.interm.type).basicType = EbtUint;
10081 (yyval.interm.type).coopmat = true;
10083 #line 10084 "MachineIndependent/glslang_tab.cpp"
10086 case 518: /* type_specifier_nonarray: struct_specifier */
10087 #line 3411 "MachineIndependent/glslang.y"
10089 (yyval.interm.type) = (yyvsp[0].interm.type);
10090 (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
10091 parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
10093 #line 10094 "MachineIndependent/glslang_tab.cpp"
10096 case 519: /* type_specifier_nonarray: TYPE_NAME */
10097 #line 3416 "MachineIndependent/glslang.y"
10100 // This is for user defined type names. The lexical phase looked up the
10103 if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
10104 const TType& structure = variable->getType();
10105 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10106 (yyval.interm.type).basicType = EbtStruct;
10107 (yyval.interm.type).userDef = &structure;
10109 parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
10111 #line 10112 "MachineIndependent/glslang_tab.cpp"
10114 case 520: /* precision_qualifier: HIGH_PRECISION */
10115 #line 3432 "MachineIndependent/glslang.y"
10117 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
10118 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10119 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
10121 #line 10122 "MachineIndependent/glslang_tab.cpp"
10124 case 521: /* precision_qualifier: MEDIUM_PRECISION */
10125 #line 3437 "MachineIndependent/glslang.y"
10127 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
10128 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10129 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
10131 #line 10132 "MachineIndependent/glslang_tab.cpp"
10134 case 522: /* precision_qualifier: LOW_PRECISION */
10135 #line 3442 "MachineIndependent/glslang.y"
10137 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
10138 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10139 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
10141 #line 10142 "MachineIndependent/glslang_tab.cpp"
10144 case 523: /* $@3: %empty */
10145 #line 3450 "MachineIndependent/glslang.y"
10146 { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
10147 #line 10148 "MachineIndependent/glslang_tab.cpp"
10150 case 524: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
10151 #line 3450 "MachineIndependent/glslang.y"
10153 TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
10154 parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
10155 TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
10156 if (! parseContext.symbolTable.insert(*userTypeDef))
10157 parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
10158 (yyval.interm.type).init((yyvsp[-5].lex).loc);
10159 (yyval.interm.type).basicType = EbtStruct;
10160 (yyval.interm.type).userDef = structure;
10161 --parseContext.structNestingLevel;
10163 #line 10164 "MachineIndependent/glslang_tab.cpp"
10166 case 525: /* $@4: %empty */
10167 #line 3461 "MachineIndependent/glslang.y"
10168 { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
10169 #line 10170 "MachineIndependent/glslang_tab.cpp"
10172 case 526: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
10173 #line 3461 "MachineIndependent/glslang.y"
10175 TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
10176 (yyval.interm.type).init((yyvsp[-4].lex).loc);
10177 (yyval.interm.type).basicType = EbtStruct;
10178 (yyval.interm.type).userDef = structure;
10179 --parseContext.structNestingLevel;
10181 #line 10182 "MachineIndependent/glslang_tab.cpp"
10184 case 527: /* struct_declaration_list: struct_declaration */
10185 #line 3471 "MachineIndependent/glslang.y"
10187 (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
10189 #line 10190 "MachineIndependent/glslang_tab.cpp"
10192 case 528: /* struct_declaration_list: struct_declaration_list struct_declaration */
10193 #line 3474 "MachineIndependent/glslang.y"
10195 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10196 for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
10197 for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
10198 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
10199 parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
10201 (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
10204 #line 10205 "MachineIndependent/glslang_tab.cpp"
10207 case 529: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
10208 #line 3487 "MachineIndependent/glslang.y"
10210 if ((yyvsp[-2].interm.type).arraySizes) {
10211 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10212 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10213 if (parseContext.isEsProfile())
10214 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10217 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10219 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10220 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10222 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10223 TType type((yyvsp[-2].interm.type));
10224 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10225 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10226 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10227 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10228 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10231 #line 10232 "MachineIndependent/glslang_tab.cpp"
10234 case 530: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
10235 #line 3509 "MachineIndependent/glslang.y"
10237 if ((yyvsp[-2].interm.type).arraySizes) {
10238 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10239 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10240 if (parseContext.isEsProfile())
10241 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10244 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10246 parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
10247 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10248 parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
10249 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10251 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10252 TType type((yyvsp[-2].interm.type));
10253 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10254 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10255 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10256 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10257 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10260 #line 10261 "MachineIndependent/glslang_tab.cpp"
10263 case 531: /* struct_declarator_list: struct_declarator */
10264 #line 3536 "MachineIndependent/glslang.y"
10266 (yyval.interm.typeList) = new TTypeList;
10267 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10269 #line 10270 "MachineIndependent/glslang_tab.cpp"
10272 case 532: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
10273 #line 3540 "MachineIndependent/glslang.y"
10275 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10277 #line 10278 "MachineIndependent/glslang_tab.cpp"
10280 case 533: /* struct_declarator: IDENTIFIER */
10281 #line 3546 "MachineIndependent/glslang.y"
10283 (yyval.interm.typeLine).type = new TType(EbtVoid);
10284 (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
10285 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
10287 #line 10288 "MachineIndependent/glslang_tab.cpp"
10290 case 534: /* struct_declarator: IDENTIFIER array_specifier */
10291 #line 3551 "MachineIndependent/glslang.y"
10293 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
10295 (yyval.interm.typeLine).type = new TType(EbtVoid);
10296 (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
10297 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
10298 (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
10300 #line 10301 "MachineIndependent/glslang_tab.cpp"
10303 case 535: /* initializer: assignment_expression */
10304 #line 3562 "MachineIndependent/glslang.y"
10306 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10308 #line 10309 "MachineIndependent/glslang_tab.cpp"
10311 case 536: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
10312 #line 3566 "MachineIndependent/glslang.y"
10314 const char* initFeature = "{ } style initializers";
10315 parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
10316 parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10317 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
10319 #line 10320 "MachineIndependent/glslang_tab.cpp"
10322 case 537: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
10323 #line 3572 "MachineIndependent/glslang.y"
10325 const char* initFeature = "{ } style initializers";
10326 parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
10327 parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10328 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
10330 #line 10331 "MachineIndependent/glslang_tab.cpp"
10333 case 538: /* initializer: LEFT_BRACE RIGHT_BRACE */
10334 #line 3578 "MachineIndependent/glslang.y"
10336 const char* initFeature = "empty { } initializer";
10337 parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10338 parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10339 (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
10341 #line 10342 "MachineIndependent/glslang_tab.cpp"
10344 case 539: /* initializer_list: initializer */
10345 #line 3589 "MachineIndependent/glslang.y"
10347 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
10349 #line 10350 "MachineIndependent/glslang_tab.cpp"
10352 case 540: /* initializer_list: initializer_list COMMA initializer */
10353 #line 3592 "MachineIndependent/glslang.y"
10355 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
10357 #line 10358 "MachineIndependent/glslang_tab.cpp"
10360 case 541: /* declaration_statement: declaration */
10361 #line 3599 "MachineIndependent/glslang.y"
10362 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10363 #line 10364 "MachineIndependent/glslang_tab.cpp"
10366 case 542: /* statement: compound_statement */
10367 #line 3603 "MachineIndependent/glslang.y"
10368 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10369 #line 10370 "MachineIndependent/glslang_tab.cpp"
10372 case 543: /* statement: simple_statement */
10373 #line 3604 "MachineIndependent/glslang.y"
10374 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10375 #line 10376 "MachineIndependent/glslang_tab.cpp"
10378 case 544: /* simple_statement: declaration_statement */
10379 #line 3610 "MachineIndependent/glslang.y"
10380 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10381 #line 10382 "MachineIndependent/glslang_tab.cpp"
10384 case 545: /* simple_statement: expression_statement */
10385 #line 3611 "MachineIndependent/glslang.y"
10386 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10387 #line 10388 "MachineIndependent/glslang_tab.cpp"
10390 case 546: /* simple_statement: selection_statement */
10391 #line 3612 "MachineIndependent/glslang.y"
10392 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10393 #line 10394 "MachineIndependent/glslang_tab.cpp"
10396 case 547: /* simple_statement: switch_statement */
10397 #line 3613 "MachineIndependent/glslang.y"
10398 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10399 #line 10400 "MachineIndependent/glslang_tab.cpp"
10402 case 548: /* simple_statement: case_label */
10403 #line 3614 "MachineIndependent/glslang.y"
10404 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10405 #line 10406 "MachineIndependent/glslang_tab.cpp"
10408 case 549: /* simple_statement: iteration_statement */
10409 #line 3615 "MachineIndependent/glslang.y"
10410 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10411 #line 10412 "MachineIndependent/glslang_tab.cpp"
10414 case 550: /* simple_statement: jump_statement */
10415 #line 3616 "MachineIndependent/glslang.y"
10416 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10417 #line 10418 "MachineIndependent/glslang_tab.cpp"
10420 case 551: /* simple_statement: demote_statement */
10421 #line 3618 "MachineIndependent/glslang.y"
10422 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10423 #line 10424 "MachineIndependent/glslang_tab.cpp"
10426 case 552: /* demote_statement: DEMOTE SEMICOLON */
10427 #line 3624 "MachineIndependent/glslang.y"
10429 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
10430 parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
10431 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
10433 #line 10434 "MachineIndependent/glslang_tab.cpp"
10436 case 553: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
10437 #line 3633 "MachineIndependent/glslang.y"
10438 { (yyval.interm.intermNode) = 0; }
10439 #line 10440 "MachineIndependent/glslang_tab.cpp"
10442 case 554: /* $@5: %empty */
10443 #line 3634 "MachineIndependent/glslang.y"
10445 parseContext.symbolTable.push();
10446 ++parseContext.statementNestingLevel;
10448 #line 10449 "MachineIndependent/glslang_tab.cpp"
10451 case 555: /* $@6: %empty */
10452 #line 3638 "MachineIndependent/glslang.y"
10454 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10455 --parseContext.statementNestingLevel;
10457 #line 10458 "MachineIndependent/glslang_tab.cpp"
10460 case 556: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
10461 #line 3642 "MachineIndependent/glslang.y"
10463 if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
10464 (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10465 (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
10467 #line 10468 "MachineIndependent/glslang_tab.cpp"
10470 case 557: /* statement_no_new_scope: compound_statement_no_new_scope */
10471 #line 3650 "MachineIndependent/glslang.y"
10472 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10473 #line 10474 "MachineIndependent/glslang_tab.cpp"
10476 case 558: /* statement_no_new_scope: simple_statement */
10477 #line 3651 "MachineIndependent/glslang.y"
10478 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10479 #line 10480 "MachineIndependent/glslang_tab.cpp"
10482 case 559: /* $@7: %empty */
10483 #line 3655 "MachineIndependent/glslang.y"
10485 ++parseContext.controlFlowNestingLevel;
10487 #line 10488 "MachineIndependent/glslang_tab.cpp"
10490 case 560: /* statement_scoped: $@7 compound_statement */
10491 #line 3658 "MachineIndependent/glslang.y"
10493 --parseContext.controlFlowNestingLevel;
10494 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10496 #line 10497 "MachineIndependent/glslang_tab.cpp"
10499 case 561: /* $@8: %empty */
10500 #line 3662 "MachineIndependent/glslang.y"
10502 parseContext.symbolTable.push();
10503 ++parseContext.statementNestingLevel;
10504 ++parseContext.controlFlowNestingLevel;
10506 #line 10507 "MachineIndependent/glslang_tab.cpp"
10509 case 562: /* statement_scoped: $@8 simple_statement */
10510 #line 3667 "MachineIndependent/glslang.y"
10512 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10513 --parseContext.statementNestingLevel;
10514 --parseContext.controlFlowNestingLevel;
10515 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10517 #line 10518 "MachineIndependent/glslang_tab.cpp"
10520 case 563: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
10521 #line 3676 "MachineIndependent/glslang.y"
10523 (yyval.interm.intermNode) = 0;
10525 #line 10526 "MachineIndependent/glslang_tab.cpp"
10528 case 564: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
10529 #line 3679 "MachineIndependent/glslang.y"
10531 if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
10532 (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10533 (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
10535 #line 10536 "MachineIndependent/glslang_tab.cpp"
10538 case 565: /* statement_list: statement */
10539 #line 3687 "MachineIndependent/glslang.y"
10541 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
10542 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
10543 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
10544 parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
10545 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
10548 #line 10549 "MachineIndependent/glslang_tab.cpp"
10551 case 566: /* statement_list: statement_list statement */
10552 #line 3695 "MachineIndependent/glslang.y"
10554 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
10555 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
10556 parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
10557 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
10559 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10561 #line 10562 "MachineIndependent/glslang_tab.cpp"
10564 case 567: /* expression_statement: SEMICOLON */
10565 #line 3706 "MachineIndependent/glslang.y"
10566 { (yyval.interm.intermNode) = 0; }
10567 #line 10568 "MachineIndependent/glslang_tab.cpp"
10570 case 568: /* expression_statement: expression SEMICOLON */
10571 #line 3707 "MachineIndependent/glslang.y"
10572 { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
10573 #line 10574 "MachineIndependent/glslang_tab.cpp"
10576 case 569: /* selection_statement: selection_statement_nonattributed */
10577 #line 3711 "MachineIndependent/glslang.y"
10579 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10581 #line 10582 "MachineIndependent/glslang_tab.cpp"
10584 case 570: /* selection_statement: attribute selection_statement_nonattributed */
10585 #line 3715 "MachineIndependent/glslang.y"
10587 parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10588 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10590 #line 10591 "MachineIndependent/glslang_tab.cpp"
10593 case 571: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
10594 #line 3722 "MachineIndependent/glslang.y"
10596 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10597 (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
10599 #line 10600 "MachineIndependent/glslang_tab.cpp"
10602 case 572: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
10603 #line 3729 "MachineIndependent/glslang.y"
10605 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
10606 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
10608 #line 10609 "MachineIndependent/glslang_tab.cpp"
10611 case 573: /* selection_rest_statement: statement_scoped */
10612 #line 3733 "MachineIndependent/glslang.y"
10614 (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
10615 (yyval.interm.nodePair).node2 = 0;
10617 #line 10618 "MachineIndependent/glslang_tab.cpp"
10620 case 574: /* condition: expression */
10621 #line 3741 "MachineIndependent/glslang.y"
10623 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10624 parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
10626 #line 10627 "MachineIndependent/glslang_tab.cpp"
10629 case 575: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
10630 #line 3745 "MachineIndependent/glslang.y"
10632 parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
10634 TType type((yyvsp[-3].interm.type));
10635 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
10637 (yyval.interm.intermTypedNode) = initNode->getAsTyped();
10639 (yyval.interm.intermTypedNode) = 0;
10641 #line 10642 "MachineIndependent/glslang_tab.cpp"
10644 case 576: /* switch_statement: switch_statement_nonattributed */
10645 #line 3758 "MachineIndependent/glslang.y"
10647 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10649 #line 10650 "MachineIndependent/glslang_tab.cpp"
10652 case 577: /* switch_statement: attribute switch_statement_nonattributed */
10653 #line 3762 "MachineIndependent/glslang.y"
10655 parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10656 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10658 #line 10659 "MachineIndependent/glslang_tab.cpp"
10661 case 578: /* $@9: %empty */
10662 #line 3769 "MachineIndependent/glslang.y"
10664 // start new switch sequence on the switch stack
10665 ++parseContext.controlFlowNestingLevel;
10666 ++parseContext.statementNestingLevel;
10667 parseContext.switchSequenceStack.push_back(new TIntermSequence);
10668 parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
10669 parseContext.symbolTable.push();
10671 #line 10672 "MachineIndependent/glslang_tab.cpp"
10674 case 579: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
10675 #line 3777 "MachineIndependent/glslang.y"
10677 (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
10678 delete parseContext.switchSequenceStack.back();
10679 parseContext.switchSequenceStack.pop_back();
10680 parseContext.switchLevel.pop_back();
10681 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10682 --parseContext.statementNestingLevel;
10683 --parseContext.controlFlowNestingLevel;
10685 #line 10686 "MachineIndependent/glslang_tab.cpp"
10688 case 580: /* switch_statement_list: %empty */
10689 #line 3789 "MachineIndependent/glslang.y"
10691 (yyval.interm.intermNode) = 0;
10693 #line 10694 "MachineIndependent/glslang_tab.cpp"
10696 case 581: /* switch_statement_list: statement_list */
10697 #line 3792 "MachineIndependent/glslang.y"
10699 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10701 #line 10702 "MachineIndependent/glslang_tab.cpp"
10704 case 582: /* case_label: CASE expression COLON */
10705 #line 3798 "MachineIndependent/glslang.y"
10707 (yyval.interm.intermNode) = 0;
10708 if (parseContext.switchLevel.size() == 0)
10709 parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
10710 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10711 parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
10713 parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
10714 parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
10715 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
10718 #line 10719 "MachineIndependent/glslang_tab.cpp"
10721 case 583: /* case_label: DEFAULT COLON */
10722 #line 3810 "MachineIndependent/glslang.y"
10724 (yyval.interm.intermNode) = 0;
10725 if (parseContext.switchLevel.size() == 0)
10726 parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
10727 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10728 parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
10730 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
10732 #line 10733 "MachineIndependent/glslang_tab.cpp"
10735 case 584: /* iteration_statement: iteration_statement_nonattributed */
10736 #line 3822 "MachineIndependent/glslang.y"
10738 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10740 #line 10741 "MachineIndependent/glslang_tab.cpp"
10743 case 585: /* iteration_statement: attribute iteration_statement_nonattributed */
10744 #line 3826 "MachineIndependent/glslang.y"
10746 parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10747 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10749 #line 10750 "MachineIndependent/glslang_tab.cpp"
10752 case 586: /* $@10: %empty */
10753 #line 3833 "MachineIndependent/glslang.y"
10755 if (! parseContext.limits.whileLoops)
10756 parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
10757 parseContext.symbolTable.push();
10758 ++parseContext.loopNestingLevel;
10759 ++parseContext.statementNestingLevel;
10760 ++parseContext.controlFlowNestingLevel;
10762 #line 10763 "MachineIndependent/glslang_tab.cpp"
10765 case 587: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
10766 #line 3841 "MachineIndependent/glslang.y"
10768 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10769 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
10770 --parseContext.loopNestingLevel;
10771 --parseContext.statementNestingLevel;
10772 --parseContext.controlFlowNestingLevel;
10774 #line 10775 "MachineIndependent/glslang_tab.cpp"
10777 case 588: /* $@11: %empty */
10778 #line 3848 "MachineIndependent/glslang.y"
10780 ++parseContext.loopNestingLevel;
10781 ++parseContext.statementNestingLevel;
10782 ++parseContext.controlFlowNestingLevel;
10784 #line 10785 "MachineIndependent/glslang_tab.cpp"
10787 case 589: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
10788 #line 3853 "MachineIndependent/glslang.y"
10790 if (! parseContext.limits.whileLoops)
10791 parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
10793 parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10795 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
10796 --parseContext.loopNestingLevel;
10797 --parseContext.statementNestingLevel;
10798 --parseContext.controlFlowNestingLevel;
10800 #line 10801 "MachineIndependent/glslang_tab.cpp"
10803 case 590: /* $@12: %empty */
10804 #line 3864 "MachineIndependent/glslang.y"
10806 parseContext.symbolTable.push();
10807 ++parseContext.loopNestingLevel;
10808 ++parseContext.statementNestingLevel;
10809 ++parseContext.controlFlowNestingLevel;
10811 #line 10812 "MachineIndependent/glslang_tab.cpp"
10814 case 591: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
10815 #line 3870 "MachineIndependent/glslang.y"
10817 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10818 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10819 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);
10820 if (! parseContext.limits.nonInductiveForLoops)
10821 parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10822 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10823 (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10824 --parseContext.loopNestingLevel;
10825 --parseContext.statementNestingLevel;
10826 --parseContext.controlFlowNestingLevel;
10828 #line 10829 "MachineIndependent/glslang_tab.cpp"
10831 case 592: /* for_init_statement: expression_statement */
10832 #line 3885 "MachineIndependent/glslang.y"
10834 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10836 #line 10837 "MachineIndependent/glslang_tab.cpp"
10839 case 593: /* for_init_statement: declaration_statement */
10840 #line 3888 "MachineIndependent/glslang.y"
10842 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10844 #line 10845 "MachineIndependent/glslang_tab.cpp"
10847 case 594: /* conditionopt: condition */
10848 #line 3894 "MachineIndependent/glslang.y"
10850 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10852 #line 10853 "MachineIndependent/glslang_tab.cpp"
10855 case 595: /* conditionopt: %empty */
10856 #line 3897 "MachineIndependent/glslang.y"
10858 (yyval.interm.intermTypedNode) = 0;
10860 #line 10861 "MachineIndependent/glslang_tab.cpp"
10863 case 596: /* for_rest_statement: conditionopt SEMICOLON */
10864 #line 3903 "MachineIndependent/glslang.y"
10866 (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10867 (yyval.interm.nodePair).node2 = 0;
10869 #line 10870 "MachineIndependent/glslang_tab.cpp"
10872 case 597: /* for_rest_statement: conditionopt SEMICOLON expression */
10873 #line 3907 "MachineIndependent/glslang.y"
10875 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10876 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10878 #line 10879 "MachineIndependent/glslang_tab.cpp"
10881 case 598: /* jump_statement: CONTINUE SEMICOLON */
10882 #line 3914 "MachineIndependent/glslang.y"
10884 if (parseContext.loopNestingLevel <= 0)
10885 parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10886 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10888 #line 10889 "MachineIndependent/glslang_tab.cpp"
10891 case 599: /* jump_statement: BREAK SEMICOLON */
10892 #line 3919 "MachineIndependent/glslang.y"
10894 if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10895 parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10896 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10898 #line 10899 "MachineIndependent/glslang_tab.cpp"
10901 case 600: /* jump_statement: RETURN SEMICOLON */
10902 #line 3924 "MachineIndependent/glslang.y"
10904 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10905 if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10906 parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10907 if (parseContext.inMain)
10908 parseContext.postEntryPointReturn = true;
10910 #line 10911 "MachineIndependent/glslang_tab.cpp"
10913 case 601: /* jump_statement: RETURN expression SEMICOLON */
10914 #line 3931 "MachineIndependent/glslang.y"
10916 (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10918 #line 10919 "MachineIndependent/glslang_tab.cpp"
10921 case 602: /* jump_statement: DISCARD SEMICOLON */
10922 #line 3934 "MachineIndependent/glslang.y"
10924 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10925 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10927 #line 10928 "MachineIndependent/glslang_tab.cpp"
10930 case 603: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
10931 #line 3938 "MachineIndependent/glslang.y"
10933 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
10934 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
10936 #line 10937 "MachineIndependent/glslang_tab.cpp"
10939 case 604: /* jump_statement: TERMINATE_RAY SEMICOLON */
10940 #line 3943 "MachineIndependent/glslang.y"
10942 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
10943 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
10945 #line 10946 "MachineIndependent/glslang_tab.cpp"
10948 case 605: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
10949 #line 3947 "MachineIndependent/glslang.y"
10951 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
10952 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
10954 #line 10955 "MachineIndependent/glslang_tab.cpp"
10957 case 606: /* translation_unit: external_declaration */
10958 #line 3957 "MachineIndependent/glslang.y"
10960 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10961 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10963 #line 10964 "MachineIndependent/glslang_tab.cpp"
10966 case 607: /* translation_unit: translation_unit external_declaration */
10967 #line 3961 "MachineIndependent/glslang.y"
10969 if ((yyvsp[0].interm.intermNode) != nullptr) {
10970 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10971 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10974 #line 10975 "MachineIndependent/glslang_tab.cpp"
10977 case 608: /* external_declaration: function_definition */
10978 #line 3970 "MachineIndependent/glslang.y"
10980 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10982 #line 10983 "MachineIndependent/glslang_tab.cpp"
10985 case 609: /* external_declaration: declaration */
10986 #line 3973 "MachineIndependent/glslang.y"
10988 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10990 #line 10991 "MachineIndependent/glslang_tab.cpp"
10993 case 610: /* external_declaration: SEMICOLON */
10994 #line 3977 "MachineIndependent/glslang.y"
10996 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10997 parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10998 (yyval.interm.intermNode) = nullptr;
11000 #line 11001 "MachineIndependent/glslang_tab.cpp"
11003 case 611: /* $@13: %empty */
11004 #line 3986 "MachineIndependent/glslang.y"
11006 (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
11007 (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
11009 // For ES 100 only, according to ES shading language 100 spec: A function
11010 // body has a scope nested inside the function's definition.
11011 if (parseContext.profile == EEsProfile && parseContext.version == 100)
11013 parseContext.symbolTable.push();
11014 ++parseContext.statementNestingLevel;
11017 #line 11018 "MachineIndependent/glslang_tab.cpp"
11020 case 612: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
11021 #line 3998 "MachineIndependent/glslang.y"
11023 // May be best done as post process phase on intermediate code
11024 if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
11025 parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
11026 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11027 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
11028 parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
11029 (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
11031 // store the pragma information for debug and optimize and other vendor specific
11032 // information. This information can be queried from the parse tree
11033 (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
11034 (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
11035 (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
11037 // Set currentFunctionType to empty pointer when goes outside of the function
11038 parseContext.currentFunctionType = nullptr;
11040 // For ES 100 only, according to ES shading language 100 spec: A function
11041 // body has a scope nested inside the function's definition.
11042 if (parseContext.profile == EEsProfile && parseContext.version == 100)
11044 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11045 --parseContext.statementNestingLevel;
11048 #line 11049 "MachineIndependent/glslang_tab.cpp"
11051 case 613: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
11052 #line 4028 "MachineIndependent/glslang.y"
11054 (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
11055 parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
11057 #line 11058 "MachineIndependent/glslang_tab.cpp"
11060 case 614: /* attribute_list: single_attribute */
11061 #line 4034 "MachineIndependent/glslang.y"
11063 (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
11065 #line 11066 "MachineIndependent/glslang_tab.cpp"
11068 case 615: /* attribute_list: attribute_list COMMA single_attribute */
11069 #line 4037 "MachineIndependent/glslang.y"
11071 (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
11073 #line 11074 "MachineIndependent/glslang_tab.cpp"
11076 case 616: /* single_attribute: IDENTIFIER */
11077 #line 4042 "MachineIndependent/glslang.y"
11079 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
11081 #line 11082 "MachineIndependent/glslang_tab.cpp"
11084 case 617: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
11085 #line 4045 "MachineIndependent/glslang.y"
11087 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
11089 #line 11090 "MachineIndependent/glslang_tab.cpp"
11093 #line 11094 "MachineIndependent/glslang_tab.cpp"
11097 /* User semantic actions sometimes alter yychar, and that requires
11098 that yytoken be updated with the new translation. We take the
11099 approach of translating immediately before every use of yytoken.
11100 One alternative is translating here after every semantic action,
11101 but that translation would be missed if the semantic action invokes
11102 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
11103 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
11104 incorrect destructor might then be invoked immediately. In the
11105 case of YYERROR or YYBACKUP, subsequent parser actions might lead
11106 to an incorrect destructor call or verbose syntax error message
11107 before the lookahead is translated. */
11108 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
11110 YYPOPSTACK (yylen);
11115 /* Now 'shift' the result of the reduction. Determine what state
11116 that goes to, based on the state we popped back to and the rule
11117 number reduced by. */
11119 const int yylhs = yyr1[yyn] - YYNTOKENS;
11120 const int yyi = yypgoto[yylhs] + *yyssp;
11121 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
11123 : yydefgoto[yylhs]);
11129 /*--------------------------------------.
11130 | yyerrlab -- here on detecting error. |
11131 `--------------------------------------*/
11133 /* Make sure we have latest lookahead translation. See comments at
11134 user semantic actions for why this is necessary. */
11135 yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
11136 /* If not already recovering from an error, report this error. */
11142 = {yyssp, yytoken};
11143 char const *yymsgp = YY_("syntax error");
11144 int yysyntax_error_status;
11145 yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
11146 if (yysyntax_error_status == 0)
11148 else if (yysyntax_error_status == -1)
11150 if (yymsg != yymsgbuf)
11151 YYSTACK_FREE (yymsg);
11152 yymsg = YY_CAST (char *,
11153 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
11156 yysyntax_error_status
11157 = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
11163 yymsg_alloc = sizeof yymsgbuf;
11164 yysyntax_error_status = YYENOMEM;
11167 yyerror (pParseContext, yymsgp);
11168 if (yysyntax_error_status == YYENOMEM)
11169 goto yyexhaustedlab;
11173 if (yyerrstatus == 3)
11175 /* If just tried and failed to reuse lookahead token after an
11176 error, discard it. */
11178 if (yychar <= YYEOF)
11180 /* Return failure if at end of input. */
11181 if (yychar == YYEOF)
11186 yydestruct ("Error: discarding",
11187 yytoken, &yylval, pParseContext);
11192 /* Else will try to reuse lookahead token after shifting the error
11197 /*---------------------------------------------------.
11198 | yyerrorlab -- error raised explicitly by YYERROR. |
11199 `---------------------------------------------------*/
11201 /* Pacify compilers when the user code never invokes YYERROR and the
11202 label yyerrorlab therefore never appears in user code. */
11206 /* Do not reclaim the symbols of the rule whose action triggered
11208 YYPOPSTACK (yylen);
11210 YY_STACK_PRINT (yyss, yyssp);
11215 /*-------------------------------------------------------------.
11216 | yyerrlab1 -- common code for both syntax error and YYERROR. |
11217 `-------------------------------------------------------------*/
11219 yyerrstatus = 3; /* Each real token shifted decrements this. */
11221 /* Pop stack until we find a state that shifts the error token. */
11224 yyn = yypact[yystate];
11225 if (!yypact_value_is_default (yyn))
11227 yyn += YYSYMBOL_YYerror;
11228 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
11230 yyn = yytable[yyn];
11236 /* Pop the current state because it cannot handle the error token. */
11241 yydestruct ("Error: popping",
11242 YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
11245 YY_STACK_PRINT (yyss, yyssp);
11248 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
11250 YY_IGNORE_MAYBE_UNINITIALIZED_END
11253 /* Shift the error token. */
11254 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
11260 /*-------------------------------------.
11261 | yyacceptlab -- YYACCEPT comes here. |
11262 `-------------------------------------*/
11268 /*-----------------------------------.
11269 | yyabortlab -- YYABORT comes here. |
11270 `-----------------------------------*/
11277 /*-------------------------------------------------.
11278 | yyexhaustedlab -- memory exhaustion comes here. |
11279 `-------------------------------------------------*/
11281 yyerror (pParseContext, YY_("memory exhausted"));
11287 /*-------------------------------------------------------.
11288 | yyreturn -- parsing is finished, clean up and return. |
11289 `-------------------------------------------------------*/
11291 if (yychar != YYEMPTY)
11293 /* Make sure we have latest lookahead translation. See comments at
11294 user semantic actions for why this is necessary. */
11295 yytoken = YYTRANSLATE (yychar);
11296 yydestruct ("Cleanup: discarding lookahead",
11297 yytoken, &yylval, pParseContext);
11299 /* Do not reclaim the symbols of the rule whose action triggered
11300 this YYABORT or YYACCEPT. */
11301 YYPOPSTACK (yylen);
11302 YY_STACK_PRINT (yyss, yyssp);
11303 while (yyssp != yyss)
11305 yydestruct ("Cleanup: popping",
11306 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
11311 YYSTACK_FREE (yyss);
11313 if (yymsg != yymsgbuf)
11314 YYSTACK_FREE (yymsg);
11318 #line 4050 "MachineIndependent/glslang.y"