Fix variable scoping of do-while
[platform/upstream/glslang.git] / glslang / MachineIndependent / glslang_tab.cpp
1 /* A Bison parser, made by GNU Bison 3.7.4.  */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6    Inc.
7
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36
37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38    especially those whose name start with YY_ or yy_.  They are
39    private implementation details that can be changed or removed.  */
40
41 /* All symbols defined below should begin with yy or YY, to avoid
42    infringing on user name space.  This should be done even for local
43    variables, as they might otherwise be expanded by user macros.
44    There are some unavoidable exceptions within include files to
45    define necessary library symbols; they are noted "INFRINGES ON
46    USER NAME SPACE" below.  */
47
48 /* Identify Bison output, and Bison version.  */
49 #define YYBISON 30704
50
51 /* Bison version string.  */
52 #define YYBISON_VERSION "3.7.4"
53
54 /* Skeleton name.  */
55 #define YYSKELETON_NAME "yacc.c"
56
57 /* Pure parsers.  */
58 #define YYPURE 1
59
60 /* Push parsers.  */
61 #define YYPUSH 0
62
63 /* Pull parsers.  */
64 #define YYPULL 1
65
66
67
68
69 /* First part of user prologue.  */
70 #line 69 "MachineIndependent/glslang.y"
71
72
73 /* Based on:
74 ANSI C Yacc grammar
75
76 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
77 matching Lex specification) for the April 30, 1985 draft version of the
78 ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
79 original, as mentioned in the answer to question 17.25 of the comp.lang.c
80 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
81
82 I intend to keep this version as close to the current C Standard grammar as
83 possible; please let me know if you discover discrepancies.
84
85 Jutta Degener, 1995
86 */
87
88 #include "SymbolTable.h"
89 #include "ParseHelper.h"
90 #include "../Public/ShaderLang.h"
91 #include "attribute.h"
92
93 using namespace glslang;
94
95
96 #line 97 "MachineIndependent/glslang_tab.cpp"
97
98 # ifndef YY_CAST
99 #  ifdef __cplusplus
100 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
101 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
102 #  else
103 #   define YY_CAST(Type, Val) ((Type) (Val))
104 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
105 #  endif
106 # endif
107 # ifndef YY_NULLPTR
108 #  if defined __cplusplus
109 #   if 201103L <= __cplusplus
110 #    define YY_NULLPTR nullptr
111 #   else
112 #    define YY_NULLPTR 0
113 #   endif
114 #  else
115 #   define YY_NULLPTR ((void*)0)
116 #  endif
117 # endif
118
119 #include "glslang_tab.cpp.h"
120 /* Symbol kind.  */
121 enum yysymbol_kind_t
122 {
123   YYSYMBOL_YYEMPTY = -2,
124   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
125   YYSYMBOL_YYerror = 1,                    /* error  */
126   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
127   YYSYMBOL_CONST = 3,                      /* CONST  */
128   YYSYMBOL_BOOL = 4,                       /* BOOL  */
129   YYSYMBOL_INT = 5,                        /* INT  */
130   YYSYMBOL_UINT = 6,                       /* UINT  */
131   YYSYMBOL_FLOAT = 7,                      /* FLOAT  */
132   YYSYMBOL_BVEC2 = 8,                      /* BVEC2  */
133   YYSYMBOL_BVEC3 = 9,                      /* BVEC3  */
134   YYSYMBOL_BVEC4 = 10,                     /* BVEC4  */
135   YYSYMBOL_IVEC2 = 11,                     /* IVEC2  */
136   YYSYMBOL_IVEC3 = 12,                     /* IVEC3  */
137   YYSYMBOL_IVEC4 = 13,                     /* IVEC4  */
138   YYSYMBOL_UVEC2 = 14,                     /* UVEC2  */
139   YYSYMBOL_UVEC3 = 15,                     /* UVEC3  */
140   YYSYMBOL_UVEC4 = 16,                     /* UVEC4  */
141   YYSYMBOL_VEC2 = 17,                      /* VEC2  */
142   YYSYMBOL_VEC3 = 18,                      /* VEC3  */
143   YYSYMBOL_VEC4 = 19,                      /* VEC4  */
144   YYSYMBOL_MAT2 = 20,                      /* MAT2  */
145   YYSYMBOL_MAT3 = 21,                      /* MAT3  */
146   YYSYMBOL_MAT4 = 22,                      /* MAT4  */
147   YYSYMBOL_MAT2X2 = 23,                    /* MAT2X2  */
148   YYSYMBOL_MAT2X3 = 24,                    /* MAT2X3  */
149   YYSYMBOL_MAT2X4 = 25,                    /* MAT2X4  */
150   YYSYMBOL_MAT3X2 = 26,                    /* MAT3X2  */
151   YYSYMBOL_MAT3X3 = 27,                    /* MAT3X3  */
152   YYSYMBOL_MAT3X4 = 28,                    /* MAT3X4  */
153   YYSYMBOL_MAT4X2 = 29,                    /* MAT4X2  */
154   YYSYMBOL_MAT4X3 = 30,                    /* MAT4X3  */
155   YYSYMBOL_MAT4X4 = 31,                    /* MAT4X4  */
156   YYSYMBOL_SAMPLER2D = 32,                 /* SAMPLER2D  */
157   YYSYMBOL_SAMPLER3D = 33,                 /* SAMPLER3D  */
158   YYSYMBOL_SAMPLERCUBE = 34,               /* SAMPLERCUBE  */
159   YYSYMBOL_SAMPLER2DSHADOW = 35,           /* SAMPLER2DSHADOW  */
160   YYSYMBOL_SAMPLERCUBESHADOW = 36,         /* SAMPLERCUBESHADOW  */
161   YYSYMBOL_SAMPLER2DARRAY = 37,            /* SAMPLER2DARRAY  */
162   YYSYMBOL_SAMPLER2DARRAYSHADOW = 38,      /* SAMPLER2DARRAYSHADOW  */
163   YYSYMBOL_ISAMPLER2D = 39,                /* ISAMPLER2D  */
164   YYSYMBOL_ISAMPLER3D = 40,                /* ISAMPLER3D  */
165   YYSYMBOL_ISAMPLERCUBE = 41,              /* ISAMPLERCUBE  */
166   YYSYMBOL_ISAMPLER2DARRAY = 42,           /* ISAMPLER2DARRAY  */
167   YYSYMBOL_USAMPLER2D = 43,                /* USAMPLER2D  */
168   YYSYMBOL_USAMPLER3D = 44,                /* USAMPLER3D  */
169   YYSYMBOL_USAMPLERCUBE = 45,              /* USAMPLERCUBE  */
170   YYSYMBOL_USAMPLER2DARRAY = 46,           /* USAMPLER2DARRAY  */
171   YYSYMBOL_SAMPLER = 47,                   /* SAMPLER  */
172   YYSYMBOL_SAMPLERSHADOW = 48,             /* SAMPLERSHADOW  */
173   YYSYMBOL_TEXTURE2D = 49,                 /* TEXTURE2D  */
174   YYSYMBOL_TEXTURE3D = 50,                 /* TEXTURE3D  */
175   YYSYMBOL_TEXTURECUBE = 51,               /* TEXTURECUBE  */
176   YYSYMBOL_TEXTURE2DARRAY = 52,            /* TEXTURE2DARRAY  */
177   YYSYMBOL_ITEXTURE2D = 53,                /* ITEXTURE2D  */
178   YYSYMBOL_ITEXTURE3D = 54,                /* ITEXTURE3D  */
179   YYSYMBOL_ITEXTURECUBE = 55,              /* ITEXTURECUBE  */
180   YYSYMBOL_ITEXTURE2DARRAY = 56,           /* ITEXTURE2DARRAY  */
181   YYSYMBOL_UTEXTURE2D = 57,                /* UTEXTURE2D  */
182   YYSYMBOL_UTEXTURE3D = 58,                /* UTEXTURE3D  */
183   YYSYMBOL_UTEXTURECUBE = 59,              /* UTEXTURECUBE  */
184   YYSYMBOL_UTEXTURE2DARRAY = 60,           /* UTEXTURE2DARRAY  */
185   YYSYMBOL_ATTRIBUTE = 61,                 /* ATTRIBUTE  */
186   YYSYMBOL_VARYING = 62,                   /* VARYING  */
187   YYSYMBOL_FLOAT16_T = 63,                 /* FLOAT16_T  */
188   YYSYMBOL_FLOAT32_T = 64,                 /* FLOAT32_T  */
189   YYSYMBOL_DOUBLE = 65,                    /* DOUBLE  */
190   YYSYMBOL_FLOAT64_T = 66,                 /* FLOAT64_T  */
191   YYSYMBOL_INT64_T = 67,                   /* INT64_T  */
192   YYSYMBOL_UINT64_T = 68,                  /* UINT64_T  */
193   YYSYMBOL_INT32_T = 69,                   /* INT32_T  */
194   YYSYMBOL_UINT32_T = 70,                  /* UINT32_T  */
195   YYSYMBOL_INT16_T = 71,                   /* INT16_T  */
196   YYSYMBOL_UINT16_T = 72,                  /* UINT16_T  */
197   YYSYMBOL_INT8_T = 73,                    /* INT8_T  */
198   YYSYMBOL_UINT8_T = 74,                   /* UINT8_T  */
199   YYSYMBOL_I64VEC2 = 75,                   /* I64VEC2  */
200   YYSYMBOL_I64VEC3 = 76,                   /* I64VEC3  */
201   YYSYMBOL_I64VEC4 = 77,                   /* I64VEC4  */
202   YYSYMBOL_U64VEC2 = 78,                   /* U64VEC2  */
203   YYSYMBOL_U64VEC3 = 79,                   /* U64VEC3  */
204   YYSYMBOL_U64VEC4 = 80,                   /* U64VEC4  */
205   YYSYMBOL_I32VEC2 = 81,                   /* I32VEC2  */
206   YYSYMBOL_I32VEC3 = 82,                   /* I32VEC3  */
207   YYSYMBOL_I32VEC4 = 83,                   /* I32VEC4  */
208   YYSYMBOL_U32VEC2 = 84,                   /* U32VEC2  */
209   YYSYMBOL_U32VEC3 = 85,                   /* U32VEC3  */
210   YYSYMBOL_U32VEC4 = 86,                   /* U32VEC4  */
211   YYSYMBOL_I16VEC2 = 87,                   /* I16VEC2  */
212   YYSYMBOL_I16VEC3 = 88,                   /* I16VEC3  */
213   YYSYMBOL_I16VEC4 = 89,                   /* I16VEC4  */
214   YYSYMBOL_U16VEC2 = 90,                   /* U16VEC2  */
215   YYSYMBOL_U16VEC3 = 91,                   /* U16VEC3  */
216   YYSYMBOL_U16VEC4 = 92,                   /* U16VEC4  */
217   YYSYMBOL_I8VEC2 = 93,                    /* I8VEC2  */
218   YYSYMBOL_I8VEC3 = 94,                    /* I8VEC3  */
219   YYSYMBOL_I8VEC4 = 95,                    /* I8VEC4  */
220   YYSYMBOL_U8VEC2 = 96,                    /* U8VEC2  */
221   YYSYMBOL_U8VEC3 = 97,                    /* U8VEC3  */
222   YYSYMBOL_U8VEC4 = 98,                    /* U8VEC4  */
223   YYSYMBOL_DVEC2 = 99,                     /* DVEC2  */
224   YYSYMBOL_DVEC3 = 100,                    /* DVEC3  */
225   YYSYMBOL_DVEC4 = 101,                    /* DVEC4  */
226   YYSYMBOL_DMAT2 = 102,                    /* DMAT2  */
227   YYSYMBOL_DMAT3 = 103,                    /* DMAT3  */
228   YYSYMBOL_DMAT4 = 104,                    /* DMAT4  */
229   YYSYMBOL_F16VEC2 = 105,                  /* F16VEC2  */
230   YYSYMBOL_F16VEC3 = 106,                  /* F16VEC3  */
231   YYSYMBOL_F16VEC4 = 107,                  /* F16VEC4  */
232   YYSYMBOL_F16MAT2 = 108,                  /* F16MAT2  */
233   YYSYMBOL_F16MAT3 = 109,                  /* F16MAT3  */
234   YYSYMBOL_F16MAT4 = 110,                  /* F16MAT4  */
235   YYSYMBOL_F32VEC2 = 111,                  /* F32VEC2  */
236   YYSYMBOL_F32VEC3 = 112,                  /* F32VEC3  */
237   YYSYMBOL_F32VEC4 = 113,                  /* F32VEC4  */
238   YYSYMBOL_F32MAT2 = 114,                  /* F32MAT2  */
239   YYSYMBOL_F32MAT3 = 115,                  /* F32MAT3  */
240   YYSYMBOL_F32MAT4 = 116,                  /* F32MAT4  */
241   YYSYMBOL_F64VEC2 = 117,                  /* F64VEC2  */
242   YYSYMBOL_F64VEC3 = 118,                  /* F64VEC3  */
243   YYSYMBOL_F64VEC4 = 119,                  /* F64VEC4  */
244   YYSYMBOL_F64MAT2 = 120,                  /* F64MAT2  */
245   YYSYMBOL_F64MAT3 = 121,                  /* F64MAT3  */
246   YYSYMBOL_F64MAT4 = 122,                  /* F64MAT4  */
247   YYSYMBOL_DMAT2X2 = 123,                  /* DMAT2X2  */
248   YYSYMBOL_DMAT2X3 = 124,                  /* DMAT2X3  */
249   YYSYMBOL_DMAT2X4 = 125,                  /* DMAT2X4  */
250   YYSYMBOL_DMAT3X2 = 126,                  /* DMAT3X2  */
251   YYSYMBOL_DMAT3X3 = 127,                  /* DMAT3X3  */
252   YYSYMBOL_DMAT3X4 = 128,                  /* DMAT3X4  */
253   YYSYMBOL_DMAT4X2 = 129,                  /* DMAT4X2  */
254   YYSYMBOL_DMAT4X3 = 130,                  /* DMAT4X3  */
255   YYSYMBOL_DMAT4X4 = 131,                  /* DMAT4X4  */
256   YYSYMBOL_F16MAT2X2 = 132,                /* F16MAT2X2  */
257   YYSYMBOL_F16MAT2X3 = 133,                /* F16MAT2X3  */
258   YYSYMBOL_F16MAT2X4 = 134,                /* F16MAT2X4  */
259   YYSYMBOL_F16MAT3X2 = 135,                /* F16MAT3X2  */
260   YYSYMBOL_F16MAT3X3 = 136,                /* F16MAT3X3  */
261   YYSYMBOL_F16MAT3X4 = 137,                /* F16MAT3X4  */
262   YYSYMBOL_F16MAT4X2 = 138,                /* F16MAT4X2  */
263   YYSYMBOL_F16MAT4X3 = 139,                /* F16MAT4X3  */
264   YYSYMBOL_F16MAT4X4 = 140,                /* F16MAT4X4  */
265   YYSYMBOL_F32MAT2X2 = 141,                /* F32MAT2X2  */
266   YYSYMBOL_F32MAT2X3 = 142,                /* F32MAT2X3  */
267   YYSYMBOL_F32MAT2X4 = 143,                /* F32MAT2X4  */
268   YYSYMBOL_F32MAT3X2 = 144,                /* F32MAT3X2  */
269   YYSYMBOL_F32MAT3X3 = 145,                /* F32MAT3X3  */
270   YYSYMBOL_F32MAT3X4 = 146,                /* F32MAT3X4  */
271   YYSYMBOL_F32MAT4X2 = 147,                /* F32MAT4X2  */
272   YYSYMBOL_F32MAT4X3 = 148,                /* F32MAT4X3  */
273   YYSYMBOL_F32MAT4X4 = 149,                /* F32MAT4X4  */
274   YYSYMBOL_F64MAT2X2 = 150,                /* F64MAT2X2  */
275   YYSYMBOL_F64MAT2X3 = 151,                /* F64MAT2X3  */
276   YYSYMBOL_F64MAT2X4 = 152,                /* F64MAT2X4  */
277   YYSYMBOL_F64MAT3X2 = 153,                /* F64MAT3X2  */
278   YYSYMBOL_F64MAT3X3 = 154,                /* F64MAT3X3  */
279   YYSYMBOL_F64MAT3X4 = 155,                /* F64MAT3X4  */
280   YYSYMBOL_F64MAT4X2 = 156,                /* F64MAT4X2  */
281   YYSYMBOL_F64MAT4X3 = 157,                /* F64MAT4X3  */
282   YYSYMBOL_F64MAT4X4 = 158,                /* F64MAT4X4  */
283   YYSYMBOL_ATOMIC_UINT = 159,              /* ATOMIC_UINT  */
284   YYSYMBOL_ACCSTRUCTNV = 160,              /* ACCSTRUCTNV  */
285   YYSYMBOL_ACCSTRUCTEXT = 161,             /* ACCSTRUCTEXT  */
286   YYSYMBOL_RAYQUERYEXT = 162,              /* RAYQUERYEXT  */
287   YYSYMBOL_FCOOPMATNV = 163,               /* FCOOPMATNV  */
288   YYSYMBOL_ICOOPMATNV = 164,               /* ICOOPMATNV  */
289   YYSYMBOL_UCOOPMATNV = 165,               /* UCOOPMATNV  */
290   YYSYMBOL_SAMPLERCUBEARRAY = 166,         /* SAMPLERCUBEARRAY  */
291   YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 167,   /* SAMPLERCUBEARRAYSHADOW  */
292   YYSYMBOL_ISAMPLERCUBEARRAY = 168,        /* ISAMPLERCUBEARRAY  */
293   YYSYMBOL_USAMPLERCUBEARRAY = 169,        /* USAMPLERCUBEARRAY  */
294   YYSYMBOL_SAMPLER1D = 170,                /* SAMPLER1D  */
295   YYSYMBOL_SAMPLER1DARRAY = 171,           /* SAMPLER1DARRAY  */
296   YYSYMBOL_SAMPLER1DARRAYSHADOW = 172,     /* SAMPLER1DARRAYSHADOW  */
297   YYSYMBOL_ISAMPLER1D = 173,               /* ISAMPLER1D  */
298   YYSYMBOL_SAMPLER1DSHADOW = 174,          /* SAMPLER1DSHADOW  */
299   YYSYMBOL_SAMPLER2DRECT = 175,            /* SAMPLER2DRECT  */
300   YYSYMBOL_SAMPLER2DRECTSHADOW = 176,      /* SAMPLER2DRECTSHADOW  */
301   YYSYMBOL_ISAMPLER2DRECT = 177,           /* ISAMPLER2DRECT  */
302   YYSYMBOL_USAMPLER2DRECT = 178,           /* USAMPLER2DRECT  */
303   YYSYMBOL_SAMPLERBUFFER = 179,            /* SAMPLERBUFFER  */
304   YYSYMBOL_ISAMPLERBUFFER = 180,           /* ISAMPLERBUFFER  */
305   YYSYMBOL_USAMPLERBUFFER = 181,           /* USAMPLERBUFFER  */
306   YYSYMBOL_SAMPLER2DMS = 182,              /* SAMPLER2DMS  */
307   YYSYMBOL_ISAMPLER2DMS = 183,             /* ISAMPLER2DMS  */
308   YYSYMBOL_USAMPLER2DMS = 184,             /* USAMPLER2DMS  */
309   YYSYMBOL_SAMPLER2DMSARRAY = 185,         /* SAMPLER2DMSARRAY  */
310   YYSYMBOL_ISAMPLER2DMSARRAY = 186,        /* ISAMPLER2DMSARRAY  */
311   YYSYMBOL_USAMPLER2DMSARRAY = 187,        /* USAMPLER2DMSARRAY  */
312   YYSYMBOL_SAMPLEREXTERNALOES = 188,       /* SAMPLEREXTERNALOES  */
313   YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 189,  /* SAMPLEREXTERNAL2DY2YEXT  */
314   YYSYMBOL_ISAMPLER1DARRAY = 190,          /* ISAMPLER1DARRAY  */
315   YYSYMBOL_USAMPLER1D = 191,               /* USAMPLER1D  */
316   YYSYMBOL_USAMPLER1DARRAY = 192,          /* USAMPLER1DARRAY  */
317   YYSYMBOL_F16SAMPLER1D = 193,             /* F16SAMPLER1D  */
318   YYSYMBOL_F16SAMPLER2D = 194,             /* F16SAMPLER2D  */
319   YYSYMBOL_F16SAMPLER3D = 195,             /* F16SAMPLER3D  */
320   YYSYMBOL_F16SAMPLER2DRECT = 196,         /* F16SAMPLER2DRECT  */
321   YYSYMBOL_F16SAMPLERCUBE = 197,           /* F16SAMPLERCUBE  */
322   YYSYMBOL_F16SAMPLER1DARRAY = 198,        /* F16SAMPLER1DARRAY  */
323   YYSYMBOL_F16SAMPLER2DARRAY = 199,        /* F16SAMPLER2DARRAY  */
324   YYSYMBOL_F16SAMPLERCUBEARRAY = 200,      /* F16SAMPLERCUBEARRAY  */
325   YYSYMBOL_F16SAMPLERBUFFER = 201,         /* F16SAMPLERBUFFER  */
326   YYSYMBOL_F16SAMPLER2DMS = 202,           /* F16SAMPLER2DMS  */
327   YYSYMBOL_F16SAMPLER2DMSARRAY = 203,      /* F16SAMPLER2DMSARRAY  */
328   YYSYMBOL_F16SAMPLER1DSHADOW = 204,       /* F16SAMPLER1DSHADOW  */
329   YYSYMBOL_F16SAMPLER2DSHADOW = 205,       /* F16SAMPLER2DSHADOW  */
330   YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 206,  /* F16SAMPLER1DARRAYSHADOW  */
331   YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 207,  /* F16SAMPLER2DARRAYSHADOW  */
332   YYSYMBOL_F16SAMPLER2DRECTSHADOW = 208,   /* F16SAMPLER2DRECTSHADOW  */
333   YYSYMBOL_F16SAMPLERCUBESHADOW = 209,     /* F16SAMPLERCUBESHADOW  */
334   YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 210, /* F16SAMPLERCUBEARRAYSHADOW  */
335   YYSYMBOL_IMAGE1D = 211,                  /* IMAGE1D  */
336   YYSYMBOL_IIMAGE1D = 212,                 /* IIMAGE1D  */
337   YYSYMBOL_UIMAGE1D = 213,                 /* UIMAGE1D  */
338   YYSYMBOL_IMAGE2D = 214,                  /* IMAGE2D  */
339   YYSYMBOL_IIMAGE2D = 215,                 /* IIMAGE2D  */
340   YYSYMBOL_UIMAGE2D = 216,                 /* UIMAGE2D  */
341   YYSYMBOL_IMAGE3D = 217,                  /* IMAGE3D  */
342   YYSYMBOL_IIMAGE3D = 218,                 /* IIMAGE3D  */
343   YYSYMBOL_UIMAGE3D = 219,                 /* UIMAGE3D  */
344   YYSYMBOL_IMAGE2DRECT = 220,              /* IMAGE2DRECT  */
345   YYSYMBOL_IIMAGE2DRECT = 221,             /* IIMAGE2DRECT  */
346   YYSYMBOL_UIMAGE2DRECT = 222,             /* UIMAGE2DRECT  */
347   YYSYMBOL_IMAGECUBE = 223,                /* IMAGECUBE  */
348   YYSYMBOL_IIMAGECUBE = 224,               /* IIMAGECUBE  */
349   YYSYMBOL_UIMAGECUBE = 225,               /* UIMAGECUBE  */
350   YYSYMBOL_IMAGEBUFFER = 226,              /* IMAGEBUFFER  */
351   YYSYMBOL_IIMAGEBUFFER = 227,             /* IIMAGEBUFFER  */
352   YYSYMBOL_UIMAGEBUFFER = 228,             /* UIMAGEBUFFER  */
353   YYSYMBOL_IMAGE1DARRAY = 229,             /* IMAGE1DARRAY  */
354   YYSYMBOL_IIMAGE1DARRAY = 230,            /* IIMAGE1DARRAY  */
355   YYSYMBOL_UIMAGE1DARRAY = 231,            /* UIMAGE1DARRAY  */
356   YYSYMBOL_IMAGE2DARRAY = 232,             /* IMAGE2DARRAY  */
357   YYSYMBOL_IIMAGE2DARRAY = 233,            /* IIMAGE2DARRAY  */
358   YYSYMBOL_UIMAGE2DARRAY = 234,            /* UIMAGE2DARRAY  */
359   YYSYMBOL_IMAGECUBEARRAY = 235,           /* IMAGECUBEARRAY  */
360   YYSYMBOL_IIMAGECUBEARRAY = 236,          /* IIMAGECUBEARRAY  */
361   YYSYMBOL_UIMAGECUBEARRAY = 237,          /* UIMAGECUBEARRAY  */
362   YYSYMBOL_IMAGE2DMS = 238,                /* IMAGE2DMS  */
363   YYSYMBOL_IIMAGE2DMS = 239,               /* IIMAGE2DMS  */
364   YYSYMBOL_UIMAGE2DMS = 240,               /* UIMAGE2DMS  */
365   YYSYMBOL_IMAGE2DMSARRAY = 241,           /* IMAGE2DMSARRAY  */
366   YYSYMBOL_IIMAGE2DMSARRAY = 242,          /* IIMAGE2DMSARRAY  */
367   YYSYMBOL_UIMAGE2DMSARRAY = 243,          /* UIMAGE2DMSARRAY  */
368   YYSYMBOL_F16IMAGE1D = 244,               /* F16IMAGE1D  */
369   YYSYMBOL_F16IMAGE2D = 245,               /* F16IMAGE2D  */
370   YYSYMBOL_F16IMAGE3D = 246,               /* F16IMAGE3D  */
371   YYSYMBOL_F16IMAGE2DRECT = 247,           /* F16IMAGE2DRECT  */
372   YYSYMBOL_F16IMAGECUBE = 248,             /* F16IMAGECUBE  */
373   YYSYMBOL_F16IMAGE1DARRAY = 249,          /* F16IMAGE1DARRAY  */
374   YYSYMBOL_F16IMAGE2DARRAY = 250,          /* F16IMAGE2DARRAY  */
375   YYSYMBOL_F16IMAGECUBEARRAY = 251,        /* F16IMAGECUBEARRAY  */
376   YYSYMBOL_F16IMAGEBUFFER = 252,           /* F16IMAGEBUFFER  */
377   YYSYMBOL_F16IMAGE2DMS = 253,             /* F16IMAGE2DMS  */
378   YYSYMBOL_F16IMAGE2DMSARRAY = 254,        /* F16IMAGE2DMSARRAY  */
379   YYSYMBOL_I64IMAGE1D = 255,               /* I64IMAGE1D  */
380   YYSYMBOL_U64IMAGE1D = 256,               /* U64IMAGE1D  */
381   YYSYMBOL_I64IMAGE2D = 257,               /* I64IMAGE2D  */
382   YYSYMBOL_U64IMAGE2D = 258,               /* U64IMAGE2D  */
383   YYSYMBOL_I64IMAGE3D = 259,               /* I64IMAGE3D  */
384   YYSYMBOL_U64IMAGE3D = 260,               /* U64IMAGE3D  */
385   YYSYMBOL_I64IMAGE2DRECT = 261,           /* I64IMAGE2DRECT  */
386   YYSYMBOL_U64IMAGE2DRECT = 262,           /* U64IMAGE2DRECT  */
387   YYSYMBOL_I64IMAGECUBE = 263,             /* I64IMAGECUBE  */
388   YYSYMBOL_U64IMAGECUBE = 264,             /* U64IMAGECUBE  */
389   YYSYMBOL_I64IMAGEBUFFER = 265,           /* I64IMAGEBUFFER  */
390   YYSYMBOL_U64IMAGEBUFFER = 266,           /* U64IMAGEBUFFER  */
391   YYSYMBOL_I64IMAGE1DARRAY = 267,          /* I64IMAGE1DARRAY  */
392   YYSYMBOL_U64IMAGE1DARRAY = 268,          /* U64IMAGE1DARRAY  */
393   YYSYMBOL_I64IMAGE2DARRAY = 269,          /* I64IMAGE2DARRAY  */
394   YYSYMBOL_U64IMAGE2DARRAY = 270,          /* U64IMAGE2DARRAY  */
395   YYSYMBOL_I64IMAGECUBEARRAY = 271,        /* I64IMAGECUBEARRAY  */
396   YYSYMBOL_U64IMAGECUBEARRAY = 272,        /* U64IMAGECUBEARRAY  */
397   YYSYMBOL_I64IMAGE2DMS = 273,             /* I64IMAGE2DMS  */
398   YYSYMBOL_U64IMAGE2DMS = 274,             /* U64IMAGE2DMS  */
399   YYSYMBOL_I64IMAGE2DMSARRAY = 275,        /* I64IMAGE2DMSARRAY  */
400   YYSYMBOL_U64IMAGE2DMSARRAY = 276,        /* U64IMAGE2DMSARRAY  */
401   YYSYMBOL_TEXTURECUBEARRAY = 277,         /* TEXTURECUBEARRAY  */
402   YYSYMBOL_ITEXTURECUBEARRAY = 278,        /* ITEXTURECUBEARRAY  */
403   YYSYMBOL_UTEXTURECUBEARRAY = 279,        /* UTEXTURECUBEARRAY  */
404   YYSYMBOL_TEXTURE1D = 280,                /* TEXTURE1D  */
405   YYSYMBOL_ITEXTURE1D = 281,               /* ITEXTURE1D  */
406   YYSYMBOL_UTEXTURE1D = 282,               /* UTEXTURE1D  */
407   YYSYMBOL_TEXTURE1DARRAY = 283,           /* TEXTURE1DARRAY  */
408   YYSYMBOL_ITEXTURE1DARRAY = 284,          /* ITEXTURE1DARRAY  */
409   YYSYMBOL_UTEXTURE1DARRAY = 285,          /* UTEXTURE1DARRAY  */
410   YYSYMBOL_TEXTURE2DRECT = 286,            /* TEXTURE2DRECT  */
411   YYSYMBOL_ITEXTURE2DRECT = 287,           /* ITEXTURE2DRECT  */
412   YYSYMBOL_UTEXTURE2DRECT = 288,           /* UTEXTURE2DRECT  */
413   YYSYMBOL_TEXTUREBUFFER = 289,            /* TEXTUREBUFFER  */
414   YYSYMBOL_ITEXTUREBUFFER = 290,           /* ITEXTUREBUFFER  */
415   YYSYMBOL_UTEXTUREBUFFER = 291,           /* UTEXTUREBUFFER  */
416   YYSYMBOL_TEXTURE2DMS = 292,              /* TEXTURE2DMS  */
417   YYSYMBOL_ITEXTURE2DMS = 293,             /* ITEXTURE2DMS  */
418   YYSYMBOL_UTEXTURE2DMS = 294,             /* UTEXTURE2DMS  */
419   YYSYMBOL_TEXTURE2DMSARRAY = 295,         /* TEXTURE2DMSARRAY  */
420   YYSYMBOL_ITEXTURE2DMSARRAY = 296,        /* ITEXTURE2DMSARRAY  */
421   YYSYMBOL_UTEXTURE2DMSARRAY = 297,        /* UTEXTURE2DMSARRAY  */
422   YYSYMBOL_F16TEXTURE1D = 298,             /* F16TEXTURE1D  */
423   YYSYMBOL_F16TEXTURE2D = 299,             /* F16TEXTURE2D  */
424   YYSYMBOL_F16TEXTURE3D = 300,             /* F16TEXTURE3D  */
425   YYSYMBOL_F16TEXTURE2DRECT = 301,         /* F16TEXTURE2DRECT  */
426   YYSYMBOL_F16TEXTURECUBE = 302,           /* F16TEXTURECUBE  */
427   YYSYMBOL_F16TEXTURE1DARRAY = 303,        /* F16TEXTURE1DARRAY  */
428   YYSYMBOL_F16TEXTURE2DARRAY = 304,        /* F16TEXTURE2DARRAY  */
429   YYSYMBOL_F16TEXTURECUBEARRAY = 305,      /* F16TEXTURECUBEARRAY  */
430   YYSYMBOL_F16TEXTUREBUFFER = 306,         /* F16TEXTUREBUFFER  */
431   YYSYMBOL_F16TEXTURE2DMS = 307,           /* F16TEXTURE2DMS  */
432   YYSYMBOL_F16TEXTURE2DMSARRAY = 308,      /* F16TEXTURE2DMSARRAY  */
433   YYSYMBOL_SUBPASSINPUT = 309,             /* SUBPASSINPUT  */
434   YYSYMBOL_SUBPASSINPUTMS = 310,           /* SUBPASSINPUTMS  */
435   YYSYMBOL_ISUBPASSINPUT = 311,            /* ISUBPASSINPUT  */
436   YYSYMBOL_ISUBPASSINPUTMS = 312,          /* ISUBPASSINPUTMS  */
437   YYSYMBOL_USUBPASSINPUT = 313,            /* USUBPASSINPUT  */
438   YYSYMBOL_USUBPASSINPUTMS = 314,          /* USUBPASSINPUTMS  */
439   YYSYMBOL_F16SUBPASSINPUT = 315,          /* F16SUBPASSINPUT  */
440   YYSYMBOL_F16SUBPASSINPUTMS = 316,        /* F16SUBPASSINPUTMS  */
441   YYSYMBOL_SPIRV_INSTRUCTION = 317,        /* SPIRV_INSTRUCTION  */
442   YYSYMBOL_SPIRV_EXECUTION_MODE = 318,     /* SPIRV_EXECUTION_MODE  */
443   YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 319,  /* SPIRV_EXECUTION_MODE_ID  */
444   YYSYMBOL_SPIRV_DECORATE = 320,           /* SPIRV_DECORATE  */
445   YYSYMBOL_SPIRV_DECORATE_ID = 321,        /* SPIRV_DECORATE_ID  */
446   YYSYMBOL_SPIRV_DECORATE_STRING = 322,    /* SPIRV_DECORATE_STRING  */
447   YYSYMBOL_SPIRV_TYPE = 323,               /* SPIRV_TYPE  */
448   YYSYMBOL_SPIRV_STORAGE_CLASS = 324,      /* SPIRV_STORAGE_CLASS  */
449   YYSYMBOL_SPIRV_BY_REFERENCE = 325,       /* SPIRV_BY_REFERENCE  */
450   YYSYMBOL_SPIRV_LITERAL = 326,            /* SPIRV_LITERAL  */
451   YYSYMBOL_LEFT_OP = 327,                  /* LEFT_OP  */
452   YYSYMBOL_RIGHT_OP = 328,                 /* RIGHT_OP  */
453   YYSYMBOL_INC_OP = 329,                   /* INC_OP  */
454   YYSYMBOL_DEC_OP = 330,                   /* DEC_OP  */
455   YYSYMBOL_LE_OP = 331,                    /* LE_OP  */
456   YYSYMBOL_GE_OP = 332,                    /* GE_OP  */
457   YYSYMBOL_EQ_OP = 333,                    /* EQ_OP  */
458   YYSYMBOL_NE_OP = 334,                    /* NE_OP  */
459   YYSYMBOL_AND_OP = 335,                   /* AND_OP  */
460   YYSYMBOL_OR_OP = 336,                    /* OR_OP  */
461   YYSYMBOL_XOR_OP = 337,                   /* XOR_OP  */
462   YYSYMBOL_MUL_ASSIGN = 338,               /* MUL_ASSIGN  */
463   YYSYMBOL_DIV_ASSIGN = 339,               /* DIV_ASSIGN  */
464   YYSYMBOL_ADD_ASSIGN = 340,               /* ADD_ASSIGN  */
465   YYSYMBOL_MOD_ASSIGN = 341,               /* MOD_ASSIGN  */
466   YYSYMBOL_LEFT_ASSIGN = 342,              /* LEFT_ASSIGN  */
467   YYSYMBOL_RIGHT_ASSIGN = 343,             /* RIGHT_ASSIGN  */
468   YYSYMBOL_AND_ASSIGN = 344,               /* AND_ASSIGN  */
469   YYSYMBOL_XOR_ASSIGN = 345,               /* XOR_ASSIGN  */
470   YYSYMBOL_OR_ASSIGN = 346,                /* OR_ASSIGN  */
471   YYSYMBOL_SUB_ASSIGN = 347,               /* SUB_ASSIGN  */
472   YYSYMBOL_STRING_LITERAL = 348,           /* STRING_LITERAL  */
473   YYSYMBOL_LEFT_PAREN = 349,               /* LEFT_PAREN  */
474   YYSYMBOL_RIGHT_PAREN = 350,              /* RIGHT_PAREN  */
475   YYSYMBOL_LEFT_BRACKET = 351,             /* LEFT_BRACKET  */
476   YYSYMBOL_RIGHT_BRACKET = 352,            /* RIGHT_BRACKET  */
477   YYSYMBOL_LEFT_BRACE = 353,               /* LEFT_BRACE  */
478   YYSYMBOL_RIGHT_BRACE = 354,              /* RIGHT_BRACE  */
479   YYSYMBOL_DOT = 355,                      /* DOT  */
480   YYSYMBOL_COMMA = 356,                    /* COMMA  */
481   YYSYMBOL_COLON = 357,                    /* COLON  */
482   YYSYMBOL_EQUAL = 358,                    /* EQUAL  */
483   YYSYMBOL_SEMICOLON = 359,                /* SEMICOLON  */
484   YYSYMBOL_BANG = 360,                     /* BANG  */
485   YYSYMBOL_DASH = 361,                     /* DASH  */
486   YYSYMBOL_TILDE = 362,                    /* TILDE  */
487   YYSYMBOL_PLUS = 363,                     /* PLUS  */
488   YYSYMBOL_STAR = 364,                     /* STAR  */
489   YYSYMBOL_SLASH = 365,                    /* SLASH  */
490   YYSYMBOL_PERCENT = 366,                  /* PERCENT  */
491   YYSYMBOL_LEFT_ANGLE = 367,               /* LEFT_ANGLE  */
492   YYSYMBOL_RIGHT_ANGLE = 368,              /* RIGHT_ANGLE  */
493   YYSYMBOL_VERTICAL_BAR = 369,             /* VERTICAL_BAR  */
494   YYSYMBOL_CARET = 370,                    /* CARET  */
495   YYSYMBOL_AMPERSAND = 371,                /* AMPERSAND  */
496   YYSYMBOL_QUESTION = 372,                 /* QUESTION  */
497   YYSYMBOL_INVARIANT = 373,                /* INVARIANT  */
498   YYSYMBOL_HIGH_PRECISION = 374,           /* HIGH_PRECISION  */
499   YYSYMBOL_MEDIUM_PRECISION = 375,         /* MEDIUM_PRECISION  */
500   YYSYMBOL_LOW_PRECISION = 376,            /* LOW_PRECISION  */
501   YYSYMBOL_PRECISION = 377,                /* PRECISION  */
502   YYSYMBOL_PACKED = 378,                   /* PACKED  */
503   YYSYMBOL_RESOURCE = 379,                 /* RESOURCE  */
504   YYSYMBOL_SUPERP = 380,                   /* SUPERP  */
505   YYSYMBOL_FLOATCONSTANT = 381,            /* FLOATCONSTANT  */
506   YYSYMBOL_INTCONSTANT = 382,              /* INTCONSTANT  */
507   YYSYMBOL_UINTCONSTANT = 383,             /* UINTCONSTANT  */
508   YYSYMBOL_BOOLCONSTANT = 384,             /* BOOLCONSTANT  */
509   YYSYMBOL_IDENTIFIER = 385,               /* IDENTIFIER  */
510   YYSYMBOL_TYPE_NAME = 386,                /* TYPE_NAME  */
511   YYSYMBOL_CENTROID = 387,                 /* CENTROID  */
512   YYSYMBOL_IN = 388,                       /* IN  */
513   YYSYMBOL_OUT = 389,                      /* OUT  */
514   YYSYMBOL_INOUT = 390,                    /* INOUT  */
515   YYSYMBOL_STRUCT = 391,                   /* STRUCT  */
516   YYSYMBOL_VOID = 392,                     /* VOID  */
517   YYSYMBOL_WHILE = 393,                    /* WHILE  */
518   YYSYMBOL_BREAK = 394,                    /* BREAK  */
519   YYSYMBOL_CONTINUE = 395,                 /* CONTINUE  */
520   YYSYMBOL_DO = 396,                       /* DO  */
521   YYSYMBOL_ELSE = 397,                     /* ELSE  */
522   YYSYMBOL_FOR = 398,                      /* FOR  */
523   YYSYMBOL_IF = 399,                       /* IF  */
524   YYSYMBOL_DISCARD = 400,                  /* DISCARD  */
525   YYSYMBOL_RETURN = 401,                   /* RETURN  */
526   YYSYMBOL_SWITCH = 402,                   /* SWITCH  */
527   YYSYMBOL_CASE = 403,                     /* CASE  */
528   YYSYMBOL_DEFAULT = 404,                  /* DEFAULT  */
529   YYSYMBOL_TERMINATE_INVOCATION = 405,     /* TERMINATE_INVOCATION  */
530   YYSYMBOL_TERMINATE_RAY = 406,            /* TERMINATE_RAY  */
531   YYSYMBOL_IGNORE_INTERSECTION = 407,      /* IGNORE_INTERSECTION  */
532   YYSYMBOL_UNIFORM = 408,                  /* UNIFORM  */
533   YYSYMBOL_SHARED = 409,                   /* SHARED  */
534   YYSYMBOL_BUFFER = 410,                   /* BUFFER  */
535   YYSYMBOL_FLAT = 411,                     /* FLAT  */
536   YYSYMBOL_SMOOTH = 412,                   /* SMOOTH  */
537   YYSYMBOL_LAYOUT = 413,                   /* LAYOUT  */
538   YYSYMBOL_DOUBLECONSTANT = 414,           /* DOUBLECONSTANT  */
539   YYSYMBOL_INT16CONSTANT = 415,            /* INT16CONSTANT  */
540   YYSYMBOL_UINT16CONSTANT = 416,           /* UINT16CONSTANT  */
541   YYSYMBOL_FLOAT16CONSTANT = 417,          /* FLOAT16CONSTANT  */
542   YYSYMBOL_INT32CONSTANT = 418,            /* INT32CONSTANT  */
543   YYSYMBOL_UINT32CONSTANT = 419,           /* UINT32CONSTANT  */
544   YYSYMBOL_INT64CONSTANT = 420,            /* INT64CONSTANT  */
545   YYSYMBOL_UINT64CONSTANT = 421,           /* UINT64CONSTANT  */
546   YYSYMBOL_SUBROUTINE = 422,               /* SUBROUTINE  */
547   YYSYMBOL_DEMOTE = 423,                   /* DEMOTE  */
548   YYSYMBOL_PAYLOADNV = 424,                /* PAYLOADNV  */
549   YYSYMBOL_PAYLOADINNV = 425,              /* PAYLOADINNV  */
550   YYSYMBOL_HITATTRNV = 426,                /* HITATTRNV  */
551   YYSYMBOL_CALLDATANV = 427,               /* CALLDATANV  */
552   YYSYMBOL_CALLDATAINNV = 428,             /* CALLDATAINNV  */
553   YYSYMBOL_PAYLOADEXT = 429,               /* PAYLOADEXT  */
554   YYSYMBOL_PAYLOADINEXT = 430,             /* PAYLOADINEXT  */
555   YYSYMBOL_HITATTREXT = 431,               /* HITATTREXT  */
556   YYSYMBOL_CALLDATAEXT = 432,              /* CALLDATAEXT  */
557   YYSYMBOL_CALLDATAINEXT = 433,            /* CALLDATAINEXT  */
558   YYSYMBOL_PATCH = 434,                    /* PATCH  */
559   YYSYMBOL_SAMPLE = 435,                   /* SAMPLE  */
560   YYSYMBOL_NONUNIFORM = 436,               /* NONUNIFORM  */
561   YYSYMBOL_COHERENT = 437,                 /* COHERENT  */
562   YYSYMBOL_VOLATILE = 438,                 /* VOLATILE  */
563   YYSYMBOL_RESTRICT = 439,                 /* RESTRICT  */
564   YYSYMBOL_READONLY = 440,                 /* READONLY  */
565   YYSYMBOL_WRITEONLY = 441,                /* WRITEONLY  */
566   YYSYMBOL_DEVICECOHERENT = 442,           /* DEVICECOHERENT  */
567   YYSYMBOL_QUEUEFAMILYCOHERENT = 443,      /* QUEUEFAMILYCOHERENT  */
568   YYSYMBOL_WORKGROUPCOHERENT = 444,        /* WORKGROUPCOHERENT  */
569   YYSYMBOL_SUBGROUPCOHERENT = 445,         /* SUBGROUPCOHERENT  */
570   YYSYMBOL_NONPRIVATE = 446,               /* NONPRIVATE  */
571   YYSYMBOL_SHADERCALLCOHERENT = 447,       /* SHADERCALLCOHERENT  */
572   YYSYMBOL_NOPERSPECTIVE = 448,            /* NOPERSPECTIVE  */
573   YYSYMBOL_EXPLICITINTERPAMD = 449,        /* EXPLICITINTERPAMD  */
574   YYSYMBOL_PERVERTEXNV = 450,              /* PERVERTEXNV  */
575   YYSYMBOL_PERPRIMITIVENV = 451,           /* PERPRIMITIVENV  */
576   YYSYMBOL_PERVIEWNV = 452,                /* PERVIEWNV  */
577   YYSYMBOL_PERTASKNV = 453,                /* PERTASKNV  */
578   YYSYMBOL_PRECISE = 454,                  /* PRECISE  */
579   YYSYMBOL_YYACCEPT = 455,                 /* $accept  */
580   YYSYMBOL_variable_identifier = 456,      /* variable_identifier  */
581   YYSYMBOL_primary_expression = 457,       /* primary_expression  */
582   YYSYMBOL_postfix_expression = 458,       /* postfix_expression  */
583   YYSYMBOL_integer_expression = 459,       /* integer_expression  */
584   YYSYMBOL_function_call = 460,            /* function_call  */
585   YYSYMBOL_function_call_or_method = 461,  /* function_call_or_method  */
586   YYSYMBOL_function_call_generic = 462,    /* function_call_generic  */
587   YYSYMBOL_function_call_header_no_parameters = 463, /* function_call_header_no_parameters  */
588   YYSYMBOL_function_call_header_with_parameters = 464, /* function_call_header_with_parameters  */
589   YYSYMBOL_function_call_header = 465,     /* function_call_header  */
590   YYSYMBOL_function_identifier = 466,      /* function_identifier  */
591   YYSYMBOL_unary_expression = 467,         /* unary_expression  */
592   YYSYMBOL_unary_operator = 468,           /* unary_operator  */
593   YYSYMBOL_multiplicative_expression = 469, /* multiplicative_expression  */
594   YYSYMBOL_additive_expression = 470,      /* additive_expression  */
595   YYSYMBOL_shift_expression = 471,         /* shift_expression  */
596   YYSYMBOL_relational_expression = 472,    /* relational_expression  */
597   YYSYMBOL_equality_expression = 473,      /* equality_expression  */
598   YYSYMBOL_and_expression = 474,           /* and_expression  */
599   YYSYMBOL_exclusive_or_expression = 475,  /* exclusive_or_expression  */
600   YYSYMBOL_inclusive_or_expression = 476,  /* inclusive_or_expression  */
601   YYSYMBOL_logical_and_expression = 477,   /* logical_and_expression  */
602   YYSYMBOL_logical_xor_expression = 478,   /* logical_xor_expression  */
603   YYSYMBOL_logical_or_expression = 479,    /* logical_or_expression  */
604   YYSYMBOL_conditional_expression = 480,   /* conditional_expression  */
605   YYSYMBOL_481_1 = 481,                    /* $@1  */
606   YYSYMBOL_assignment_expression = 482,    /* assignment_expression  */
607   YYSYMBOL_assignment_operator = 483,      /* assignment_operator  */
608   YYSYMBOL_expression = 484,               /* expression  */
609   YYSYMBOL_constant_expression = 485,      /* constant_expression  */
610   YYSYMBOL_declaration = 486,              /* declaration  */
611   YYSYMBOL_block_structure = 487,          /* block_structure  */
612   YYSYMBOL_488_2 = 488,                    /* $@2  */
613   YYSYMBOL_identifier_list = 489,          /* identifier_list  */
614   YYSYMBOL_function_prototype = 490,       /* function_prototype  */
615   YYSYMBOL_function_declarator = 491,      /* function_declarator  */
616   YYSYMBOL_function_header_with_parameters = 492, /* function_header_with_parameters  */
617   YYSYMBOL_function_header = 493,          /* function_header  */
618   YYSYMBOL_parameter_declarator = 494,     /* parameter_declarator  */
619   YYSYMBOL_parameter_declaration = 495,    /* parameter_declaration  */
620   YYSYMBOL_parameter_type_specifier = 496, /* parameter_type_specifier  */
621   YYSYMBOL_init_declarator_list = 497,     /* init_declarator_list  */
622   YYSYMBOL_single_declaration = 498,       /* single_declaration  */
623   YYSYMBOL_fully_specified_type = 499,     /* fully_specified_type  */
624   YYSYMBOL_invariant_qualifier = 500,      /* invariant_qualifier  */
625   YYSYMBOL_interpolation_qualifier = 501,  /* interpolation_qualifier  */
626   YYSYMBOL_layout_qualifier = 502,         /* layout_qualifier  */
627   YYSYMBOL_layout_qualifier_id_list = 503, /* layout_qualifier_id_list  */
628   YYSYMBOL_layout_qualifier_id = 504,      /* layout_qualifier_id  */
629   YYSYMBOL_precise_qualifier = 505,        /* precise_qualifier  */
630   YYSYMBOL_type_qualifier = 506,           /* type_qualifier  */
631   YYSYMBOL_single_type_qualifier = 507,    /* single_type_qualifier  */
632   YYSYMBOL_storage_qualifier = 508,        /* storage_qualifier  */
633   YYSYMBOL_non_uniform_qualifier = 509,    /* non_uniform_qualifier  */
634   YYSYMBOL_type_name_list = 510,           /* type_name_list  */
635   YYSYMBOL_type_specifier = 511,           /* type_specifier  */
636   YYSYMBOL_array_specifier = 512,          /* array_specifier  */
637   YYSYMBOL_type_parameter_specifier_opt = 513, /* type_parameter_specifier_opt  */
638   YYSYMBOL_type_parameter_specifier = 514, /* type_parameter_specifier  */
639   YYSYMBOL_type_parameter_specifier_list = 515, /* type_parameter_specifier_list  */
640   YYSYMBOL_type_specifier_nonarray = 516,  /* type_specifier_nonarray  */
641   YYSYMBOL_precision_qualifier = 517,      /* precision_qualifier  */
642   YYSYMBOL_struct_specifier = 518,         /* struct_specifier  */
643   YYSYMBOL_519_3 = 519,                    /* $@3  */
644   YYSYMBOL_520_4 = 520,                    /* $@4  */
645   YYSYMBOL_struct_declaration_list = 521,  /* struct_declaration_list  */
646   YYSYMBOL_struct_declaration = 522,       /* struct_declaration  */
647   YYSYMBOL_struct_declarator_list = 523,   /* struct_declarator_list  */
648   YYSYMBOL_struct_declarator = 524,        /* struct_declarator  */
649   YYSYMBOL_initializer = 525,              /* initializer  */
650   YYSYMBOL_initializer_list = 526,         /* initializer_list  */
651   YYSYMBOL_declaration_statement = 527,    /* declaration_statement  */
652   YYSYMBOL_statement = 528,                /* statement  */
653   YYSYMBOL_simple_statement = 529,         /* simple_statement  */
654   YYSYMBOL_demote_statement = 530,         /* demote_statement  */
655   YYSYMBOL_compound_statement = 531,       /* compound_statement  */
656   YYSYMBOL_532_5 = 532,                    /* $@5  */
657   YYSYMBOL_533_6 = 533,                    /* $@6  */
658   YYSYMBOL_statement_no_new_scope = 534,   /* statement_no_new_scope  */
659   YYSYMBOL_statement_scoped = 535,         /* statement_scoped  */
660   YYSYMBOL_536_7 = 536,                    /* $@7  */
661   YYSYMBOL_537_8 = 537,                    /* $@8  */
662   YYSYMBOL_compound_statement_no_new_scope = 538, /* compound_statement_no_new_scope  */
663   YYSYMBOL_statement_list = 539,           /* statement_list  */
664   YYSYMBOL_expression_statement = 540,     /* expression_statement  */
665   YYSYMBOL_selection_statement = 541,      /* selection_statement  */
666   YYSYMBOL_selection_statement_nonattributed = 542, /* selection_statement_nonattributed  */
667   YYSYMBOL_selection_rest_statement = 543, /* selection_rest_statement  */
668   YYSYMBOL_condition = 544,                /* condition  */
669   YYSYMBOL_switch_statement = 545,         /* switch_statement  */
670   YYSYMBOL_switch_statement_nonattributed = 546, /* switch_statement_nonattributed  */
671   YYSYMBOL_547_9 = 547,                    /* $@9  */
672   YYSYMBOL_switch_statement_list = 548,    /* switch_statement_list  */
673   YYSYMBOL_case_label = 549,               /* case_label  */
674   YYSYMBOL_iteration_statement = 550,      /* iteration_statement  */
675   YYSYMBOL_iteration_statement_nonattributed = 551, /* iteration_statement_nonattributed  */
676   YYSYMBOL_552_10 = 552,                   /* $@10  */
677   YYSYMBOL_553_11 = 553,                   /* $@11  */
678   YYSYMBOL_554_12 = 554,                   /* $@12  */
679   YYSYMBOL_for_init_statement = 555,       /* for_init_statement  */
680   YYSYMBOL_conditionopt = 556,             /* conditionopt  */
681   YYSYMBOL_for_rest_statement = 557,       /* for_rest_statement  */
682   YYSYMBOL_jump_statement = 558,           /* jump_statement  */
683   YYSYMBOL_translation_unit = 559,         /* translation_unit  */
684   YYSYMBOL_external_declaration = 560,     /* external_declaration  */
685   YYSYMBOL_function_definition = 561,      /* function_definition  */
686   YYSYMBOL_562_13 = 562,                   /* $@13  */
687   YYSYMBOL_attribute = 563,                /* attribute  */
688   YYSYMBOL_attribute_list = 564,           /* attribute_list  */
689   YYSYMBOL_single_attribute = 565,         /* single_attribute  */
690   YYSYMBOL_spirv_requirements_list = 566,  /* spirv_requirements_list  */
691   YYSYMBOL_spirv_requirements_parameter = 567, /* spirv_requirements_parameter  */
692   YYSYMBOL_spirv_extension_list = 568,     /* spirv_extension_list  */
693   YYSYMBOL_spirv_capability_list = 569,    /* spirv_capability_list  */
694   YYSYMBOL_spirv_execution_mode_qualifier = 570, /* spirv_execution_mode_qualifier  */
695   YYSYMBOL_spirv_execution_mode_parameter_list = 571, /* spirv_execution_mode_parameter_list  */
696   YYSYMBOL_spirv_execution_mode_parameter = 572, /* spirv_execution_mode_parameter  */
697   YYSYMBOL_spirv_execution_mode_id_parameter_list = 573, /* spirv_execution_mode_id_parameter_list  */
698   YYSYMBOL_spirv_storage_class_qualifier = 574, /* spirv_storage_class_qualifier  */
699   YYSYMBOL_spirv_decorate_qualifier = 575, /* spirv_decorate_qualifier  */
700   YYSYMBOL_spirv_decorate_parameter_list = 576, /* spirv_decorate_parameter_list  */
701   YYSYMBOL_spirv_decorate_parameter = 577, /* spirv_decorate_parameter  */
702   YYSYMBOL_spirv_decorate_id_parameter_list = 578, /* spirv_decorate_id_parameter_list  */
703   YYSYMBOL_spirv_decorate_string_parameter_list = 579, /* spirv_decorate_string_parameter_list  */
704   YYSYMBOL_spirv_type_specifier = 580,     /* spirv_type_specifier  */
705   YYSYMBOL_spirv_type_parameter_list = 581, /* spirv_type_parameter_list  */
706   YYSYMBOL_spirv_type_parameter = 582,     /* spirv_type_parameter  */
707   YYSYMBOL_spirv_instruction_qualifier = 583, /* spirv_instruction_qualifier  */
708   YYSYMBOL_spirv_instruction_qualifier_list = 584, /* spirv_instruction_qualifier_list  */
709   YYSYMBOL_spirv_instruction_qualifier_id = 585 /* spirv_instruction_qualifier_id  */
710 };
711 typedef enum yysymbol_kind_t yysymbol_kind_t;
712
713
714 /* Second part of user prologue.  */
715 #line 136 "MachineIndependent/glslang.y"
716
717
718 /* windows only pragma */
719 #ifdef _MSC_VER
720     #pragma warning(disable : 4065)
721     #pragma warning(disable : 4127)
722     #pragma warning(disable : 4244)
723 #endif
724
725 #define parseContext (*pParseContext)
726 #define yyerror(context, msg) context->parserError(msg)
727
728 extern int yylex(YYSTYPE*, TParseContext&);
729
730
731 #line 732 "MachineIndependent/glslang_tab.cpp"
732
733
734 #ifdef short
735 # undef short
736 #endif
737
738 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
739    <limits.h> and (if available) <stdint.h> are included
740    so that the code can choose integer types of a good width.  */
741
742 #ifndef __PTRDIFF_MAX__
743 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
744 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
745 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
746 #  define YY_STDINT_H
747 # endif
748 #endif
749
750 /* Narrow types that promote to a signed type and that can represent a
751    signed or unsigned integer of at least N bits.  In tables they can
752    save space and decrease cache pressure.  Promoting to a signed type
753    helps avoid bugs in integer arithmetic.  */
754
755 #ifdef __INT_LEAST8_MAX__
756 typedef __INT_LEAST8_TYPE__ yytype_int8;
757 #elif defined YY_STDINT_H
758 typedef int_least8_t yytype_int8;
759 #else
760 typedef signed char yytype_int8;
761 #endif
762
763 #ifdef __INT_LEAST16_MAX__
764 typedef __INT_LEAST16_TYPE__ yytype_int16;
765 #elif defined YY_STDINT_H
766 typedef int_least16_t yytype_int16;
767 #else
768 typedef short yytype_int16;
769 #endif
770
771 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
772 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
773 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
774        && UINT_LEAST8_MAX <= INT_MAX)
775 typedef uint_least8_t yytype_uint8;
776 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
777 typedef unsigned char yytype_uint8;
778 #else
779 typedef short yytype_uint8;
780 #endif
781
782 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
783 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
784 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
785        && UINT_LEAST16_MAX <= INT_MAX)
786 typedef uint_least16_t yytype_uint16;
787 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
788 typedef unsigned short yytype_uint16;
789 #else
790 typedef int yytype_uint16;
791 #endif
792
793 #ifndef YYPTRDIFF_T
794 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
795 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
796 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
797 # elif defined PTRDIFF_MAX
798 #  ifndef ptrdiff_t
799 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
800 #  endif
801 #  define YYPTRDIFF_T ptrdiff_t
802 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
803 # else
804 #  define YYPTRDIFF_T long
805 #  define YYPTRDIFF_MAXIMUM LONG_MAX
806 # endif
807 #endif
808
809 #ifndef YYSIZE_T
810 # ifdef __SIZE_TYPE__
811 #  define YYSIZE_T __SIZE_TYPE__
812 # elif defined size_t
813 #  define YYSIZE_T size_t
814 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
815 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
816 #  define YYSIZE_T size_t
817 # else
818 #  define YYSIZE_T unsigned
819 # endif
820 #endif
821
822 #define YYSIZE_MAXIMUM                                  \
823   YY_CAST (YYPTRDIFF_T,                                 \
824            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
825             ? YYPTRDIFF_MAXIMUM                         \
826             : YY_CAST (YYSIZE_T, -1)))
827
828 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
829
830
831 /* Stored state numbers (used for stacks). */
832 typedef yytype_int16 yy_state_t;
833
834 /* State numbers in computations.  */
835 typedef int yy_state_fast_t;
836
837 #ifndef YY_
838 # if defined YYENABLE_NLS && YYENABLE_NLS
839 #  if ENABLE_NLS
840 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
841 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
842 #  endif
843 # endif
844 # ifndef YY_
845 #  define YY_(Msgid) Msgid
846 # endif
847 #endif
848
849
850 #ifndef YY_ATTRIBUTE_PURE
851 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
852 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
853 # else
854 #  define YY_ATTRIBUTE_PURE
855 # endif
856 #endif
857
858 #ifndef YY_ATTRIBUTE_UNUSED
859 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
860 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
861 # else
862 #  define YY_ATTRIBUTE_UNUSED
863 # endif
864 #endif
865
866 /* Suppress unused-variable warnings by "using" E.  */
867 #if ! defined lint || defined __GNUC__
868 # define YYUSE(E) ((void) (E))
869 #else
870 # define YYUSE(E) /* empty */
871 #endif
872
873 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
874 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
875 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
876     _Pragma ("GCC diagnostic push")                                     \
877     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
878     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
879 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
880     _Pragma ("GCC diagnostic pop")
881 #else
882 # define YY_INITIAL_VALUE(Value) Value
883 #endif
884 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
885 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
886 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
887 #endif
888 #ifndef YY_INITIAL_VALUE
889 # define YY_INITIAL_VALUE(Value) /* Nothing. */
890 #endif
891
892 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
893 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
894     _Pragma ("GCC diagnostic push")                            \
895     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
896 # define YY_IGNORE_USELESS_CAST_END            \
897     _Pragma ("GCC diagnostic pop")
898 #endif
899 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
900 # define YY_IGNORE_USELESS_CAST_BEGIN
901 # define YY_IGNORE_USELESS_CAST_END
902 #endif
903
904
905 #define YY_ASSERT(E) ((void) (0 && (E)))
906
907 #if 1
908
909 /* The parser invokes alloca or malloc; define the necessary symbols.  */
910
911 # ifdef YYSTACK_USE_ALLOCA
912 #  if YYSTACK_USE_ALLOCA
913 #   ifdef __GNUC__
914 #    define YYSTACK_ALLOC __builtin_alloca
915 #   elif defined __BUILTIN_VA_ARG_INCR
916 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
917 #   elif defined _AIX
918 #    define YYSTACK_ALLOC __alloca
919 #   elif defined _MSC_VER
920 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
921 #    define alloca _alloca
922 #   else
923 #    define YYSTACK_ALLOC alloca
924 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
925 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
926       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
927 #     ifndef EXIT_SUCCESS
928 #      define EXIT_SUCCESS 0
929 #     endif
930 #    endif
931 #   endif
932 #  endif
933 # endif
934
935 # ifdef YYSTACK_ALLOC
936    /* Pacify GCC's 'empty if-body' warning.  */
937 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
938 #  ifndef YYSTACK_ALLOC_MAXIMUM
939     /* The OS might guarantee only one guard page at the bottom of the stack,
940        and a page size can be as small as 4096 bytes.  So we cannot safely
941        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
942        to allow for a few compiler-allocated temporary stack slots.  */
943 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
944 #  endif
945 # else
946 #  define YYSTACK_ALLOC YYMALLOC
947 #  define YYSTACK_FREE YYFREE
948 #  ifndef YYSTACK_ALLOC_MAXIMUM
949 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
950 #  endif
951 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
952        && ! ((defined YYMALLOC || defined malloc) \
953              && (defined YYFREE || defined free)))
954 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
955 #   ifndef EXIT_SUCCESS
956 #    define EXIT_SUCCESS 0
957 #   endif
958 #  endif
959 #  ifndef YYMALLOC
960 #   define YYMALLOC malloc
961 #   if ! defined malloc && ! defined EXIT_SUCCESS
962 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
963 #   endif
964 #  endif
965 #  ifndef YYFREE
966 #   define YYFREE free
967 #   if ! defined free && ! defined EXIT_SUCCESS
968 void free (void *); /* INFRINGES ON USER NAME SPACE */
969 #   endif
970 #  endif
971 # endif
972 #endif /* 1 */
973
974 #if (! defined yyoverflow \
975      && (! defined __cplusplus \
976          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
977
978 /* A type that is properly aligned for any stack member.  */
979 union yyalloc
980 {
981   yy_state_t yyss_alloc;
982   YYSTYPE yyvs_alloc;
983 };
984
985 /* The size of the maximum gap between one aligned stack and the next.  */
986 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
987
988 /* The size of an array large to enough to hold all stacks, each with
989    N elements.  */
990 # define YYSTACK_BYTES(N) \
991      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
992       + YYSTACK_GAP_MAXIMUM)
993
994 # define YYCOPY_NEEDED 1
995
996 /* Relocate STACK from its old location to the new one.  The
997    local variables YYSIZE and YYSTACKSIZE give the old and new number of
998    elements in the stack, and YYPTR gives the new location of the
999    stack.  Advance YYPTR to a properly aligned location for the next
1000    stack.  */
1001 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1002     do                                                                  \
1003       {                                                                 \
1004         YYPTRDIFF_T yynewbytes;                                         \
1005         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1006         Stack = &yyptr->Stack_alloc;                                    \
1007         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1008         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1009       }                                                                 \
1010     while (0)
1011
1012 #endif
1013
1014 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1015 /* Copy COUNT objects from SRC to DST.  The source and destination do
1016    not overlap.  */
1017 # ifndef YYCOPY
1018 #  if defined __GNUC__ && 1 < __GNUC__
1019 #   define YYCOPY(Dst, Src, Count) \
1020       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1021 #  else
1022 #   define YYCOPY(Dst, Src, Count)              \
1023       do                                        \
1024         {                                       \
1025           YYPTRDIFF_T yyi;                      \
1026           for (yyi = 0; yyi < (Count); yyi++)   \
1027             (Dst)[yyi] = (Src)[yyi];            \
1028         }                                       \
1029       while (0)
1030 #  endif
1031 # endif
1032 #endif /* !YYCOPY_NEEDED */
1033
1034 /* YYFINAL -- State number of the termination state.  */
1035 #define YYFINAL  442
1036 /* YYLAST -- Last index in YYTABLE.  */
1037 #define YYLAST   12453
1038
1039 /* YYNTOKENS -- Number of terminals.  */
1040 #define YYNTOKENS  455
1041 /* YYNNTS -- Number of nonterminals.  */
1042 #define YYNNTS  131
1043 /* YYNRULES -- Number of rules.  */
1044 #define YYNRULES  684
1045 /* YYNSTATES -- Number of states.  */
1046 #define YYNSTATES  930
1047
1048 /* YYMAXUTOK -- Last valid token kind.  */
1049 #define YYMAXUTOK   709
1050
1051
1052 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1053    as returned by yylex, with out-of-bounds checking.  */
1054 #define YYTRANSLATE(YYX)                                \
1055   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1056    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1057    : YYSYMBOL_YYUNDEF)
1058
1059 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1060    as returned by yylex.  */
1061 static const yytype_int16 yytranslate[] =
1062 {
1063        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1064        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1065        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1066        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1067        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1068        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1069        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1070        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1071        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1072        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1073        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1074        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1075        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1076        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1077        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1078        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1079        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1080        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1081        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1082        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1083        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1084        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1085        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1086        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1087        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1088        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
1089        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1090       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1091       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1092       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1093       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1094       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1095       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1096       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1097       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1098       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1099      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1100      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1101      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1102      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1103      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1104      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1105      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1106      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1107      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1108      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1109      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1110      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1111      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1112      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1113      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1114      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1115      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1116      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1117      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1118      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1119      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1120      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1121      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1122      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1123      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1124      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1125      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1126      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1127      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1128      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1129      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1130      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1131      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1132      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1133      445,   446,   447,   448,   449,   450,   451,   452,   453,   454
1134 };
1135
1136 #if YYDEBUG
1137   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1138 static const yytype_int16 yyrline[] =
1139 {
1140        0,   392,   392,   398,   401,   406,   409,   412,   416,   420,
1141      423,   427,   431,   435,   439,   443,   447,   453,   461,   464,
1142      467,   470,   473,   478,   486,   493,   500,   506,   510,   517,
1143      520,   526,   533,   543,   551,   556,   584,   593,   599,   603,
1144      607,   627,   628,   629,   630,   636,   637,   642,   647,   656,
1145      657,   662,   670,   671,   677,   686,   687,   692,   697,   702,
1146      710,   711,   720,   732,   733,   742,   743,   752,   753,   762,
1147      763,   771,   772,   780,   781,   789,   790,   790,   808,   809,
1148      825,   829,   833,   837,   842,   846,   850,   854,   858,   862,
1149      866,   873,   876,   887,   894,   900,   907,   913,   918,   925,
1150      929,   933,   937,   942,   947,   956,   956,   967,   971,   978,
1151      982,   988,   994,  1004,  1007,  1014,  1022,  1042,  1065,  1080,
1152     1105,  1116,  1126,  1136,  1146,  1155,  1158,  1162,  1166,  1171,
1153     1179,  1186,  1191,  1196,  1201,  1210,  1220,  1247,  1256,  1263,
1154     1271,  1278,  1285,  1293,  1303,  1310,  1321,  1327,  1330,  1337,
1155     1341,  1345,  1354,  1364,  1367,  1378,  1381,  1384,  1388,  1392,
1156     1397,  1401,  1404,  1409,  1413,  1418,  1427,  1431,  1436,  1442,
1157     1448,  1455,  1460,  1468,  1474,  1486,  1500,  1506,  1511,  1519,
1158     1527,  1535,  1543,  1551,  1559,  1567,  1575,  1582,  1589,  1593,
1159     1598,  1603,  1608,  1613,  1618,  1623,  1627,  1631,  1635,  1639,
1160     1645,  1656,  1663,  1666,  1675,  1680,  1690,  1695,  1703,  1707,
1161     1717,  1720,  1726,  1732,  1739,  1749,  1753,  1757,  1761,  1766,
1162     1770,  1775,  1780,  1785,  1790,  1795,  1800,  1805,  1810,  1815,
1163     1821,  1827,  1833,  1838,  1843,  1848,  1853,  1858,  1863,  1868,
1164     1873,  1878,  1883,  1888,  1894,  1901,  1906,  1911,  1916,  1921,
1165     1926,  1931,  1936,  1941,  1946,  1951,  1956,  1964,  1972,  1980,
1166     1986,  1992,  1998,  2004,  2010,  2016,  2022,  2028,  2034,  2040,
1167     2046,  2052,  2058,  2064,  2070,  2076,  2082,  2088,  2094,  2100,
1168     2106,  2112,  2118,  2124,  2130,  2136,  2142,  2148,  2154,  2160,
1169     2166,  2172,  2178,  2186,  2194,  2202,  2210,  2218,  2226,  2234,
1170     2242,  2250,  2258,  2266,  2274,  2280,  2286,  2292,  2298,  2304,
1171     2310,  2316,  2322,  2328,  2334,  2340,  2346,  2352,  2358,  2364,
1172     2370,  2376,  2382,  2388,  2394,  2400,  2406,  2412,  2418,  2424,
1173     2430,  2436,  2442,  2448,  2454,  2460,  2466,  2472,  2478,  2484,
1174     2490,  2494,  2498,  2502,  2507,  2513,  2518,  2523,  2528,  2533,
1175     2538,  2543,  2549,  2554,  2559,  2564,  2569,  2574,  2580,  2586,
1176     2592,  2598,  2604,  2610,  2616,  2622,  2628,  2634,  2640,  2646,
1177     2652,  2658,  2663,  2668,  2673,  2678,  2683,  2688,  2694,  2699,
1178     2704,  2709,  2714,  2719,  2724,  2729,  2735,  2740,  2745,  2750,
1179     2755,  2760,  2765,  2770,  2775,  2780,  2785,  2790,  2795,  2800,
1180     2805,  2811,  2816,  2821,  2827,  2833,  2838,  2843,  2848,  2854,
1181     2859,  2864,  2869,  2875,  2880,  2885,  2890,  2896,  2901,  2906,
1182     2911,  2917,  2923,  2929,  2935,  2940,  2946,  2952,  2958,  2963,
1183     2968,  2973,  2978,  2983,  2989,  2994,  2999,  3004,  3010,  3015,
1184     3020,  3025,  3031,  3036,  3041,  3046,  3052,  3057,  3062,  3067,
1185     3073,  3078,  3083,  3088,  3094,  3099,  3104,  3109,  3115,  3120,
1186     3125,  3130,  3136,  3141,  3146,  3151,  3157,  3162,  3167,  3172,
1187     3178,  3183,  3188,  3193,  3199,  3204,  3209,  3214,  3220,  3225,
1188     3230,  3235,  3241,  3246,  3251,  3256,  3262,  3267,  3272,  3277,
1189     3283,  3288,  3293,  3298,  3303,  3308,  3313,  3318,  3323,  3328,
1190     3333,  3338,  3343,  3348,  3353,  3358,  3363,  3368,  3373,  3378,
1191     3383,  3388,  3393,  3398,  3403,  3409,  3415,  3421,  3427,  3434,
1192     3441,  3447,  3453,  3459,  3465,  3471,  3477,  3483,  3488,  3493,
1193     3509,  3514,  3519,  3527,  3527,  3538,  3538,  3548,  3551,  3564,
1194     3586,  3613,  3617,  3623,  3628,  3639,  3643,  3649,  3655,  3666,
1195     3669,  3676,  3680,  3681,  3687,  3688,  3689,  3690,  3691,  3692,
1196     3693,  3695,  3701,  3710,  3711,  3715,  3711,  3727,  3728,  3732,
1197     3732,  3739,  3739,  3753,  3756,  3764,  3772,  3783,  3784,  3788,
1198     3792,  3800,  3807,  3811,  3819,  3823,  3836,  3840,  3848,  3848,
1199     3868,  3871,  3877,  3889,  3901,  3905,  3913,  3913,  3928,  3928,
1200     3946,  3946,  3967,  3970,  3976,  3979,  3985,  3989,  3996,  4001,
1201     4006,  4013,  4016,  4020,  4025,  4029,  4039,  4043,  4052,  4055,
1202     4059,  4068,  4068,  4110,  4115,  4118,  4123,  4126,  4133,  4136,
1203     4141,  4144,  4149,  4152,  4157,  4160,  4165,  4169,  4174,  4178,
1204     4183,  4187,  4194,  4197,  4202,  4205,  4208,  4211,  4214,  4219,
1205     4228,  4239,  4244,  4252,  4256,  4261,  4265,  4270,  4274,  4279,
1206     4283,  4290,  4293,  4298,  4301,  4304,  4307,  4312,  4320,  4330,
1207     4334,  4339,  4343,  4348,  4352,  4359,  4362,  4367,  4370,  4375,
1208     4378,  4384,  4387,  4392,  4395
1209 };
1210 #endif
1211
1212 /** Accessing symbol of state STATE.  */
1213 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1214
1215 #if 1
1216 /* The user-facing name of the symbol whose (internal) number is
1217    YYSYMBOL.  No bounds checking.  */
1218 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1219
1220 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1221    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1222 static const char *const yytname[] =
1223 {
1224   "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1225   "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1226   "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1227   "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1228   "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1229   "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1230   "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1231   "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1232   "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1233   "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1234   "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1235   "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1236   "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
1237   "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
1238   "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
1239   "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
1240   "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
1241   "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
1242   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1243   "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1244   "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1245   "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
1246   "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
1247   "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
1248   "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
1249   "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
1250   "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
1251   "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
1252   "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
1253   "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
1254   "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
1255   "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
1256   "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
1257   "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1258   "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
1259   "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1260   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1261   "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
1262   "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1263   "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1264   "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1265   "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1266   "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1267   "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1268   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1269   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1270   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1271   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1272   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1273   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1274   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1275   "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1276   "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1277   "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1278   "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1279   "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1280   "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1281   "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1282   "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1283   "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1284   "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1285   "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1286   "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1287   "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1288   "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1289   "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1290   "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1291   "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1292   "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1293   "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1294   "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1295   "F16SUBPASSINPUTMS", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE",
1296   "SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID",
1297   "SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS",
1298   "SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "LEFT_OP", "RIGHT_OP", "INC_OP",
1299   "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
1300   "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN",
1301   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
1302   "SUB_ASSIGN", "STRING_LITERAL", "LEFT_PAREN", "RIGHT_PAREN",
1303   "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
1304   "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
1305   "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
1306   "CARET", "AMPERSAND", "QUESTION", "INVARIANT", "HIGH_PRECISION",
1307   "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE",
1308   "SUPERP", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1309   "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1310   "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1311   "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
1312   "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
1313   "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1314   "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1315   "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1316   "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1317   "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1318   "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1319   "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1320   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1321   "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1322   "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1323   "$accept", "variable_identifier", "primary_expression",
1324   "postfix_expression", "integer_expression", "function_call",
1325   "function_call_or_method", "function_call_generic",
1326   "function_call_header_no_parameters",
1327   "function_call_header_with_parameters", "function_call_header",
1328   "function_identifier", "unary_expression", "unary_operator",
1329   "multiplicative_expression", "additive_expression", "shift_expression",
1330   "relational_expression", "equality_expression", "and_expression",
1331   "exclusive_or_expression", "inclusive_or_expression",
1332   "logical_and_expression", "logical_xor_expression",
1333   "logical_or_expression", "conditional_expression", "$@1",
1334   "assignment_expression", "assignment_operator", "expression",
1335   "constant_expression", "declaration", "block_structure", "$@2",
1336   "identifier_list", "function_prototype", "function_declarator",
1337   "function_header_with_parameters", "function_header",
1338   "parameter_declarator", "parameter_declaration",
1339   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1340   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1341   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1342   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1343   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1344   "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1345   "type_parameter_specifier", "type_parameter_specifier_list",
1346   "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1347   "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1348   "struct_declarator_list", "struct_declarator", "initializer",
1349   "initializer_list", "declaration_statement", "statement",
1350   "simple_statement", "demote_statement", "compound_statement", "$@5",
1351   "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1352   "compound_statement_no_new_scope", "statement_list",
1353   "expression_statement", "selection_statement",
1354   "selection_statement_nonattributed", "selection_rest_statement",
1355   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1356   "switch_statement_list", "case_label", "iteration_statement",
1357   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1358   "for_init_statement", "conditionopt", "for_rest_statement",
1359   "jump_statement", "translation_unit", "external_declaration",
1360   "function_definition", "$@13", "attribute", "attribute_list",
1361   "single_attribute", "spirv_requirements_list",
1362   "spirv_requirements_parameter", "spirv_extension_list",
1363   "spirv_capability_list", "spirv_execution_mode_qualifier",
1364   "spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter",
1365   "spirv_execution_mode_id_parameter_list",
1366   "spirv_storage_class_qualifier", "spirv_decorate_qualifier",
1367   "spirv_decorate_parameter_list", "spirv_decorate_parameter",
1368   "spirv_decorate_id_parameter_list",
1369   "spirv_decorate_string_parameter_list", "spirv_type_specifier",
1370   "spirv_type_parameter_list", "spirv_type_parameter",
1371   "spirv_instruction_qualifier", "spirv_instruction_qualifier_list",
1372   "spirv_instruction_qualifier_id", YY_NULLPTR
1373 };
1374
1375 static const char *
1376 yysymbol_name (yysymbol_kind_t yysymbol)
1377 {
1378   return yytname[yysymbol];
1379 }
1380 #endif
1381
1382 #ifdef YYPRINT
1383 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1384    (internal) symbol number NUM (which must be that of a token).  */
1385 static const yytype_int16 yytoknum[] =
1386 {
1387        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1388      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1389      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1390      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1391      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1392      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1393      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1394      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1395      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1396      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1397      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1398      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1399      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1400      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1401      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1402      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1403      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1404      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1405      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1406      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1407      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1408      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1409      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1410      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1411      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1412      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1413      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1414      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1415      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1416      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1417      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1418      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1419      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1420      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1421      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1422      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1423      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1424      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1425      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1426      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1427      655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
1428      665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
1429      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
1430      685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
1431      695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
1432      705,   706,   707,   708,   709
1433 };
1434 #endif
1435
1436 #define YYPACT_NINF (-863)
1437
1438 #define yypact_value_is_default(Yyn) \
1439   ((Yyn) == YYPACT_NINF)
1440
1441 #define YYTABLE_NINF (-570)
1442
1443 #define yytable_value_is_error(Yyn) \
1444   0
1445
1446   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1447      STATE-NUM.  */
1448 static const yytype_int16 yypact[] =
1449 {
1450     4549,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1451     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1452     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1453     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1454     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1455     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1456     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1457     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1458     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1459     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1460     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1461     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1462     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1463     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1464     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1465     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1466     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1467     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1468     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1469     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1470     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1471     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1472     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1473     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1474     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1475     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1476     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1477     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1478     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1479     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1480     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1481     -863,  -863,  -863,  -863,  -863,  -260,  -182,  -177,  -163,  -130,
1482     -115,  -100,   -89,  -863,  -863,  -196,  -863,  -863,  -863,  -863,
1483     -863,  -324,  -863,  -863,  -863,  -863,  -863,  -306,  -863,  -863,
1484     -863,  -863,  -863,  -863,   -77,   -66,  -863,  -863,  -863,  -863,
1485     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1486     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1487     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -332,  -175,
1488     -153,  -161,  7713,  -266,  -863,   -71,  -863,  -863,  -863,  -863,
1489     5453,  -863,  -863,  -863,  -863,  -116,  -863,  -863,   933,  -863,
1490     -863,  7713,   -35,  -863,  -863,  -863,  5905,   -54,  -139,  -138,
1491     -137,  -128,  -124,   -54,  -123,   -51, 12061,  -863,   -15,  -347,
1492      -44,  -863,  -295,  -863,    -9,    -6,  7713,  -863,  -863,  -863,
1493     7713,   -39,   -38,  -863,  -303,  -863,  -226,  -863,  -863, 10762,
1494       -3,  -863,  -863,  -863,     1,   -32,  7713,  -863,    -5,    -8,
1495       -1,  -863,  -230,  -863,  -219,    -2,     3,     4,     5,  -215,
1496        6,     8,    10,    11,    12,    15,  -214,    13,    16,    21,
1497     -134,  -863,    17,  7713,  -863,    19,  -863,  -212,  -863,  -863,
1498     -211,  9030,  -863,  -273,  1385,  -863,  -863,  -863,  -863,  -863,
1499       -3,  -263,  -863,  9463,  -236,  -863,   -28,  -863,  -106, 10762,
1500    10762,  -863, 10762,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1501     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1502     -863,  -863,  -264,  -863,  -863,  -863,    23,  -203, 11195,    25,
1503     -863, 10762,  -863,  -863,  -311,    24,    -6,    29,  -863,  -309,
1504      -54,  -863,   -20,  -863,  -323,    28,  -118, 10762,  -112,  -863,
1505     -155,  -111, 10762,  -103,    35,   -98,   -54,  -863, 11628,  -863,
1506      -94, 10762,    32,   -51,  -863,  7713,    18,  6357,  -863,  7713,
1507    10762,  -863,  -347,  -863,    33,  -863,  -863,   -72,  -254,   -86,
1508     -297,   -68,   -13,    26,    20,    50,    49,  -300,    42,  9896,
1509     -863,    43,  -863,  -863,    55,    58,    60,  -863,    65,    71,
1510       62, 10329,    73, 10762,    66,    69,    70,    72,    74,  -241,
1511     -863,  -863,   -41,  -863,  -175,    83,    85,  -863,  -863,  -863,
1512     -863,  -863,  1837,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1513     -863,  -863,  5001,    24,  9463,  -233,  8164,  -863,  -863,  9463,
1514     7713,  -863,    51,  -863,  -863,  -863,  -194,  -863,  -863, 10762,
1515       52,  -863,  -863, 10762,    88,  -863,  -863,  -863, 10762,  -863,
1516     -863,  -863,  -315,  -863,  -863,  -191,    82,  -863,  -863,  -863,
1517     -863,  -863,  -863,  -190,  -863,  -187,  -863,  -863,  -186,    86,
1518     -863,  -863,  -863,  -863,  -169,  -863,  -168,  -863,  -167,    89,
1519     -863,  -165,    91,  -157,    82,  -863,    85,  -156,  -863,    94,
1520       98,  -863,  -863,    18,    -3,   -40,  -863,  -863,  -863,  6809,
1521     -863,  -863,  -863, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
1522    10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
1523    10762, 10762,  -863,  -863,  -863,    97,  -863,  2289,  -863,  -863,
1524     -863,  2289,  -863, 10762,  -863,  -863,   -34, 10762,   -79,  -863,
1525     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1526     -863,  -863,  -863,  -863,  -863, 10762, 10762,  -863,  -863,  -863,
1527     -863,  -863,  -863,  -863,  9463,  -863,  -863,  -208,  -863,  7261,
1528     -863,  -863,    99,    96,  -863,  -863,  -863,  -863,  -863,  -132,
1529     -131,  -863,  -307,  -863,  -323,  -863,  -323,  -863, 10762, 10762,
1530     -863,  -155,  -863,  -155,  -863, 10762, 10762,  -863,    93,    35,
1531     -863, 11628,  -863, 10762,  -863,  -863,   -33,    24,    18,  -863,
1532     -863,  -863,  -863,  -863,   -72,   -72,  -254,  -254,   -86,   -86,
1533      -86,   -86,  -297,  -297,   -68,   -13,    26,    20,    50,    49,
1534    10762,  -863,  2289,  4097,    57,  3645,  -154,  -863,  -152,  -863,
1535     -863,  -863,  -863,  -863,  8597,  -863,  -863,  -863,   105,  -863,
1536       75,  -863,  -145,  -863,  -144,  -863,  -143,  -863,  -142,  -863,
1537     -141,  -140,  -863,  -863,  -863,   -27,   100,    96,    76,   106,
1538      109,  -863,  -863,  4097,   107,  -863,  -863,  -863,  -863,  -863,
1539     -863,  -863,  -863,  -863,  -863,  -863, 10762,  -863,   101,  2741,
1540    10762,  -863,   103,   113,    67,   112,  3193,  -863,   114,  -863,
1541     9463,  -863,  -863,  -863,  -133, 10762,  2741,   107,  -863,  -863,
1542     2289,  -863,   110,    96,  -863,  -863,  2289,   116,  -863,  -863
1543 };
1544
1545   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1546      Performed when YYTABLE does not specify something else to do.  Zero
1547      means the default is an error.  */
1548 static const yytype_int16 yydefact[] =
1549 {
1550        0,   166,   219,   217,   218,   216,   223,   224,   225,   226,
1551      227,   228,   229,   230,   231,   220,   221,   222,   232,   233,
1552      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1553      345,   346,   347,   348,   349,   350,   351,   371,   372,   373,
1554      374,   375,   376,   377,   386,   399,   400,   387,   388,   390,
1555      389,   391,   392,   393,   394,   395,   396,   397,   398,   174,
1556      175,   245,   246,   244,   247,   254,   255,   252,   253,   250,
1557      251,   248,   249,   277,   278,   279,   289,   290,   291,   274,
1558      275,   276,   286,   287,   288,   271,   272,   273,   283,   284,
1559      285,   268,   269,   270,   280,   281,   282,   256,   257,   258,
1560      292,   293,   294,   259,   260,   261,   304,   305,   306,   262,
1561      263,   264,   316,   317,   318,   265,   266,   267,   328,   329,
1562      330,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1563      307,   308,   309,   310,   311,   312,   313,   314,   315,   319,
1564      320,   321,   322,   323,   324,   325,   326,   327,   331,   332,
1565      333,   334,   335,   336,   337,   338,   339,   343,   340,   341,
1566      342,   524,   525,   526,   355,   356,   379,   382,   344,   353,
1567      354,   370,   352,   401,   402,   405,   406,   407,   409,   410,
1568      411,   413,   414,   415,   417,   418,   514,   515,   378,   380,
1569      381,   357,   358,   359,   403,   360,   364,   365,   368,   408,
1570      412,   416,   361,   362,   366,   367,   404,   363,   369,   448,
1571      450,   451,   452,   454,   455,   456,   458,   459,   460,   462,
1572      463,   464,   466,   467,   468,   470,   471,   472,   474,   475,
1573      476,   478,   479,   480,   482,   483,   484,   486,   487,   488,
1574      490,   491,   449,   453,   457,   461,   465,   473,   477,   481,
1575      469,   485,   489,   492,   493,   494,   495,   496,   497,   498,
1576      499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
1577      509,   510,   511,   512,   513,   383,   384,   385,   419,   428,
1578      430,   424,   429,   431,   432,   434,   435,   436,   438,   439,
1579      440,   442,   443,   444,   446,   447,   420,   421,   422,   433,
1580      423,   425,   426,   427,   437,   441,   445,   516,   517,   520,
1581      521,   522,   523,   518,   519,     0,     0,     0,     0,     0,
1582        0,     0,     0,   164,   165,     0,   620,   137,   530,   531,
1583      532,     0,   529,   170,   168,   169,   167,     0,   215,   171,
1584      172,   173,   139,   138,     0,   199,   180,   182,   178,   184,
1585      186,   181,   183,   179,   185,   187,   176,   177,   201,   188,
1586      195,   196,   197,   198,   189,   190,   191,   192,   193,   194,
1587      140,   141,   142,   143,   144,   145,   152,   619,     0,   621,
1588        0,   114,   113,     0,   125,   130,   159,   158,   156,   160,
1589        0,   153,   155,   161,   135,   211,   157,   528,     0,   616,
1590      618,     0,     0,   162,   163,   527,     0,     0,     0,     0,
1591        0,     0,     0,     0,     0,     0,     0,   535,     0,     0,
1592        0,    99,     0,    94,     0,   109,     0,   121,   115,   123,
1593        0,   124,     0,    97,   131,   102,     0,   154,   136,     0,
1594      204,   210,     1,   617,     0,     0,     0,    96,     0,     0,
1595        0,   628,     0,   681,     0,     0,     0,     0,     0,     0,
1596        0,     0,     0,     0,     0,     0,     0,     0,     0,   626,
1597        0,   624,     0,     0,   533,   149,   151,     0,   147,   202,
1598        0,     0,   100,     0,     0,   622,   110,   116,   120,   122,
1599      118,   126,   117,     0,   132,   105,     0,   103,     0,     0,
1600        0,     9,     0,    43,    42,    44,    41,     5,     6,     7,
1601        8,     2,    16,    14,    15,    17,    10,    11,    12,    13,
1602        3,    18,    37,    20,    25,    26,     0,     0,    30,     0,
1603      213,     0,    36,    34,     0,   205,   111,     0,    95,     0,
1604        0,   679,     0,   636,     0,     0,     0,     0,     0,   653,
1605        0,     0,     0,     0,     0,     0,     0,   673,     0,   651,
1606        0,     0,     0,     0,    98,     0,     0,     0,   537,     0,
1607        0,   146,     0,   200,     0,   206,    45,    49,    52,    55,
1608       60,    63,    65,    67,    69,    71,    73,    75,     0,     0,
1609      101,   564,   573,   577,     0,     0,     0,   598,     0,     0,
1610        0,     0,     0,     0,     0,     0,     0,     0,     0,    45,
1611       78,    91,     0,   551,     0,   161,   135,   554,   575,   553,
1612      561,   552,     0,   555,   556,   579,   557,   586,   558,   559,
1613      594,   560,     0,   119,     0,   127,     0,   545,   134,     0,
1614        0,   107,     0,   104,    38,    39,     0,    22,    23,     0,
1615        0,    28,    27,     0,   215,    31,    33,    40,     0,   212,
1616      112,   683,     0,   684,   629,     0,     0,   682,   648,   644,
1617      645,   646,   647,     0,   642,     0,    93,   649,     0,     0,
1618      663,   664,   665,   666,     0,   661,     0,   667,     0,     0,
1619      669,     0,     0,     0,     2,   677,   678,     0,   675,     0,
1620        0,   623,   625,     0,   543,     0,   541,   536,   538,     0,
1621      150,   148,   203,     0,     0,     0,     0,     0,     0,     0,
1622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1623        0,     0,    76,   207,   208,     0,   563,     0,   596,   609,
1624      608,     0,   600,     0,   612,   610,     0,     0,     0,   593,
1625      613,   614,   615,   562,    81,    82,    84,    83,    86,    87,
1626       88,    89,    90,    85,    80,     0,     0,   578,   574,   576,
1627      580,   587,   595,   129,     0,   548,   549,     0,   133,     0,
1628      108,     4,     0,    24,    21,    32,   214,   632,   634,     0,
1629        0,   680,     0,   638,     0,   637,     0,   640,     0,     0,
1630      655,     0,   654,     0,   657,     0,     0,   659,     0,     0,
1631      674,     0,   671,     0,   652,   627,     0,   544,     0,   539,
1632      534,    46,    47,    48,    51,    50,    53,    54,    58,    59,
1633       56,    57,    61,    62,    64,    66,    68,    70,    72,    74,
1634        0,   209,   565,     0,     0,     0,     0,   611,     0,   592,
1635       79,    92,   128,   546,     0,   106,    19,   630,     0,   631,
1636        0,   643,     0,   650,     0,   662,     0,   668,     0,   670,
1637        0,     0,   676,   540,   542,     0,     0,   584,     0,     0,
1638        0,   603,   602,   605,   571,   588,   547,   550,   633,   635,
1639      639,   641,   656,   658,   660,   672,     0,   566,     0,     0,
1640        0,   604,     0,     0,   583,     0,     0,   581,     0,    77,
1641        0,   568,   597,   567,     0,   606,     0,   571,   570,   572,
1642      590,   585,     0,   607,   601,   582,   591,     0,   599,   589
1643 };
1644
1645   /* YYPGOTO[NTERM-NUM].  */
1646 static const yytype_int16 yypgoto[] =
1647 {
1648     -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,  -863,
1649     -863,  -863,  -418,  -863,  -380,  -379,  -484,  -382,  -258,  -256,
1650     -253,  -257,  -252,  -255,  -863,  -478,  -863,  -485,  -863,  -491,
1651     -530,    14,  -863,  -863,  -863,     7,  -397,  -863,  -863,    44,
1652       53,    47,  -863,  -863,  -400,  -863,  -863,  -863,  -863,   -92,
1653     -863,  -377,  -362,  -863,     9,  -863,     0,  -414,  -863,  -863,
1654     -863,  -863,   150,  -863,  -863,  -863,  -546,  -548,  -218,  -331,
1655     -624,  -863,  -359,  -609,  -862,  -863,  -417,  -863,  -863,  -427,
1656     -426,  -863,  -863,    68,  -719,  -355,  -863,  -136,  -863,  -389,
1657     -863,  -135,  -863,  -863,  -863,  -863,  -129,  -863,  -863,  -863,
1658     -863,  -863,  -863,  -863,  -863,   102,  -863,  -863,     2,  -863,
1659      -65,  -234,  -432,  -863,  -863,  -863,  -301,  -293,  -294,  -863,
1660     -863,  -304,  -299,  -302,  -298,  -863,  -296,  -305,  -863,  -383,
1661     -526
1662 };
1663
1664   /* YYDEFGOTO[NTERM-NUM].  */
1665 static const yytype_int16 yydefgoto[] =
1666 {
1667       -1,   520,   521,   522,   782,   523,   524,   525,   526,   527,
1668      528,   529,   609,   531,   577,   578,   579,   580,   581,   582,
1669      583,   584,   585,   586,   587,   610,   840,   611,   765,   612,
1670      695,   613,   378,   640,   498,   614,   380,   381,   382,   427,
1671      428,   429,   383,   384,   385,   386,   387,   388,   477,   478,
1672      389,   390,   391,   392,   532,   480,   533,   483,   440,   441,
1673      534,   395,   396,   397,   569,   473,   567,   568,   705,   706,
1674      638,   777,   617,   618,   619,   620,   621,   737,   876,   912,
1675      904,   905,   906,   913,   622,   623,   624,   625,   907,   879,
1676      626,   627,   908,   927,   628,   629,   630,   843,   741,   845,
1677      883,   902,   903,   631,   398,   399,   400,   424,   632,   470,
1678      471,   450,   451,   789,   790,   402,   673,   674,   678,   403,
1679      404,   684,   685,   688,   691,   405,   697,   698,   406,   452,
1680      453
1681 };
1682
1683   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1684      positive, shift that token.  If negative, reduce the rule whose
1685      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1686 static const yytype_int16 yytable[] =
1687 {
1688      394,   445,   401,   588,   444,   430,   445,   379,   637,   393,
1689      773,   646,   776,   769,   377,   778,   667,   677,   842,   708,
1690      494,   530,   687,   709,   446,   668,   535,   421,   437,   446,
1691      466,   700,   667,   787,   720,   721,   731,   911,   475,   661,
1692      710,   661,   662,   655,   919,   658,   492,   417,   481,   430,
1693      328,   329,   330,   422,   911,   493,   481,   659,   669,   670,
1694      671,   672,   476,   576,   482,   647,   648,   788,   437,   676,
1695      722,   723,   732,   663,   676,   663,   633,   635,   589,   418,
1696      676,   644,   645,   676,   437,   -35,   590,   649,   481,   407,
1697      432,   650,   676,   433,   779,   634,   565,   754,   755,   756,
1698      757,   758,   759,   760,   761,   762,   763,   716,   664,   717,
1699      746,   735,   748,   657,   664,   589,   664,   764,   589,   664,
1700      541,   664,   639,   664,   664,   774,   542,   495,   664,   576,
1701      496,   543,   844,   497,   576,   549,   557,   544,   571,   573,
1702      576,   550,   558,   576,   572,   574,   853,   652,   854,   637,
1703      852,   637,   576,   653,   637,   415,   781,   665,   783,   791,
1704      793,   708,   766,   795,   797,   542,   794,   408,   785,   796,
1705      798,   576,   409,   693,   456,   458,   460,   462,   464,   465,
1706      468,   800,   802,   804,   423,   807,   410,   801,   803,   805,
1707      565,   808,   565,   810,   812,   426,   884,   425,   885,   811,
1708      813,   926,   766,   437,   766,   890,   891,   892,   893,   894,
1709      895,   794,   798,   801,   805,   808,   813,   922,   562,   411,
1710      857,   859,   563,   766,   858,   860,   680,   681,   682,   683,
1711      887,   708,   445,   769,   412,   444,   828,   829,   830,   831,
1712      786,   718,   719,   454,   457,   459,   455,   455,   455,   413,
1713      642,   439,   846,   643,   461,   446,   848,   455,   463,   467,
1714      414,   455,   455,   565,   675,   724,   725,   455,   863,   677,
1715      679,   686,   419,   455,   455,   867,   687,   766,   849,   689,
1716      850,   851,   455,   420,   692,   667,   921,   455,   699,   637,
1717      817,   455,   713,   714,   715,   821,   822,   823,   576,   576,
1718      576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
1719      576,   576,   576,   576,   434,   766,   818,   769,   767,   819,
1720      676,   676,   766,   818,   447,   847,   873,   676,   676,   766,
1721      896,   449,   565,   676,   469,   676,   824,   825,   474,   826,
1722      827,   479,   832,   833,   484,   325,   490,   491,   481,   875,
1723      539,   536,   877,   537,   538,   540,   545,   641,   726,   546,
1724      547,   548,   551,   559,   552,   666,   553,   554,   555,   637,
1725      561,   556,   560,   651,   656,   589,   564,   570,   492,   662,
1726      576,   576,   431,   690,   701,   729,   730,   576,   576,   728,
1727      438,   393,   877,   576,   733,   576,   727,   736,   394,   393,
1728      401,   394,   565,   704,   738,   379,   394,   393,   401,   914,
1729      393,   909,   377,   448,   742,   393,   472,   739,   712,   740,
1730      743,   744,   747,   749,   923,   637,   431,   486,   750,   751,
1731      431,   752,   -36,   753,   -34,   393,   780,   784,   -29,   393,
1732      792,   869,   799,   878,   814,   806,   438,   809,   815,   841,
1733      880,   856,   766,   888,   897,   393,   899,   889,   900,   910,
1734     -569,   898,   915,   916,   917,   591,   446,   920,   834,   928,
1735      929,   835,   837,   566,   488,   836,   839,   489,   838,   487,
1736      711,   416,   393,   878,   616,   816,   881,   874,   918,   924,
1737      882,   925,   485,   615,   901,   862,   770,   771,   702,   866,
1738      443,   861,   865,   772,   868,   864,   446,     0,   872,     0,
1739        0,   870,     0,     0,     0,   871,     0,     0,     0,     0,
1740        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741        0,     0,     0,     0,     0,     0,     0,     0,   660,     0,
1742        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743        0,     0,     0,     0,     0,     0,     0,     0,   696,     0,
1744        0,     0,     0,     0,     0,   703,     0,   566,     0,   566,
1745        0,     0,     0,     0,   393,     0,   393,     0,   393,     0,
1746        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1747        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1748        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750        0,     0,   616,     0,     0,     0,     0,     0,     0,     0,
1751        0,   615,   394,     0,     0,     0,     0,     0,     0,     0,
1752      566,   393,     0,     0,     0,     0,     0,     0,     0,   393,
1753        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1754        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1755        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1758        0,     0,     0,     0,     0,     0,     0,     0,     0,   566,
1759        0,     0,     0,     0,     0,     0,     0,     0,   393,     0,
1760        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1761        0,     0,     0,     0,     0,     0,     0,   616,     0,     0,
1762        0,   616,     0,     0,     0,     0,   615,     0,     0,     0,
1763      615,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,     0,     0,     0,     0,     0,     0,     0,     0,   566,
1766        0,     0,     0,     0,     0,     0,     0,     0,   393,     0,
1767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769        0,   696,     0,   696,     0,     0,     0,     0,     0,     0,
1770        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772        0,     0,   616,   616,     0,   616,     0,   401,     0,     0,
1773        0,   615,   615,     0,   615,     0,     0,     0,     0,     0,
1774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1775        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776        0,     0,     0,   616,     0,     0,     0,     0,     0,     0,
1777        0,     0,   615,     0,     0,     0,     0,     0,     0,   616,
1778        0,     0,     0,     0,     0,     0,   616,     0,   615,     0,
1779        0,     0,     0,     0,     0,   615,   616,     0,     0,     0,
1780      616,     0,     0,     0,     0,   615,   616,     0,     0,   615,
1781        0,     0,     0,   442,     0,   615,     1,     2,     3,     4,
1782        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1783       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1784       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1785       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1786       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1787       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1788       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1789       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1790       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1791       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1792      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1793      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1794      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1795      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1796      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1797      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1798      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1799      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1800      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1801      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1802      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1803      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1804      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1805      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1806      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1807      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1808      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1809      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1810      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1811      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1812      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1813      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1814        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816        0,     0,     0,     0,   325,     0,     0,     0,     0,     0,
1817        0,     0,   326,     0,     0,     0,     0,     0,     0,     0,
1818        0,     0,     0,     0,     0,     0,   327,   328,   329,   330,
1819      331,     0,     0,     0,     0,     0,     0,     0,     0,   332,
1820      333,   334,   335,   336,   337,   338,     0,     0,     0,     0,
1821        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1822        0,   339,   340,   341,   342,   343,   344,     0,     0,     0,
1823        0,     0,     0,     0,     0,   345,     0,   346,   347,   348,
1824      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1825      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
1826      369,   370,   371,   372,   373,   374,   375,   376,     1,     2,
1827        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1828       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1829       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1830       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1831       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1832       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1833       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1834       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1835       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1836       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1837      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1838      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1839      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1840      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1841      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1842      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1843      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1844      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1845      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1846      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1847      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1848      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1849      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1850      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1851      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1852      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1853      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1854      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1855      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1856      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1857      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1858      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1859      323,   324,     0,     0,   499,   500,     0,     0,     0,     0,
1860        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1861        0,     0,     0,   501,   502,     0,   325,     0,   591,   592,
1862        0,     0,     0,     0,   593,   503,   504,   505,   506,     0,
1863        0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
1864      329,   330,   331,     0,     0,     0,   507,   508,   509,   510,
1865      511,   332,   333,   334,   335,   336,   337,   338,   594,   595,
1866      596,   597,     0,   598,   599,   600,   601,   602,   603,   604,
1867      605,   606,   607,   339,   340,   341,   342,   343,   344,   512,
1868      513,   514,   515,   516,   517,   518,   519,   345,   608,   346,
1869      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1870      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1871      367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
1872        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1873       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1874       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1875       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1876       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1877       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1878       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1879       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1880       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1881       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1882      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1883      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1884      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1885      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1886      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1887      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1888      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1889      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1890      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1891      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1892      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1893      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1894      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1895      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1896      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1897      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1898      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1899      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1900      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
1901      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
1902      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
1903      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
1904      321,   322,   323,   324,     0,     0,   499,   500,     0,     0,
1905        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1906        0,     0,     0,     0,     0,   501,   502,     0,   325,     0,
1907      591,   768,     0,     0,     0,     0,   593,   503,   504,   505,
1908      506,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1909      327,   328,   329,   330,   331,     0,     0,     0,   507,   508,
1910      509,   510,   511,   332,   333,   334,   335,   336,   337,   338,
1911      594,   595,   596,   597,     0,   598,   599,   600,   601,   602,
1912      603,   604,   605,   606,   607,   339,   340,   341,   342,   343,
1913      344,   512,   513,   514,   515,   516,   517,   518,   519,   345,
1914      608,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1915      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1916      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1917      375,   376,     1,     2,     3,     4,     5,     6,     7,     8,
1918        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1919       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1920       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1921       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1922       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1923       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1924       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1925       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1926       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1927       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1928      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1929      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1930      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1931      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1932      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1933      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1934      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1935      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1936      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1937      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1938      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1939      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1940      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1941      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1942      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1943      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1944      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1945      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1946      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1947      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1948      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1949      319,   320,   321,   322,   323,   324,     0,     0,   499,   500,
1950        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1951        0,     0,     0,     0,     0,     0,     0,   501,   502,     0,
1952      325,     0,   591,     0,     0,     0,     0,     0,   593,   503,
1953      504,   505,   506,     0,     0,     0,     0,     0,     0,     0,
1954        0,     0,   327,   328,   329,   330,   331,     0,     0,     0,
1955      507,   508,   509,   510,   511,   332,   333,   334,   335,   336,
1956      337,   338,   594,   595,   596,   597,     0,   598,   599,   600,
1957      601,   602,   603,   604,   605,   606,   607,   339,   340,   341,
1958      342,   343,   344,   512,   513,   514,   515,   516,   517,   518,
1959      519,   345,   608,   346,   347,   348,   349,   350,   351,   352,
1960      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1961      363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
1962      373,   374,   375,   376,     1,     2,     3,     4,     5,     6,
1963        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1964       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1965       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1966       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1967       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1968       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1969       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1970       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1971       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1972       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1973      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1974      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1975      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1976      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1977      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1978      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1979      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1980      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1981      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1982      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1983      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1984      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1985      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1986      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1987      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1988      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1989      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1990      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1991      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1992      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
1993      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
1994      317,   318,   319,   320,   321,   322,   323,   324,     0,     0,
1995      499,   500,     0,     0,     0,     0,     0,     0,     0,     0,
1996        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
1997      502,     0,   325,     0,   484,     0,     0,     0,     0,     0,
1998      593,   503,   504,   505,   506,     0,     0,     0,     0,     0,
1999        0,     0,     0,     0,   327,   328,   329,   330,   331,     0,
2000        0,     0,   507,   508,   509,   510,   511,   332,   333,   334,
2001      335,   336,   337,   338,   594,   595,   596,   597,     0,   598,
2002      599,   600,   601,   602,   603,   604,   605,   606,   607,   339,
2003      340,   341,   342,   343,   344,   512,   513,   514,   515,   516,
2004      517,   518,   519,   345,   608,   346,   347,   348,   349,   350,
2005      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
2006      361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
2007      371,   372,   373,   374,   375,   376,     1,     2,     3,     4,
2008        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2009       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2010       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2011       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2012       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2013       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2014       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2015       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2016       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2017       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2018      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2019      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2020      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2021      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2022      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2023      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2024      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2025      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2026      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2027      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2028      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2029      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2030      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2031      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2032      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2033      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2034      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2035      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2036      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2037      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2038      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2039      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2040        0,     0,   499,   500,     0,     0,     0,     0,     0,     0,
2041        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2042        0,   501,   502,     0,   325,     0,     0,     0,     0,     0,
2043        0,     0,   593,   503,   504,   505,   506,     0,     0,     0,
2044        0,     0,     0,     0,     0,     0,   327,   328,   329,   330,
2045      331,     0,     0,     0,   507,   508,   509,   510,   511,   332,
2046      333,   334,   335,   336,   337,   338,   594,   595,   596,   597,
2047        0,   598,   599,   600,   601,   602,   603,   604,   605,   606,
2048      607,   339,   340,   341,   342,   343,   344,   512,   513,   514,
2049      515,   516,   517,   518,   519,   345,   608,   346,   347,   348,
2050      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2051      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2052      369,   370,   371,   372,   373,   374,   375,   376,     1,     2,
2053        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2054       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2055       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2056       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2057       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2058       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2059       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2060       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2061       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2062       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2063      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2064      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2065      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2066      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2067      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2068      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2069      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2070      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2071      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2072      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2073      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2074      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2075      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2076      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2077      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2078      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2079      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2080      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2081      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2082      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2083      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2084      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2085      323,   324,     0,     0,   499,   500,     0,     0,     0,     0,
2086        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2087        0,     0,     0,   501,   502,     0,   325,     0,     0,     0,
2088        0,     0,     0,     0,   593,   503,   504,   505,   506,     0,
2089        0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
2090      329,   330,   331,     0,     0,     0,   507,   508,   509,   510,
2091      511,   332,   333,   334,   335,   336,   337,   338,     0,     0,
2092        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2093        0,     0,     0,   339,   340,   341,   342,   343,   344,   512,
2094      513,   514,   515,   516,   517,   518,   519,   345,     0,   346,
2095      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2096      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
2097      367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
2098        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2099       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2100       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2101       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2102       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2103       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2104       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2105       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2106       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2107       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2108      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2109      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2110      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2111      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2112      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2113      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2114      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2115      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2116      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2117      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2118      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2119      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2120      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2121      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2122      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2123      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2124      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2125      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2126      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2127      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2128      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2129      311,   312,   313,   314,     0,     0,     0,   318,   319,   320,
2130      321,   322,   323,   324,     0,     0,   499,   500,     0,     0,
2131        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2132        0,     0,     0,     0,     0,   501,   502,     0,     0,     0,
2133        0,     0,     0,     0,     0,     0,     0,   503,   504,   505,
2134      506,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2135      327,   328,   329,   330,     0,     0,     0,     0,   507,   508,
2136      509,   510,   511,   332,   333,   334,   335,   336,   337,   338,
2137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2138        0,     0,     0,     0,     0,   339,   340,   341,   342,   343,
2139      344,   512,   513,   514,   515,   516,   517,   518,   519,   345,
2140        0,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2141      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
2142      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
2143      375,   376,     1,     2,     3,     4,     5,     6,     7,     8,
2144        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2145       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2146       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2147       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2148       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2149       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2150       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2151       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2152       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2153       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2154      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2155      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2156      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2157      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2158      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2159      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2160      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2161      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2162      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2163      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2164      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2165      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2166      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2167      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2168      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2169      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2170      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2171      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2172      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2173      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2174      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2175      319,   320,   321,   322,   323,   324,     0,     0,     0,     0,
2176        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2177        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2178      325,     0,     0,     0,     0,     0,     0,     0,   326,     0,
2179        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2180        0,     0,   327,   328,   329,   330,   331,     0,     0,     0,
2181        0,     0,     0,     0,     0,   332,   333,   334,   335,   336,
2182      337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
2183        0,     0,     0,     0,     0,     0,     0,   339,   340,   341,
2184      342,   343,   344,     0,     0,     0,     0,     0,     0,     0,
2185        0,   345,     0,   346,   347,   348,   349,   350,   351,   352,
2186      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
2187      363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
2188      373,   374,   375,   376,     1,     2,     3,     4,     5,     6,
2189        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2190       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2191       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2192       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2193       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2194       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2195       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2196       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2197       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2198       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2199      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2200      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2201      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2202      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2203      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2204      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2205      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2206      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2207      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2208      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2209      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2210      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2211      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2212      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2213      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2214      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2215      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2216      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2217      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2218      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2219      307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
2220        0,   318,   319,   320,   321,   322,   323,   324,     0,     0,
2221        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2222        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2223        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2224        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2225        0,     0,     0,     0,   327,   328,   329,   330,     0,     0,
2226        0,     0,     0,     0,     0,     0,     0,   332,   333,   334,
2227      335,   336,   337,   338,   594,     0,     0,   597,     0,   598,
2228      599,     0,     0,   602,     0,     0,     0,     0,     0,   339,
2229      340,   341,   342,   343,   344,     0,     0,     0,     0,     0,
2230        0,     0,     0,   345,     0,   346,   347,   348,   349,   350,
2231      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
2232      361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
2233      371,   372,   373,   374,   375,   376,     1,     2,     3,     4,
2234        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2235       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2236       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2237       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2238       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2239       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2240       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2241       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2242       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2243       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2244      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2245      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2246      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2247      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2248      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2249      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2250      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2251      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2252      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2253      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2254      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2255      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2256      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2257      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2258      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2259      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2260      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2261      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2262      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2263      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2264      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2265        0,     0,     0,   318,   319,   320,   321,   322,   323,   324,
2266        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2267        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2268        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2269        0,     0,   435,     0,     0,     0,     0,     0,     0,     0,
2270        0,     0,     0,     0,     0,     0,   327,   328,   329,   330,
2271        0,     0,     0,     0,     0,     0,     0,     0,   436,   332,
2272      333,   334,   335,   336,   337,   338,     0,     0,     0,     0,
2273        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2274        0,   339,   340,   341,   342,   343,   344,     0,     0,     0,
2275        0,     0,     0,     0,     0,   345,     0,   346,   347,   348,
2276      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2277      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2278      369,   370,   371,   372,   373,   374,   375,   376,     1,     2,
2279        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2280       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2281       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2282       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2283       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2284       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2285       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2286       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2287       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2288       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2289      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2290      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2291      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2292      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2293      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2294      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2295      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2296      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2297      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2298      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2299      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2300      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2301      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2302      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2303      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2304      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2305      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2306      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2307      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2308      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2309      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2310      313,   314,     0,     0,     0,   318,   319,   320,   321,   322,
2311      323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
2312        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2313        0,     0,     0,     0,     0,     0,   325,     0,     0,     0,
2314        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2315        0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
2316      329,   330,     0,     0,     0,     0,     0,     0,     0,     0,
2317        0,   332,   333,   334,   335,   336,   337,   338,     0,     0,
2318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2319        0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
2320        0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
2321      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2322      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
2323      367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
2324        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2325       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2326       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2327       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2328       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2329       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2330       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2331       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2332       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2333       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2334      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2335      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2336      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2337      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2338      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2339      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2340      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2341      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2342      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2343      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2344      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2345      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2346      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2347      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2348      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2349      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2350      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2351      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2352      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2353      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2354      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2355      311,   312,   313,   314,     0,     0,     0,   318,   319,   320,
2356      321,   322,   323,   324,     0,     0,     0,     0,     0,     0,
2357        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2358        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2359        0,   707,     0,     0,     0,     0,     0,     0,     0,     0,
2360        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2361      327,   328,   329,   330,     0,     0,     0,     0,     0,     0,
2362        0,     0,     0,   332,   333,   334,   335,   336,   337,   338,
2363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2364        0,     0,     0,     0,     0,   339,   340,   341,   342,   343,
2365      344,     0,     0,     0,     0,     0,     0,     0,     0,   345,
2366        0,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2367      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
2368      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
2369      375,   376,     1,     2,     3,     4,     5,     6,     7,     8,
2370        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2371       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2372       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2373       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2374       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2375       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2376       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2377       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2378       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2379       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2380      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2381      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2382      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2383      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2384      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2385      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2386      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2387      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2388      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2389      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2390      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2391      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2392      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2393      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2394      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2395      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2396      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2397      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2398      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2399      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2400      309,   310,   311,   312,   313,   314,     0,     0,     0,   318,
2401      319,   320,   321,   322,   323,   324,     0,     0,     0,     0,
2402        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2403        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2404        0,     0,     0,   820,     0,     0,     0,     0,     0,     0,
2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2406        0,     0,   327,   328,   329,   330,     0,     0,     0,     0,
2407        0,     0,     0,     0,     0,   332,   333,   334,   335,   336,
2408      337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
2409        0,     0,     0,     0,     0,     0,     0,   339,   340,   341,
2410      342,   343,   344,     0,     0,     0,     0,     0,     0,     0,
2411        0,   345,     0,   346,   347,   348,   349,   350,   351,   352,
2412      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
2413      363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
2414      373,   374,   375,   376,     1,     2,     3,     4,     5,     6,
2415        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2416       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2417       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2418       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2419       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2420       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2421       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2422       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2423       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2424       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2425      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2426      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2427      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2428      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2429      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2430      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2431      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2432      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2433      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2434      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2435      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2436      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2437      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2438      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2439      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2440      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2441      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2442      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2443      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2444      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2445      307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
2446        0,   318,   319,   320,   321,   322,   323,   324,     0,     0,
2447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2448        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2449        0,     0,     0,     0,     0,   855,     0,     0,     0,     0,
2450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2451        0,     0,     0,     0,   327,   328,   329,   330,     0,     0,
2452        0,     0,     0,     0,     0,     0,     0,   332,   333,   334,
2453      335,   336,   337,   338,     0,     0,     0,     0,     0,     0,
2454        0,     0,     0,     0,     0,     0,     0,     0,     0,   339,
2455      340,   341,   342,   343,   344,     0,     0,     0,     0,     0,
2456        0,     0,     0,   345,     0,   346,   347,   348,   349,   350,
2457      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
2458      361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
2459      371,   372,   373,   374,   375,   376,     1,     2,     3,     4,
2460        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2461       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2462       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2463       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2464       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2465       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2466       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2467       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2468       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2469       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2470      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2471      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2472      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2473      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2474      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2475      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2476      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2477      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2478      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2479      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2480      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2481      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2482      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2483      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2484      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2485      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2486      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2487      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2488      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2489      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2490      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2491        0,     0,     0,   318,   319,   320,   321,   322,   323,   324,
2492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2494        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2495        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2496        0,     0,     0,     0,     0,     0,   327,   328,   329,   330,
2497        0,     0,     0,     0,     0,     0,     0,     0,     0,   332,
2498      333,   334,   335,   336,   337,   338,     0,     0,     0,     0,
2499        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2500        0,   339,   340,   341,   342,   343,   344,     0,     0,     0,
2501        0,     0,     0,     0,     0,   345,     0,   346,   347,   348,
2502      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2503      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2504      369,   370,   371,   372,   373,   374,   375,   376,     2,     3,
2505        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2506       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2507       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2508       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2509       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2510       54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
2511       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2512       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2513       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2514       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2515      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2516      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2517      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2518      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2519      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2520      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2521      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2522      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2523      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2524      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2525      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2526      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2527      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2528      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2529      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2530      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2531      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2532      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2533      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2534      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2535      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2536      314,     0,     0,     0,     0,     0,     0,   321,     0,     0,
2537        0,     0,     0,   499,   500,     0,     0,     0,     0,     0,
2538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2539        0,     0,   501,   502,     0,     0,     0,   636,   775,     0,
2540        0,     0,     0,     0,   503,   504,   505,   506,     0,     0,
2541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2542        0,     0,     0,     0,     0,   507,   508,   509,   510,   511,
2543      332,     0,     0,     0,     0,   337,   338,     0,     0,     0,
2544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2545        0,     0,     0,     0,     0,     0,     0,     0,   512,   513,
2546      514,   515,   516,   517,   518,   519,     0,     0,     0,     0,
2547        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2548      358,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2549       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2550       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2551       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2552       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2553       51,    52,    53,    54,    55,    56,    57,    58,     0,     0,
2554       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2555       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2556       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2557       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2558      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2559      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2560      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2561      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2562      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2563      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2564      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2565      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2566      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2567      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2568      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2569      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2570      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2571      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2572      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2573      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2574      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2575      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2576      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2577      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2578      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2579      311,   312,   313,   314,     0,     0,     0,     0,     0,     0,
2580      321,     0,     0,     0,     0,     0,   499,   500,     0,     0,
2581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2582        0,     0,     0,     0,     0,   501,   502,     0,     0,     0,
2583      636,   886,     0,     0,     0,     0,     0,   503,   504,   505,
2584      506,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2585        0,     0,     0,     0,     0,     0,     0,     0,   507,   508,
2586      509,   510,   511,   332,     0,     0,     0,     0,   337,   338,
2587        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2588        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2589        0,   512,   513,   514,   515,   516,   517,   518,   519,     0,
2590        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2591        0,     0,     0,   358,     2,     3,     4,     5,     6,     7,
2592        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2593       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2594       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2595       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2596       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2597       58,     0,     0,    61,    62,    63,    64,    65,    66,    67,
2598       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2599       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2600       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2601       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2602      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2603      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2604      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2605      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2606      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2607      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2608      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2609      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2610      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2611      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2612      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2613      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2614      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2615      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2616      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2617      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2618      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2619      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2620      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2621      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2622      308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
2623        0,     0,     0,   321,     0,     0,     0,     0,     0,   499,
2624      500,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2625        0,     0,     0,     0,     0,     0,     0,     0,   501,   502,
2626        0,     0,   575,     0,     0,     0,     0,     0,     0,     0,
2627      503,   504,   505,   506,     0,     0,     0,     0,     0,     0,
2628        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2629        0,   507,   508,   509,   510,   511,   332,     0,     0,     0,
2630        0,   337,   338,     0,     0,     0,     0,     0,     0,     0,
2631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2632        0,     0,     0,     0,   512,   513,   514,   515,   516,   517,
2633      518,   519,     0,     0,     0,     0,     0,     0,     0,     0,
2634        0,     0,     0,     0,     0,     0,   358,     2,     3,     4,
2635        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2636       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2637       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2638       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2639       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2640       55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
2641       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2642       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2643       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2644       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2645      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2646      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2647      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2648      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2649      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2650      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2651      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2652      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2653      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2654      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2655      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2656      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2657      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2658      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2659      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2660      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2661      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2662      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2663      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2664      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2665      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2666        0,     0,     0,     0,     0,     0,   321,     0,     0,     0,
2667        0,     0,   499,   500,     0,     0,     0,     0,     0,     0,
2668        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2669        0,   501,   502,     0,     0,     0,   636,     0,     0,     0,
2670        0,     0,     0,   503,   504,   505,   506,     0,     0,     0,
2671        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2672        0,     0,     0,     0,   507,   508,   509,   510,   511,   332,
2673        0,     0,     0,     0,   337,   338,     0,     0,     0,     0,
2674        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2675        0,     0,     0,     0,     0,     0,     0,   512,   513,   514,
2676      515,   516,   517,   518,   519,     0,     0,     0,     0,     0,
2677        0,     0,     0,     0,     0,     0,     0,     0,     0,   358,
2678        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2679       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2680       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2681       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2682       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2683       52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
2684       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2685       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2686       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2687       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2688      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2689      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2690      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2691      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2692      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2693      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2694      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2695      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2696      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2697      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2698      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2699      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2700      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2701      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2702      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2703      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2704      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2705      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2706      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2707      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2708      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2709      312,   313,   314,     0,     0,     0,     0,     0,     0,   321,
2710        0,     0,     0,     0,     0,   499,   500,     0,     0,     0,
2711        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2712        0,     0,     0,     0,   501,   502,     0,     0,   734,     0,
2713        0,     0,     0,     0,     0,     0,   503,   504,   505,   506,
2714        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2715        0,     0,     0,     0,     0,     0,     0,   507,   508,   509,
2716      510,   511,   332,     0,     0,     0,     0,   337,   338,     0,
2717        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2718        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2719      512,   513,   514,   515,   516,   517,   518,   519,     0,     0,
2720        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2721        0,     0,   358,     2,     3,     4,     5,     6,     7,     8,
2722        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2723       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2724       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2725       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2726       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2727        0,     0,    61,    62,    63,    64,    65,    66,    67,    68,
2728       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2729       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2730       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2731       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2732      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2733      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2734      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2735      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2736      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2737      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2738      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2739      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2740      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2741      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2742      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2743      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2744      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2745      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2746      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2747      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2748      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2749      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2750      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2751      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2752      309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
2753        0,     0,   321,     0,     0,     0,     0,     0,   499,   500,
2754        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2755        0,     0,     0,     0,     0,     0,     0,   501,   502,     0,
2756        0,     0,     0,     0,     0,     0,     0,     0,   745,   503,
2757      504,   505,   506,     0,     0,     0,     0,     0,     0,     0,
2758        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2759      507,   508,   509,   510,   511,   332,     0,     0,     0,     0,
2760      337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
2761        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2762        0,     0,     0,   512,   513,   514,   515,   516,   517,   518,
2763      519,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2764        0,     0,     0,     0,     0,   358,     2,     3,     4,     5,
2765        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2766       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2767       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2768       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2769       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2770       56,    57,    58,     0,     0,    61,    62,    63,    64,    65,
2771       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2772       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2773       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2774       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2775      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2776      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2777      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2778      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2779      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2780      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2781      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2782      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2783      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2784      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2785      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2786      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2787      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2788      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2789      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2790      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2791      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2792      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2793      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2794      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2795      306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
2796        0,     0,     0,     0,     0,   321,     0,     0,     0,     0,
2797        0,   499,   500,     0,     0,     0,     0,     0,     0,     0,
2798        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2799      501,   502,     0,     0,     0,     0,     0,     0,     0,     0,
2800        0,     0,   503,   504,   505,   506,     0,     0,     0,     0,
2801        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2802        0,     0,     0,   507,   508,   509,   510,   511,   332,     0,
2803        0,     0,     0,   337,   338,     0,     0,     0,     0,     0,
2804        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2805        0,     0,     0,     0,     0,     0,   512,   513,   514,   515,
2806      516,   517,   518,   519,     0,     0,     0,     0,     0,     0,
2807        0,     0,     0,     0,     0,     0,     0,     0,   358,     2,
2808        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2809       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2810       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2811       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2812       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2813       53,    54,    55,    56,    57,    58,     0,     0,    61,    62,
2814       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2815       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2816       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2817       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2818      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2819      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2820      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2821      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2822      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2823      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2824      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2825      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2826      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2827      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2828      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2829      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2830      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2831      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2832      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2833      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2834      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2835      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2836      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2837      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2838      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2839      313,   314,     0,     0,     0,     0,     0,     0,   321,     0,
2840        0,     0,     0,     0,   499,   500,     0,     0,     0,     0,
2841        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2842        0,     0,     0,   501,   502,     0,     0,     0,     0,     0,
2843        0,     0,     0,     0,     0,   503,   504,   505,   506,     0,
2844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2845        0,     0,     0,     0,     0,     0,   507,   508,   509,   510,
2846      511,   332,     0,     0,     0,     0,   337,   654,     0,     0,
2847        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2848        0,     0,     0,     0,     0,     0,     0,     0,     0,   512,
2849      513,   514,   515,   516,   517,   518,   519,     0,     0,     0,
2850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2851        0,   358,     2,     3,     4,     5,     6,     7,     8,     9,
2852       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2853       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2854       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2855       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2856       50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
2857        0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2858       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2859       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2860       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2861      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2862      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2863      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2864      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2865      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2866      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2867      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2868      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2869      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2870      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2871      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2872      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2873      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2874      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2875      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2876      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2877      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2878      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2879      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2880      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2881      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2882      310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
2883        0,   321,     0,     0,     0,     0,     0,   499,   500,     0,
2884        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2885        0,     0,     0,     0,     0,     0,   501,   502,     0,     0,
2886        0,     0,     0,     0,     0,     0,     0,     0,   503,   504,
2887      505,   506,     0,     0,     0,     0,     0,     0,     0,     0,
2888        0,     0,     0,     0,     0,     0,     0,     0,     0,   507,
2889      508,   509,   510,   694,   332,     0,     0,     0,     0,   337,
2890      338,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2891        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2892        0,     0,   512,   513,   514,   515,   516,   517,   518,   519,
2893        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2894        0,     0,     0,     0,   358,     2,     3,     4,     5,     6,
2895        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2896       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2897       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2898       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2899       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2900       57,    58,     0,     0,    61,    62,    63,    64,    65,    66,
2901       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2902       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2903       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2904       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2905      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2906      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2907      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2908      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2909      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2910      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2911      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2912      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2913      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2914      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2915      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2916      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2917      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2918      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2919      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2920      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2921      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2922      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2923      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2924      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2925      307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
2926        0,     0,     0,     0,   321,     0,     0,     0,     0,     0,
2927        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2928        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2929        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2930        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2931        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2932        0,     0,     0,     0,     0,     0,     0,   332,     0,     0,
2933        0,     0,   337,   338
2934 };
2935
2936 static const yytype_int16 yycheck[] =
2937 {
2938        0,   401,     0,   481,   401,   382,   406,     0,   493,     0,
2939      634,   502,   636,   622,     0,   639,   542,   547,   737,   567,
2940      434,   439,   552,   569,   401,   348,   440,   359,   390,   406,
2941      413,   561,   558,   348,   331,   332,   336,   899,   385,   348,
2942      570,   348,   351,   528,   906,   356,   349,   353,   351,   426,
2943      374,   375,   376,   385,   916,   358,   351,   368,   381,   382,
2944      383,   384,   409,   481,   359,   329,   330,   382,   430,   547,
2945      367,   368,   372,   382,   552,   382,   490,   491,   351,   385,
2946      558,   499,   500,   561,   446,   349,   359,   351,   351,   349,
2947      356,   355,   570,   359,   640,   358,   473,   338,   339,   340,
2948      341,   342,   343,   344,   345,   346,   347,   361,   540,   363,
2949      601,   589,   603,   531,   546,   351,   548,   358,   351,   551,
2950      350,   553,   358,   555,   556,   358,   356,   353,   560,   547,
2951      356,   350,   741,   359,   552,   350,   350,   356,   350,   350,
2952      558,   356,   356,   561,   356,   356,   354,   350,   356,   634,
2953      774,   636,   570,   356,   639,   351,   350,   540,   649,   350,
2954      350,   709,   356,   350,   350,   356,   356,   349,   653,   356,
2955      356,   589,   349,   556,   408,   409,   410,   411,   412,   413,
2956      414,   350,   350,   350,   359,   350,   349,   356,   356,   356,
2957      567,   356,   569,   350,   350,   356,   350,   350,   350,   356,
2958      356,   920,   356,   565,   356,   350,   350,   350,   350,   350,
2959      350,   356,   356,   356,   356,   356,   356,   350,   352,   349,
2960      352,   352,   356,   356,   356,   356,   381,   382,   383,   384,
2961      854,   779,   632,   842,   349,   632,   720,   721,   722,   723,
2962      658,   327,   328,   382,   382,   382,   385,   385,   385,   349,
2963      356,   367,   743,   359,   382,   632,   747,   385,   382,   382,
2964      349,   385,   385,   640,   382,   333,   334,   385,   798,   799,
2965      382,   382,   349,   385,   385,   805,   806,   356,   357,   382,
2966      765,   766,   385,   349,   382,   811,   910,   385,   382,   774,
2967      704,   385,   364,   365,   366,   713,   714,   715,   716,   717,
2968      718,   719,   720,   721,   722,   723,   724,   725,   726,   727,
2969      728,   729,   730,   731,   385,   356,   356,   926,   359,   359,
2970      798,   799,   356,   356,   359,   359,   359,   805,   806,   356,
2971      357,   385,   709,   811,   385,   813,   716,   717,   353,   718,
2972      719,   385,   724,   725,   353,   351,   385,   385,   351,   840,
2973      358,   350,   843,   385,   359,   356,   358,   385,   371,   356,
2974      356,   356,   356,   350,   356,   385,   356,   356,   356,   854,
2975      349,   356,   356,   350,   349,   351,   359,   358,   349,   351,
2976      798,   799,   382,   348,   352,   335,   337,   805,   806,   369,
2977      390,   382,   883,   811,   352,   813,   370,   354,   398,   390,
2978      398,   401,   779,   385,   349,   398,   406,   398,   406,   900,
2979      401,   896,   398,   406,   349,   406,   416,   359,   385,   359,
2980      349,   359,   349,   357,   915,   910,   426,   425,   359,   359,
2981      430,   359,   349,   359,   349,   426,   385,   385,   350,   430,
2982      358,   348,   356,   843,   350,   356,   446,   356,   350,   352,
2983      393,   352,   356,   348,   354,   446,   350,   382,   349,   358,
2984      353,   385,   359,   350,   397,   353,   843,   353,   726,   359,
2985      354,   727,   729,   473,   430,   728,   731,   430,   730,   426,
2986      572,   331,   473,   883,   484,   703,   845,   818,   905,   916,
2987      845,   917,   424,   484,   883,   796,   632,   632,   563,   803,
2988      398,   794,   801,   632,   806,   799,   883,    -1,   813,    -1,
2989       -1,   809,    -1,    -1,    -1,   811,    -1,    -1,    -1,    -1,
2990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2991       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   536,    -1,
2992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   558,    -1,
2994       -1,    -1,    -1,    -1,    -1,   565,    -1,   567,    -1,   569,
2995       -1,    -1,    -1,    -1,   565,    -1,   567,    -1,   569,    -1,
2996       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2997       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2999       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3000       -1,    -1,   622,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3001       -1,   622,   632,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3002      640,   632,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   640,
3003       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3005       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   709,
3009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   709,    -1,
3010       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3011       -1,    -1,    -1,    -1,    -1,    -1,    -1,   737,    -1,    -1,
3012       -1,   741,    -1,    -1,    -1,    -1,   737,    -1,    -1,    -1,
3013      741,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3015       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   779,
3016       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   779,    -1,
3017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3018       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3019       -1,   811,    -1,   813,    -1,    -1,    -1,    -1,    -1,    -1,
3020       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3021       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3022       -1,    -1,   842,   843,    -1,   845,    -1,   845,    -1,    -1,
3023       -1,   842,   843,    -1,   845,    -1,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3025       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3026       -1,    -1,    -1,   883,    -1,    -1,    -1,    -1,    -1,    -1,
3027       -1,    -1,   883,    -1,    -1,    -1,    -1,    -1,    -1,   899,
3028       -1,    -1,    -1,    -1,    -1,    -1,   906,    -1,   899,    -1,
3029       -1,    -1,    -1,    -1,    -1,   906,   916,    -1,    -1,    -1,
3030      920,    -1,    -1,    -1,    -1,   916,   926,    -1,    -1,   920,
3031       -1,    -1,    -1,     0,    -1,   926,     3,     4,     5,     6,
3032        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3033       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3034       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3035       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3036       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3037       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3038       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3039       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3040       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3041       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3042      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3043      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3044      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3045      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3046      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3047      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3048      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3049      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3050      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3051      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3052      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3053      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3054      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3055      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3056      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3057      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3058      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3059      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3060      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3061      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3062      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3063      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
3064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3066       -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,    -1,    -1,
3067       -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3068       -1,    -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,
3069      377,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,
3070      387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
3071       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3072       -1,   408,   409,   410,   411,   412,   413,    -1,    -1,    -1,
3073       -1,    -1,    -1,    -1,    -1,   422,    -1,   424,   425,   426,
3074      427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
3075      437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
3076      447,   448,   449,   450,   451,   452,   453,   454,     3,     4,
3077        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3078       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3079       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3080       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3081       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3082       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3083       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3084       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3085       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3086       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3087      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3088      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3089      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3090      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3091      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3092      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3093      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3094      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3095      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3096      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3097      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3098      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3099      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3100      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3101      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3102      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3103      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3104      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3105      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3106      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3107      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3108      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3109      325,   326,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
3110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3111       -1,    -1,    -1,   348,   349,    -1,   351,    -1,   353,   354,
3112       -1,    -1,    -1,    -1,   359,   360,   361,   362,   363,    -1,
3113       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
3114      375,   376,   377,    -1,    -1,    -1,   381,   382,   383,   384,
3115      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
3116      395,   396,    -1,   398,   399,   400,   401,   402,   403,   404,
3117      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
3118      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
3119      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
3120      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
3121      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
3122        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3123       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3124       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3125       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3126       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3127       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3128       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3129       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3130       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3131       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3132      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3133      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3134      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3135      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3136      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3137      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3138      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3139      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3140      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3141      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3142      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3143      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3144      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3145      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3146      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3147      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3148      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3149      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3150      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3151      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3152      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3153      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3154      323,   324,   325,   326,    -1,    -1,   329,   330,    -1,    -1,
3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3156       -1,    -1,    -1,    -1,    -1,   348,   349,    -1,   351,    -1,
3157      353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,   362,
3158      363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3159      373,   374,   375,   376,   377,    -1,    -1,    -1,   381,   382,
3160      383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
3161      393,   394,   395,   396,    -1,   398,   399,   400,   401,   402,
3162      403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
3163      413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
3164      423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
3165      433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
3166      443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
3167      453,   454,     3,     4,     5,     6,     7,     8,     9,    10,
3168       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3169       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3170       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3171       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3172       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3173       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3174       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3175       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3176       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3177      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3178      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3179      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3180      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3181      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3182      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3183      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3184      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3185      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3186      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3187      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3188      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3189      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3190      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3191      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3192      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3193      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3194      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3195      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3196      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3197      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3198      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3199      321,   322,   323,   324,   325,   326,    -1,    -1,   329,   330,
3200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3201       -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,
3202      351,    -1,   353,    -1,    -1,    -1,    -1,    -1,   359,   360,
3203      361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3204       -1,    -1,   373,   374,   375,   376,   377,    -1,    -1,    -1,
3205      381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
3206      391,   392,   393,   394,   395,   396,    -1,   398,   399,   400,
3207      401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
3208      411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
3209      421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
3210      431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
3211      441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
3212      451,   452,   453,   454,     3,     4,     5,     6,     7,     8,
3213        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3214       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3215       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3216       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3217       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3218       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3219       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3220       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3221       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3222       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3223      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3224      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3225      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3226      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3227      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3228      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3229      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3230      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3231      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3232      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3233      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3234      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3235      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3236      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3237      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3238      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3239      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3240      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3241      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3242      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3243      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
3244      319,   320,   321,   322,   323,   324,   325,   326,    -1,    -1,
3245      329,   330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,
3247      349,    -1,   351,    -1,   353,    -1,    -1,    -1,    -1,    -1,
3248      359,   360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,
3249       -1,    -1,    -1,    -1,   373,   374,   375,   376,   377,    -1,
3250       -1,    -1,   381,   382,   383,   384,   385,   386,   387,   388,
3251      389,   390,   391,   392,   393,   394,   395,   396,    -1,   398,
3252      399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
3253      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
3254      419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
3255      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
3256      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
3257      449,   450,   451,   452,   453,   454,     3,     4,     5,     6,
3258        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3259       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3260       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3261       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3262       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3263       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3264       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3265       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3266       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3267       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3268      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3269      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3270      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3271      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3272      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3273      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3274      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3275      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3276      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3277      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3278      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3279      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3280      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3281      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3282      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3283      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3284      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3285      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3286      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3287      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3288      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3289      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
3290       -1,    -1,   329,   330,    -1,    -1,    -1,    -1,    -1,    -1,
3291       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3292       -1,   348,   349,    -1,   351,    -1,    -1,    -1,    -1,    -1,
3293       -1,    -1,   359,   360,   361,   362,   363,    -1,    -1,    -1,
3294       -1,    -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,
3295      377,    -1,    -1,    -1,   381,   382,   383,   384,   385,   386,
3296      387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
3297       -1,   398,   399,   400,   401,   402,   403,   404,   405,   406,
3298      407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
3299      417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
3300      427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
3301      437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
3302      447,   448,   449,   450,   451,   452,   453,   454,     3,     4,
3303        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3304       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3305       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3306       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3307       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3308       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3309       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3310       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3311       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3312       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3313      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3314      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3315      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3316      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3317      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3318      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3319      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3320      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3321      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3322      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3323      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3324      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3325      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3326      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3327      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3328      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3329      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3330      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3331      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3332      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3333      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3334      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3335      325,   326,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
3336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3337       -1,    -1,    -1,   348,   349,    -1,   351,    -1,    -1,    -1,
3338       -1,    -1,    -1,    -1,   359,   360,   361,   362,   363,    -1,
3339       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
3340      375,   376,   377,    -1,    -1,    -1,   381,   382,   383,   384,
3341      385,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3343       -1,    -1,    -1,   408,   409,   410,   411,   412,   413,   414,
3344      415,   416,   417,   418,   419,   420,   421,   422,    -1,   424,
3345      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
3346      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
3347      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
3348        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3349       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3350       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3351       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3352       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3353       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3354       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3355       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3356       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3357       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3358      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3359      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3360      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3361      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3362      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3363      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3364      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3365      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3366      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3367      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3368      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3369      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3370      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3371      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3372      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3373      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3374      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3375      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3376      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3377      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3378      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3379      313,   314,   315,   316,    -1,    -1,    -1,   320,   321,   322,
3380      323,   324,   325,   326,    -1,    -1,   329,   330,    -1,    -1,
3381       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3382       -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,    -1,
3383       -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,   361,   362,
3384      363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3385      373,   374,   375,   376,    -1,    -1,    -1,    -1,   381,   382,
3386      383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
3387       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3388       -1,    -1,    -1,    -1,    -1,   408,   409,   410,   411,   412,
3389      413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
3390       -1,   424,   425,   426,   427,   428,   429,   430,   431,   432,
3391      433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
3392      443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
3393      453,   454,     3,     4,     5,     6,     7,     8,     9,    10,
3394       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3395       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3396       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3397       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3398       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3399       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3400       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3401       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3402       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3403      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3404      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3405      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3406      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3407      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3408      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3409      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3410      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3411      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3412      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3413      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3414      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3415      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3416      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3417      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3418      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3419      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3420      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3421      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3422      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3423      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3424      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3425      321,   322,   323,   324,   325,   326,    -1,    -1,    -1,    -1,
3426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3428      351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,    -1,
3429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3430       -1,    -1,   373,   374,   375,   376,   377,    -1,    -1,    -1,
3431       -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,   390,
3432      391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3433       -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,   410,
3434      411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3435       -1,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
3436      431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
3437      441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
3438      451,   452,   453,   454,     3,     4,     5,     6,     7,     8,
3439        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3440       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3441       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3442       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3443       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3444       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3445       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3446       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3447       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3448       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3449      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3450      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3451      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3452      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3453      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3454      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3455      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3456      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3457      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3458      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3459      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3460      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3461      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3462      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3463      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3464      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3465      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3466      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3467      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3468      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3469      309,   310,   311,   312,   313,   314,   315,   316,    -1,    -1,
3470       -1,   320,   321,   322,   323,   324,   325,   326,    -1,    -1,
3471       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3475       -1,    -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,
3476       -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,
3477      389,   390,   391,   392,   393,    -1,    -1,   396,    -1,   398,
3478      399,    -1,    -1,   402,    -1,    -1,    -1,    -1,    -1,   408,
3479      409,   410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,
3480       -1,    -1,    -1,   422,    -1,   424,   425,   426,   427,   428,
3481      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
3482      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
3483      449,   450,   451,   452,   453,   454,     3,     4,     5,     6,
3484        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3485       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3486       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3487       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3488       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3489       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3490       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3491       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3492       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3493       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3494      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3495      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3496      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3497      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3498      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3499      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3500      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3501      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3502      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3503      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3504      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3505      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3506      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3507      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3508      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3509      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3510      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3511      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3512      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3513      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3514      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3515       -1,    -1,    -1,   320,   321,   322,   323,   324,   325,   326,
3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3517       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3519       -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3520       -1,    -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,
3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   385,   386,
3522      387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3524       -1,   408,   409,   410,   411,   412,   413,    -1,    -1,    -1,
3525       -1,    -1,    -1,    -1,    -1,   422,    -1,   424,   425,   426,
3526      427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
3527      437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
3528      447,   448,   449,   450,   451,   452,   453,   454,     3,     4,
3529        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3530       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3531       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3532       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3533       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3534       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3535       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3536       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3537       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3538       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3539      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3540      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3541      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3542      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3543      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3544      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3545      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3546      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3547      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3548      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3549      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3550      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3551      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3552      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3553      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3554      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3555      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3556      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3557      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3558      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3559      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3560      315,   316,    -1,    -1,    -1,   320,   321,   322,   323,   324,
3561      325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3563       -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
3564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3565       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
3566      375,   376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3567       -1,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
3568       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3569       -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
3570       -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
3571      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
3572      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
3573      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
3574        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3575       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3576       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3577       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3578       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3579       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3580       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3581       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3582       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3583       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3584      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3585      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3586      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3587      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3588      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3589      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3590      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3591      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3592      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3593      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3594      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3595      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3596      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3597      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3598      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3599      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3600      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3601      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3602      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3603      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3604      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3605      313,   314,   315,   316,    -1,    -1,    -1,   320,   321,   322,
3606      323,   324,   325,   326,    -1,    -1,    -1,    -1,    -1,    -1,
3607       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3608       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3609       -1,   354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3611      373,   374,   375,   376,    -1,    -1,    -1,    -1,    -1,    -1,
3612       -1,    -1,    -1,   386,   387,   388,   389,   390,   391,   392,
3613       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3614       -1,    -1,    -1,    -1,    -1,   408,   409,   410,   411,   412,
3615      413,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,
3616       -1,   424,   425,   426,   427,   428,   429,   430,   431,   432,
3617      433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
3618      443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
3619      453,   454,     3,     4,     5,     6,     7,     8,     9,    10,
3620       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3621       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3622       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3623       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3624       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3625       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3626       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3627       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3628       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3629      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3630      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3631      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3632      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3633      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3634      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3635      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3636      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3637      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3638      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3639      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3640      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3641      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3642      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3643      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3644      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3645      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3646      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3647      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3648      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3649      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3650      311,   312,   313,   314,   315,   316,    -1,    -1,    -1,   320,
3651      321,   322,   323,   324,   325,   326,    -1,    -1,    -1,    -1,
3652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3654       -1,    -1,    -1,   354,    -1,    -1,    -1,    -1,    -1,    -1,
3655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3656       -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,    -1,
3657       -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,   390,
3658      391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3659       -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,   410,
3660      411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3661       -1,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
3662      431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
3663      441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
3664      451,   452,   453,   454,     3,     4,     5,     6,     7,     8,
3665        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3666       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3667       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3668       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3669       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3670       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3671       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3672       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3673       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3674       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3675      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3676      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3677      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3678      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3679      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3680      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3681      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3682      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3683      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3684      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3685      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3686      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3687      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3688      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3689      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3690      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3691      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3692      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3693      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3694      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3695      309,   310,   311,   312,   313,   314,   315,   316,    -1,    -1,
3696       -1,   320,   321,   322,   323,   324,   325,   326,    -1,    -1,
3697       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3698       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3699       -1,    -1,    -1,    -1,    -1,   354,    -1,    -1,    -1,    -1,
3700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3701       -1,    -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,
3702       -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,
3703      389,   390,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,
3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,
3705      409,   410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,
3706       -1,    -1,    -1,   422,    -1,   424,   425,   426,   427,   428,
3707      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
3708      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
3709      449,   450,   451,   452,   453,   454,     3,     4,     5,     6,
3710        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3711       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3712       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3713       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3714       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3715       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3716       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3717       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3718       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3719       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3720      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3721      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3722      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3723      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3724      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3725      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3726      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3727      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3728      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3729      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3730      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3731      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3732      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3733      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3734      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3735      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3736      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3737      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3738      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3739      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3740      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3741       -1,    -1,    -1,   320,   321,   322,   323,   324,   325,   326,
3742       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3746       -1,    -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,
3747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,
3748      387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
3749       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3750       -1,   408,   409,   410,   411,   412,   413,    -1,    -1,    -1,
3751       -1,    -1,    -1,    -1,    -1,   422,    -1,   424,   425,   426,
3752      427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
3753      437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
3754      447,   448,   449,   450,   451,   452,   453,   454,     4,     5,
3755        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3756       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3757       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3758       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3759       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3760       56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
3761       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3762       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3763       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3764       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3765      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3766      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3767      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3768      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3769      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3770      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3771      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3772      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3773      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3774      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3775      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3776      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3777      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3778      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3779      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3780      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3781      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3782      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3783      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3784      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3785      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3786      316,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,
3787       -1,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,    -1,
3788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3789       -1,    -1,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
3790       -1,    -1,    -1,    -1,   360,   361,   362,   363,    -1,    -1,
3791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3792       -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,
3793      386,    -1,    -1,    -1,    -1,   391,   392,    -1,    -1,    -1,
3794       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
3796      416,   417,   418,   419,   420,   421,    -1,    -1,    -1,    -1,
3797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3798      436,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3799       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3800       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3801       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3802       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3803       53,    54,    55,    56,    57,    58,    59,    60,    -1,    -1,
3804       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3805       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3806       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3807       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3808      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3809      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3810      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3811      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3812      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3813      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3814      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3815      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3816      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3817      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3818      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3819      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3820      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3821      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3822      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3823      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3824      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3825      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3826      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3827      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3828      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3829      313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,    -1,
3830      323,    -1,    -1,    -1,    -1,    -1,   329,   330,    -1,    -1,
3831       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3832       -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,    -1,
3833      353,   354,    -1,    -1,    -1,    -1,    -1,   360,   361,   362,
3834      363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,
3836      383,   384,   385,   386,    -1,    -1,    -1,    -1,   391,   392,
3837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3839       -1,   414,   415,   416,   417,   418,   419,   420,   421,    -1,
3840       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3841       -1,    -1,    -1,   436,     4,     5,     6,     7,     8,     9,
3842       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3843       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3844       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3845       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3846       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3847       60,    -1,    -1,    63,    64,    65,    66,    67,    68,    69,
3848       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3849       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3850       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3851      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3852      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3853      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3854      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3855      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3856      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3857      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3858      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3859      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3860      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3861      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3862      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3863      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3864      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3865      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3866      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3867      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3868      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3869      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3870      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3871      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3872      310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
3873       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,   329,
3874      330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3875       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
3876       -1,    -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3877      360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
3878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3879       -1,   381,   382,   383,   384,   385,   386,    -1,    -1,    -1,
3880       -1,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3881       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3882       -1,    -1,    -1,    -1,   414,   415,   416,   417,   418,   419,
3883      420,   421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3884       -1,    -1,    -1,    -1,    -1,    -1,   436,     4,     5,     6,
3885        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3886       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3887       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3888       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3889       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3890       57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
3891       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3892       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3893       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3894       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3895      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3896      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3897      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3898      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3899      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3900      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3901      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3902      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3903      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3904      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3905      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3906      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3907      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3908      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3909      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3910      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3911      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3912      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3913      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3914      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3915      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3916       -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,
3917       -1,    -1,   329,   330,    -1,    -1,    -1,    -1,    -1,    -1,
3918       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3919       -1,   348,   349,    -1,    -1,    -1,   353,    -1,    -1,    -1,
3920       -1,    -1,    -1,   360,   361,   362,   363,    -1,    -1,    -1,
3921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3922       -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,   386,
3923       -1,    -1,    -1,    -1,   391,   392,    -1,    -1,    -1,    -1,
3924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3925       -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,
3926      417,   418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,
3927       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
3928        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3929       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3930       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3931       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3932       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3933       54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
3934       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3935       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3936       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3937       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3938      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3939      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3940      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3941      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3942      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3943      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3944      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3945      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3946      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3947      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3948      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3949      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3950      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3951      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3952      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3953      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3954      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3955      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3956      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3957      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3958      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3959      314,   315,   316,    -1,    -1,    -1,    -1,    -1,    -1,   323,
3960       -1,    -1,    -1,    -1,    -1,   329,   330,    -1,    -1,    -1,
3961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3962       -1,    -1,    -1,    -1,   348,   349,    -1,    -1,   352,    -1,
3963       -1,    -1,    -1,    -1,    -1,    -1,   360,   361,   362,   363,
3964       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3965       -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,
3966      384,   385,   386,    -1,    -1,    -1,    -1,   391,   392,    -1,
3967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3968       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3969      414,   415,   416,   417,   418,   419,   420,   421,    -1,    -1,
3970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3971       -1,    -1,   436,     4,     5,     6,     7,     8,     9,    10,
3972       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3973       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3974       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3975       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3976       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3977       -1,    -1,    63,    64,    65,    66,    67,    68,    69,    70,
3978       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3979       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3980       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3981      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3982      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3983      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3984      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3985      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3986      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3987      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3988      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3989      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3990      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3991      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3992      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3993      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3994      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3995      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3996      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3997      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3998      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3999      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
4000      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
4001      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
4002      311,   312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,
4003       -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,   329,   330,
4004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4005       -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,
4006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,   360,
4007      361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4009      381,   382,   383,   384,   385,   386,    -1,    -1,    -1,    -1,
4010      391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4012       -1,    -1,    -1,   414,   415,   416,   417,   418,   419,   420,
4013      421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4014       -1,    -1,    -1,    -1,    -1,   436,     4,     5,     6,     7,
4015        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
4016       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
4017       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
4018       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
4019       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
4020       58,    59,    60,    -1,    -1,    63,    64,    65,    66,    67,
4021       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
4022       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
4023       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
4024       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
4025      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
4026      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
4027      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
4028      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
4029      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
4030      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
4031      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
4032      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
4033      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
4034      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
4035      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
4036      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
4037      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
4038      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
4039      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
4040      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
4041      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
4042      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
4043      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
4044      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
4045      308,   309,   310,   311,   312,   313,   314,   315,   316,    -1,
4046       -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
4047       -1,   329,   330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4048       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4049      348,   349,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4050       -1,    -1,   360,   361,   362,   363,    -1,    -1,    -1,    -1,
4051       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4052       -1,    -1,    -1,   381,   382,   383,   384,   385,   386,    -1,
4053       -1,    -1,    -1,   391,   392,    -1,    -1,    -1,    -1,    -1,
4054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4055       -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,
4056      418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,    -1,
4057       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,     4,
4058        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
4059       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
4060       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
4061       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
4062       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
4063       55,    56,    57,    58,    59,    60,    -1,    -1,    63,    64,
4064       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
4065       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
4066       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
4067       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
4068      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
4069      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
4070      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
4071      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
4072      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
4073      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
4074      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
4075      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
4076      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
4077      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
4078      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
4079      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
4080      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
4081      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
4082      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
4083      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
4084      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
4085      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
4086      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
4087      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
4088      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
4089      315,   316,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,
4090       -1,    -1,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
4091       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4092       -1,    -1,    -1,   348,   349,    -1,    -1,    -1,    -1,    -1,
4093       -1,    -1,    -1,    -1,    -1,   360,   361,   362,   363,    -1,
4094       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4095       -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,
4096      385,   386,    -1,    -1,    -1,    -1,   391,   392,    -1,    -1,
4097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,
4099      415,   416,   417,   418,   419,   420,   421,    -1,    -1,    -1,
4100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4101       -1,   436,     4,     5,     6,     7,     8,     9,    10,    11,
4102       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
4103       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
4104       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
4105       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
4106       52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
4107       -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
4108       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
4109       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
4110       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
4111      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
4112      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
4113      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
4114      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
4115      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
4116      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
4117      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
4118      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
4119      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
4120      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
4121      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
4122      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
4123      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
4124      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
4125      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
4126      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
4127      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
4128      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
4129      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
4130      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
4131      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
4132      312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,
4133       -1,   323,    -1,    -1,    -1,    -1,    -1,   329,   330,    -1,
4134       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4135       -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,
4136       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,   361,
4137      362,   363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4138       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,
4139      382,   383,   384,   385,   386,    -1,    -1,    -1,    -1,   391,
4140      392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4141       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4142       -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
4143       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4144       -1,    -1,    -1,    -1,   436,     4,     5,     6,     7,     8,
4145        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
4146       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
4147       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
4148       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
4149       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
4150       59,    60,    -1,    -1,    63,    64,    65,    66,    67,    68,
4151       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
4152       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
4153       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
4154       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
4155      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
4156      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
4157      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
4158      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
4159      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
4160      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
4161      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
4162      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
4163      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
4164      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
4165      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
4166      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
4167      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
4168      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
4169      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
4170      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
4171      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
4172      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
4173      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
4174      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
4175      309,   310,   311,   312,   313,   314,   315,   316,    -1,    -1,
4176       -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,
4177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4178       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4179       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4182       -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,    -1,    -1,
4183       -1,    -1,   391,   392
4184 };
4185
4186   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4187      symbol of state STATE-NUM.  */
4188 static const yytype_int16 yystos[] =
4189 {
4190        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
4191       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
4192       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
4193       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
4194       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
4195       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
4196       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
4197       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
4198       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
4199       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
4200      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
4201      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
4202      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
4203      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
4204      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
4205      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
4206      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
4207      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
4208      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
4209      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
4210      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
4211      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
4212      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
4213      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
4214      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
4215      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
4216      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
4217      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
4218      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
4219      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
4220      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
4221      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
4222      322,   323,   324,   325,   326,   351,   359,   373,   374,   375,
4223      376,   377,   386,   387,   388,   389,   390,   391,   392,   408,
4224      409,   410,   411,   412,   413,   422,   424,   425,   426,   427,
4225      428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
4226      438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
4227      448,   449,   450,   451,   452,   453,   454,   486,   487,   490,
4228      491,   492,   493,   497,   498,   499,   500,   501,   502,   505,
4229      506,   507,   508,   509,   511,   516,   517,   518,   559,   560,
4230      561,   563,   570,   574,   575,   580,   583,   349,   349,   349,
4231      349,   349,   349,   349,   349,   351,   517,   353,   385,   349,
4232      349,   359,   385,   359,   562,   350,   356,   494,   495,   496,
4233      506,   511,   356,   359,   385,   359,   385,   507,   511,   367,
4234      513,   514,     0,   560,   491,   499,   506,   359,   490,   385,
4235      566,   567,   584,   585,   382,   385,   566,   382,   566,   382,
4236      566,   382,   566,   382,   566,   566,   584,   382,   566,   385,
4237      564,   565,   511,   520,   353,   385,   409,   503,   504,   385,
4238      510,   351,   359,   512,   353,   538,   563,   495,   494,   496,
4239      385,   385,   349,   358,   512,   353,   356,   359,   489,   329,
4240      330,   348,   349,   360,   361,   362,   363,   381,   382,   383,
4241      384,   385,   414,   415,   416,   417,   418,   419,   420,   421,
4242      456,   457,   458,   460,   461,   462,   463,   464,   465,   466,
4243      467,   468,   509,   511,   515,   512,   350,   385,   359,   358,
4244      356,   350,   356,   350,   356,   358,   356,   356,   356,   350,
4245      356,   356,   356,   356,   356,   356,   356,   350,   356,   350,
4246      356,   349,   352,   356,   359,   506,   511,   521,   522,   519,
4247      358,   350,   356,   350,   356,   352,   467,   469,   470,   471,
4248      472,   473,   474,   475,   476,   477,   478,   479,   480,   351,
4249      359,   353,   354,   359,   393,   394,   395,   396,   398,   399,
4250      400,   401,   402,   403,   404,   405,   406,   407,   423,   467,
4251      480,   482,   484,   486,   490,   509,   511,   527,   528,   529,
4252      530,   531,   539,   540,   541,   542,   545,   546,   549,   550,
4253      551,   558,   563,   512,   358,   512,   353,   482,   525,   358,
4254      488,   385,   356,   359,   467,   467,   484,   329,   330,   351,
4255      355,   350,   350,   356,   392,   482,   349,   467,   356,   368,
4256      563,   348,   351,   382,   567,   584,   385,   585,   348,   381,
4257      382,   383,   384,   571,   572,   382,   480,   485,   573,   382,
4258      381,   382,   383,   384,   576,   577,   382,   485,   578,   382,
4259      348,   579,   382,   584,   385,   485,   511,   581,   582,   382,
4260      485,   352,   565,   511,   385,   523,   524,   354,   522,   521,
4261      485,   504,   385,   364,   365,   366,   361,   363,   327,   328,
4262      331,   332,   367,   368,   333,   334,   371,   370,   369,   335,
4263      337,   336,   372,   352,   352,   480,   354,   532,   349,   359,
4264      359,   553,   349,   349,   359,   359,   484,   349,   484,   357,
4265      359,   359,   359,   359,   338,   339,   340,   341,   342,   343,
4266      344,   345,   346,   347,   358,   483,   356,   359,   354,   528,
4267      542,   546,   551,   525,   358,   354,   525,   526,   525,   521,
4268      385,   350,   459,   484,   385,   482,   467,   348,   382,   568,
4269      569,   350,   358,   350,   356,   350,   356,   350,   356,   356,
4270      350,   356,   350,   356,   350,   356,   356,   350,   356,   356,
4271      350,   356,   350,   356,   350,   350,   523,   512,   356,   359,
4272      354,   467,   467,   467,   469,   469,   470,   470,   471,   471,
4273      471,   471,   472,   472,   473,   474,   475,   476,   477,   478,
4274      481,   352,   539,   552,   528,   554,   484,   359,   484,   357,
4275      482,   482,   525,   354,   356,   354,   352,   352,   356,   352,
4276      356,   572,   571,   485,   573,   577,   576,   485,   578,   348,
4277      579,   581,   582,   359,   524,   484,   533,   484,   499,   544,
4278      393,   527,   540,   555,   350,   350,   354,   525,   348,   382,
4279      350,   350,   350,   350,   350,   350,   357,   354,   385,   350,
4280      349,   544,   556,   557,   535,   536,   537,   543,   547,   482,
4281      358,   529,   534,   538,   484,   359,   350,   397,   531,   529,
4282      353,   525,   350,   484,   534,   535,   539,   548,   359,   354
4283 };
4284
4285   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
4286 static const yytype_int16 yyr1[] =
4287 {
4288        0,   455,   456,   457,   457,   457,   457,   457,   457,   457,
4289      457,   457,   457,   457,   457,   457,   457,   457,   458,   458,
4290      458,   458,   458,   458,   459,   460,   461,   462,   462,   463,
4291      463,   464,   464,   465,   466,   466,   466,   467,   467,   467,
4292      467,   468,   468,   468,   468,   469,   469,   469,   469,   470,
4293      470,   470,   471,   471,   471,   472,   472,   472,   472,   472,
4294      473,   473,   473,   474,   474,   475,   475,   476,   476,   477,
4295      477,   478,   478,   479,   479,   480,   481,   480,   482,   482,
4296      483,   483,   483,   483,   483,   483,   483,   483,   483,   483,
4297      483,   484,   484,   485,   486,   486,   486,   486,   486,   486,
4298      486,   486,   486,   486,   486,   488,   487,   489,   489,   490,
4299      490,   490,   490,   491,   491,   492,   492,   493,   494,   494,
4300      495,   495,   495,   495,   496,   497,   497,   497,   497,   497,
4301      498,   498,   498,   498,   498,   499,   499,   500,   501,   501,
4302      501,   501,   501,   501,   501,   501,   502,   503,   503,   504,
4303      504,   504,   505,   506,   506,   507,   507,   507,   507,   507,
4304      507,   507,   507,   507,   507,   507,   508,   508,   508,   508,
4305      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
4306      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
4307      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
4308      508,   509,   510,   510,   511,   511,   512,   512,   512,   512,
4309      513,   513,   514,   515,   515,   516,   516,   516,   516,   516,
4310      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4311      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4312      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4313      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4314      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4315      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4316      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4317      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4318      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4319      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4320      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4321      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4322      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4323      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4324      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4325      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4326      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4327      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4328      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4329      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4330      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4331      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4332      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4333      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4334      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4335      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4336      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4337      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4338      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4339      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4340      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
4341      517,   517,   517,   519,   518,   520,   518,   521,   521,   522,
4342      522,   523,   523,   524,   524,   525,   525,   525,   525,   526,
4343      526,   527,   528,   528,   529,   529,   529,   529,   529,   529,
4344      529,   529,   530,   531,   532,   533,   531,   534,   534,   536,
4345      535,   537,   535,   538,   538,   539,   539,   540,   540,   541,
4346      541,   542,   543,   543,   544,   544,   545,   545,   547,   546,
4347      548,   548,   549,   549,   550,   550,   552,   551,   553,   551,
4348      554,   551,   555,   555,   556,   556,   557,   557,   558,   558,
4349      558,   558,   558,   558,   558,   558,   559,   559,   560,   560,
4350      560,   562,   561,   563,   564,   564,   565,   565,   566,   566,
4351      567,   567,   568,   568,   569,   569,   570,   570,   570,   570,
4352      570,   570,   571,   571,   572,   572,   572,   572,   572,   573,
4353      573,   574,   574,   575,   575,   575,   575,   575,   575,   575,
4354      575,   576,   576,   577,   577,   577,   577,   578,   578,   579,
4355      579,   580,   580,   580,   580,   581,   581,   582,   582,   583,
4356      583,   584,   584,   585,   585
4357 };
4358
4359   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
4360 static const yytype_int8 yyr2[] =
4361 {
4362        0,     2,     1,     1,     3,     1,     1,     1,     1,     1,
4363        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
4364        1,     3,     2,     2,     1,     1,     1,     2,     2,     2,
4365        1,     2,     3,     2,     1,     1,     1,     1,     2,     2,
4366        2,     1,     1,     1,     1,     1,     3,     3,     3,     1,
4367        3,     3,     1,     3,     3,     1,     3,     3,     3,     3,
4368        1,     3,     3,     1,     3,     1,     3,     1,     3,     1,
4369        3,     1,     3,     1,     3,     1,     0,     6,     1,     3,
4370        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4371        1,     1,     3,     1,     2,     3,     2,     2,     4,     2,
4372        3,     4,     2,     3,     4,     0,     6,     2,     3,     2,
4373        3,     3,     4,     1,     1,     2,     3,     3,     2,     3,
4374        2,     1,     2,     1,     1,     1,     3,     4,     6,     5,
4375        1,     2,     3,     5,     4,     1,     2,     1,     1,     1,
4376        1,     1,     1,     1,     1,     1,     4,     1,     3,     1,
4377        3,     1,     1,     1,     2,     1,     1,     1,     1,     1,
4378        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4379        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4380        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4381        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4382        4,     1,     1,     3,     2,     3,     2,     3,     3,     4,
4383        1,     0,     3,     1,     3,     1,     1,     1,     1,     1,
4384        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4385        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4386        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4387        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4388        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4389        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4390        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4391        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4392        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4393        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4394        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4395        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4396        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4397        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4398        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4399        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4400        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4401        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4402        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4403        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4404        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4405        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4406        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4407        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4408        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4409        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4410        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4411        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4412        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4413        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4414        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4415        1,     1,     1,     0,     6,     0,     5,     1,     2,     3,
4416        4,     1,     3,     1,     2,     1,     3,     4,     2,     1,
4417        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
4418        1,     1,     2,     2,     0,     0,     5,     1,     1,     0,
4419        2,     0,     2,     2,     3,     1,     2,     1,     2,     1,
4420        2,     5,     3,     1,     1,     4,     1,     2,     0,     8,
4421        0,     1,     3,     2,     1,     2,     0,     6,     0,     8,
4422        0,     7,     1,     1,     1,     0,     2,     3,     2,     2,
4423        2,     3,     2,     2,     2,     2,     1,     2,     1,     1,
4424        1,     0,     3,     5,     1,     3,     1,     4,     1,     3,
4425        5,     5,     1,     3,     1,     3,     4,     6,     6,     8,
4426        6,     8,     1,     3,     1,     1,     1,     1,     1,     1,
4427        3,     4,     6,     4,     6,     6,     8,     6,     8,     6,
4428        8,     1,     3,     1,     1,     1,     1,     1,     3,     1,
4429        3,     6,     8,     4,     6,     1,     3,     1,     1,     4,
4430        6,     1,     3,     3,     3
4431 };
4432
4433
4434 enum { YYENOMEM = -2 };
4435
4436 #define yyerrok         (yyerrstatus = 0)
4437 #define yyclearin       (yychar = YYEMPTY)
4438
4439 #define YYACCEPT        goto yyacceptlab
4440 #define YYABORT         goto yyabortlab
4441 #define YYERROR         goto yyerrorlab
4442
4443
4444 #define YYRECOVERING()  (!!yyerrstatus)
4445
4446 #define YYBACKUP(Token, Value)                                    \
4447   do                                                              \
4448     if (yychar == YYEMPTY)                                        \
4449       {                                                           \
4450         yychar = (Token);                                         \
4451         yylval = (Value);                                         \
4452         YYPOPSTACK (yylen);                                       \
4453         yystate = *yyssp;                                         \
4454         goto yybackup;                                            \
4455       }                                                           \
4456     else                                                          \
4457       {                                                           \
4458         yyerror (pParseContext, YY_("syntax error: cannot back up")); \
4459         YYERROR;                                                  \
4460       }                                                           \
4461   while (0)
4462
4463 /* Backward compatibility with an undocumented macro.
4464    Use YYerror or YYUNDEF. */
4465 #define YYERRCODE YYUNDEF
4466
4467
4468 /* Enable debugging if requested.  */
4469 #if YYDEBUG
4470
4471 # ifndef YYFPRINTF
4472 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
4473 #  define YYFPRINTF fprintf
4474 # endif
4475
4476 # define YYDPRINTF(Args)                        \
4477 do {                                            \
4478   if (yydebug)                                  \
4479     YYFPRINTF Args;                             \
4480 } while (0)
4481
4482 /* This macro is provided for backward compatibility. */
4483 # ifndef YY_LOCATION_PRINT
4484 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4485 # endif
4486
4487
4488 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
4489 do {                                                                      \
4490   if (yydebug)                                                            \
4491     {                                                                     \
4492       YYFPRINTF (stderr, "%s ", Title);                                   \
4493       yy_symbol_print (stderr,                                            \
4494                   Kind, Value, pParseContext); \
4495       YYFPRINTF (stderr, "\n");                                           \
4496     }                                                                     \
4497 } while (0)
4498
4499
4500 /*-----------------------------------.
4501 | Print this symbol's value on YYO.  |
4502 `-----------------------------------*/
4503
4504 static void
4505 yy_symbol_value_print (FILE *yyo,
4506                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4507 {
4508   FILE *yyoutput = yyo;
4509   YYUSE (yyoutput);
4510   YYUSE (pParseContext);
4511   if (!yyvaluep)
4512     return;
4513 # ifdef YYPRINT
4514   if (yykind < YYNTOKENS)
4515     YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
4516 # endif
4517   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4518   YYUSE (yykind);
4519   YY_IGNORE_MAYBE_UNINITIALIZED_END
4520 }
4521
4522
4523 /*---------------------------.
4524 | Print this symbol on YYO.  |
4525 `---------------------------*/
4526
4527 static void
4528 yy_symbol_print (FILE *yyo,
4529                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4530 {
4531   YYFPRINTF (yyo, "%s %s (",
4532              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
4533
4534   yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
4535   YYFPRINTF (yyo, ")");
4536 }
4537
4538 /*------------------------------------------------------------------.
4539 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4540 | TOP (included).                                                   |
4541 `------------------------------------------------------------------*/
4542
4543 static void
4544 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
4545 {
4546   YYFPRINTF (stderr, "Stack now");
4547   for (; yybottom <= yytop; yybottom++)
4548     {
4549       int yybot = *yybottom;
4550       YYFPRINTF (stderr, " %d", yybot);
4551     }
4552   YYFPRINTF (stderr, "\n");
4553 }
4554
4555 # define YY_STACK_PRINT(Bottom, Top)                            \
4556 do {                                                            \
4557   if (yydebug)                                                  \
4558     yy_stack_print ((Bottom), (Top));                           \
4559 } while (0)
4560
4561
4562 /*------------------------------------------------.
4563 | Report that the YYRULE is going to be reduced.  |
4564 `------------------------------------------------*/
4565
4566 static void
4567 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
4568                  int yyrule, glslang::TParseContext* pParseContext)
4569 {
4570   int yylno = yyrline[yyrule];
4571   int yynrhs = yyr2[yyrule];
4572   int yyi;
4573   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
4574              yyrule - 1, yylno);
4575   /* The symbols being reduced.  */
4576   for (yyi = 0; yyi < yynrhs; yyi++)
4577     {
4578       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
4579       yy_symbol_print (stderr,
4580                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
4581                        &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
4582       YYFPRINTF (stderr, "\n");
4583     }
4584 }
4585
4586 # define YY_REDUCE_PRINT(Rule)          \
4587 do {                                    \
4588   if (yydebug)                          \
4589     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
4590 } while (0)
4591
4592 /* Nonzero means print parse trace.  It is left uninitialized so that
4593    multiple parsers can coexist.  */
4594 int yydebug;
4595 #else /* !YYDEBUG */
4596 # define YYDPRINTF(Args) ((void) 0)
4597 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
4598 # define YY_STACK_PRINT(Bottom, Top)
4599 # define YY_REDUCE_PRINT(Rule)
4600 #endif /* !YYDEBUG */
4601
4602
4603 /* YYINITDEPTH -- initial size of the parser's stacks.  */
4604 #ifndef YYINITDEPTH
4605 # define YYINITDEPTH 200
4606 #endif
4607
4608 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4609    if the built-in stack extension method is used).
4610
4611    Do not make this value too large; the results are undefined if
4612    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4613    evaluated with infinite-precision integer arithmetic.  */
4614
4615 #ifndef YYMAXDEPTH
4616 # define YYMAXDEPTH 10000
4617 #endif
4618
4619
4620 /* Context of a parse error.  */
4621 typedef struct
4622 {
4623   yy_state_t *yyssp;
4624   yysymbol_kind_t yytoken;
4625 } yypcontext_t;
4626
4627 /* Put in YYARG at most YYARGN of the expected tokens given the
4628    current YYCTX, and return the number of tokens stored in YYARG.  If
4629    YYARG is null, return the number of expected tokens (guaranteed to
4630    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
4631    Return 0 if there are more than YYARGN expected tokens, yet fill
4632    YYARG up to YYARGN. */
4633 static int
4634 yypcontext_expected_tokens (const yypcontext_t *yyctx,
4635                             yysymbol_kind_t yyarg[], int yyargn)
4636 {
4637   /* Actual size of YYARG. */
4638   int yycount = 0;
4639   int yyn = yypact[+*yyctx->yyssp];
4640   if (!yypact_value_is_default (yyn))
4641     {
4642       /* Start YYX at -YYN if negative to avoid negative indexes in
4643          YYCHECK.  In other words, skip the first -YYN actions for
4644          this state because they are default actions.  */
4645       int yyxbegin = yyn < 0 ? -yyn : 0;
4646       /* Stay within bounds of both yycheck and yytname.  */
4647       int yychecklim = YYLAST - yyn + 1;
4648       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4649       int yyx;
4650       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4651         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
4652             && !yytable_value_is_error (yytable[yyx + yyn]))
4653           {
4654             if (!yyarg)
4655               ++yycount;
4656             else if (yycount == yyargn)
4657               return 0;
4658             else
4659               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
4660           }
4661     }
4662   if (yyarg && yycount == 0 && 0 < yyargn)
4663     yyarg[0] = YYSYMBOL_YYEMPTY;
4664   return yycount;
4665 }
4666
4667
4668
4669
4670 #ifndef yystrlen
4671 # if defined __GLIBC__ && defined _STRING_H
4672 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
4673 # else
4674 /* Return the length of YYSTR.  */
4675 static YYPTRDIFF_T
4676 yystrlen (const char *yystr)
4677 {
4678   YYPTRDIFF_T yylen;
4679   for (yylen = 0; yystr[yylen]; yylen++)
4680     continue;
4681   return yylen;
4682 }
4683 # endif
4684 #endif
4685
4686 #ifndef yystpcpy
4687 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4688 #  define yystpcpy stpcpy
4689 # else
4690 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4691    YYDEST.  */
4692 static char *
4693 yystpcpy (char *yydest, const char *yysrc)
4694 {
4695   char *yyd = yydest;
4696   const char *yys = yysrc;
4697
4698   while ((*yyd++ = *yys++) != '\0')
4699     continue;
4700
4701   return yyd - 1;
4702 }
4703 # endif
4704 #endif
4705
4706 #ifndef yytnamerr
4707 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4708    quotes and backslashes, so that it's suitable for yyerror.  The
4709    heuristic is that double-quoting is unnecessary unless the string
4710    contains an apostrophe, a comma, or backslash (other than
4711    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
4712    null, do not copy; instead, return the length of what the result
4713    would have been.  */
4714 static YYPTRDIFF_T
4715 yytnamerr (char *yyres, const char *yystr)
4716 {
4717   if (*yystr == '"')
4718     {
4719       YYPTRDIFF_T yyn = 0;
4720       char const *yyp = yystr;
4721       for (;;)
4722         switch (*++yyp)
4723           {
4724           case '\'':
4725           case ',':
4726             goto do_not_strip_quotes;
4727
4728           case '\\':
4729             if (*++yyp != '\\')
4730               goto do_not_strip_quotes;
4731             else
4732               goto append;
4733
4734           append:
4735           default:
4736             if (yyres)
4737               yyres[yyn] = *yyp;
4738             yyn++;
4739             break;
4740
4741           case '"':
4742             if (yyres)
4743               yyres[yyn] = '\0';
4744             return yyn;
4745           }
4746     do_not_strip_quotes: ;
4747     }
4748
4749   if (yyres)
4750     return yystpcpy (yyres, yystr) - yyres;
4751   else
4752     return yystrlen (yystr);
4753 }
4754 #endif
4755
4756
4757 static int
4758 yy_syntax_error_arguments (const yypcontext_t *yyctx,
4759                            yysymbol_kind_t yyarg[], int yyargn)
4760 {
4761   /* Actual size of YYARG. */
4762   int yycount = 0;
4763   /* There are many possibilities here to consider:
4764      - If this state is a consistent state with a default action, then
4765        the only way this function was invoked is if the default action
4766        is an error action.  In that case, don't check for expected
4767        tokens because there are none.
4768      - The only way there can be no lookahead present (in yychar) is if
4769        this state is a consistent state with a default action.  Thus,
4770        detecting the absence of a lookahead is sufficient to determine
4771        that there is no unexpected or expected token to report.  In that
4772        case, just report a simple "syntax error".
4773      - Don't assume there isn't a lookahead just because this state is a
4774        consistent state with a default action.  There might have been a
4775        previous inconsistent state, consistent state with a non-default
4776        action, or user semantic action that manipulated yychar.
4777      - Of course, the expected token list depends on states to have
4778        correct lookahead information, and it depends on the parser not
4779        to perform extra reductions after fetching a lookahead from the
4780        scanner and before detecting a syntax error.  Thus, state merging
4781        (from LALR or IELR) and default reductions corrupt the expected
4782        token list.  However, the list is correct for canonical LR with
4783        one exception: it will still contain any token that will not be
4784        accepted due to an error action in a later state.
4785   */
4786   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
4787     {
4788       int yyn;
4789       if (yyarg)
4790         yyarg[yycount] = yyctx->yytoken;
4791       ++yycount;
4792       yyn = yypcontext_expected_tokens (yyctx,
4793                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4794       if (yyn == YYENOMEM)
4795         return YYENOMEM;
4796       else
4797         yycount += yyn;
4798     }
4799   return yycount;
4800 }
4801
4802 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
4803    about the unexpected token YYTOKEN for the state stack whose top is
4804    YYSSP.
4805
4806    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
4807    not large enough to hold the message.  In that case, also set
4808    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
4809    required number of bytes is too large to store.  */
4810 static int
4811 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
4812                 const yypcontext_t *yyctx)
4813 {
4814   enum { YYARGS_MAX = 5 };
4815   /* Internationalized format string. */
4816   const char *yyformat = YY_NULLPTR;
4817   /* Arguments of yyformat: reported tokens (one for the "unexpected",
4818      one per "expected"). */
4819   yysymbol_kind_t yyarg[YYARGS_MAX];
4820   /* Cumulated lengths of YYARG.  */
4821   YYPTRDIFF_T yysize = 0;
4822
4823   /* Actual size of YYARG. */
4824   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
4825   if (yycount == YYENOMEM)
4826     return YYENOMEM;
4827
4828   switch (yycount)
4829     {
4830 #define YYCASE_(N, S)                       \
4831       case N:                               \
4832         yyformat = S;                       \
4833         break
4834     default: /* Avoid compiler warnings. */
4835       YYCASE_(0, YY_("syntax error"));
4836       YYCASE_(1, YY_("syntax error, unexpected %s"));
4837       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
4838       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
4839       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
4840       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4841 #undef YYCASE_
4842     }
4843
4844   /* Compute error message size.  Don't count the "%s"s, but reserve
4845      room for the terminator.  */
4846   yysize = yystrlen (yyformat) - 2 * yycount + 1;
4847   {
4848     int yyi;
4849     for (yyi = 0; yyi < yycount; ++yyi)
4850       {
4851         YYPTRDIFF_T yysize1
4852           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
4853         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
4854           yysize = yysize1;
4855         else
4856           return YYENOMEM;
4857       }
4858   }
4859
4860   if (*yymsg_alloc < yysize)
4861     {
4862       *yymsg_alloc = 2 * yysize;
4863       if (! (yysize <= *yymsg_alloc
4864              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
4865         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
4866       return -1;
4867     }
4868
4869   /* Avoid sprintf, as that infringes on the user's name space.
4870      Don't have undefined behavior even if the translation
4871      produced a string with the wrong number of "%s"s.  */
4872   {
4873     char *yyp = *yymsg;
4874     int yyi = 0;
4875     while ((*yyp = *yyformat) != '\0')
4876       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4877         {
4878           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
4879           yyformat += 2;
4880         }
4881       else
4882         {
4883           ++yyp;
4884           ++yyformat;
4885         }
4886   }
4887   return 0;
4888 }
4889
4890
4891 /*-----------------------------------------------.
4892 | Release the memory associated to this symbol.  |
4893 `-----------------------------------------------*/
4894
4895 static void
4896 yydestruct (const char *yymsg,
4897             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
4898 {
4899   YYUSE (yyvaluep);
4900   YYUSE (pParseContext);
4901   if (!yymsg)
4902     yymsg = "Deleting";
4903   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4904
4905   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4906   YYUSE (yykind);
4907   YY_IGNORE_MAYBE_UNINITIALIZED_END
4908 }
4909
4910
4911
4912
4913
4914
4915 /*----------.
4916 | yyparse.  |
4917 `----------*/
4918
4919 int
4920 yyparse (glslang::TParseContext* pParseContext)
4921 {
4922 /* Lookahead token kind.  */
4923 int yychar;
4924
4925
4926 /* The semantic value of the lookahead symbol.  */
4927 /* Default value used for initialization, for pacifying older GCCs
4928    or non-GCC compilers.  */
4929 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4930 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4931
4932     /* Number of syntax errors so far.  */
4933     int yynerrs = 0;
4934
4935     yy_state_fast_t yystate = 0;
4936     /* Number of tokens to shift before error messages enabled.  */
4937     int yyerrstatus = 0;
4938
4939     /* Refer to the stacks through separate pointers, to allow yyoverflow
4940        to reallocate them elsewhere.  */
4941
4942     /* Their size.  */
4943     YYPTRDIFF_T yystacksize = YYINITDEPTH;
4944
4945     /* The state stack: array, bottom, top.  */
4946     yy_state_t yyssa[YYINITDEPTH];
4947     yy_state_t *yyss = yyssa;
4948     yy_state_t *yyssp = yyss;
4949
4950     /* The semantic value stack: array, bottom, top.  */
4951     YYSTYPE yyvsa[YYINITDEPTH];
4952     YYSTYPE *yyvs = yyvsa;
4953     YYSTYPE *yyvsp = yyvs;
4954
4955   int yyn;
4956   /* The return value of yyparse.  */
4957   int yyresult;
4958   /* Lookahead symbol kind.  */
4959   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4960   /* The variables used to return semantic value and location from the
4961      action routines.  */
4962   YYSTYPE yyval;
4963
4964   /* Buffer for error messages, and its allocated size.  */
4965   char yymsgbuf[128];
4966   char *yymsg = yymsgbuf;
4967   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
4968
4969 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
4970
4971   /* The number of symbols on the RHS of the reduced rule.
4972      Keep to zero when no symbol should be popped.  */
4973   int yylen = 0;
4974
4975   YYDPRINTF ((stderr, "Starting parse\n"));
4976
4977   yychar = YYEMPTY; /* Cause a token to be read.  */
4978   goto yysetstate;
4979
4980
4981 /*------------------------------------------------------------.
4982 | yynewstate -- push a new state, which is found in yystate.  |
4983 `------------------------------------------------------------*/
4984 yynewstate:
4985   /* In all cases, when you get here, the value and location stacks
4986      have just been pushed.  So pushing a state here evens the stacks.  */
4987   yyssp++;
4988
4989
4990 /*--------------------------------------------------------------------.
4991 | yysetstate -- set current state (the top of the stack) to yystate.  |
4992 `--------------------------------------------------------------------*/
4993 yysetstate:
4994   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4995   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
4996   YY_IGNORE_USELESS_CAST_BEGIN
4997   *yyssp = YY_CAST (yy_state_t, yystate);
4998   YY_IGNORE_USELESS_CAST_END
4999   YY_STACK_PRINT (yyss, yyssp);
5000
5001   if (yyss + yystacksize - 1 <= yyssp)
5002 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
5003     goto yyexhaustedlab;
5004 #else
5005     {
5006       /* Get the current used size of the three stacks, in elements.  */
5007       YYPTRDIFF_T yysize = yyssp - yyss + 1;
5008
5009 # if defined yyoverflow
5010       {
5011         /* Give user a chance to reallocate the stack.  Use copies of
5012            these so that the &'s don't force the real ones into
5013            memory.  */
5014         yy_state_t *yyss1 = yyss;
5015         YYSTYPE *yyvs1 = yyvs;
5016
5017         /* Each stack pointer address is followed by the size of the
5018            data in use in that stack, in bytes.  This used to be a
5019            conditional around just the two extra args, but that might
5020            be undefined if yyoverflow is a macro.  */
5021         yyoverflow (YY_("memory exhausted"),
5022                     &yyss1, yysize * YYSIZEOF (*yyssp),
5023                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
5024                     &yystacksize);
5025         yyss = yyss1;
5026         yyvs = yyvs1;
5027       }
5028 # else /* defined YYSTACK_RELOCATE */
5029       /* Extend the stack our own way.  */
5030       if (YYMAXDEPTH <= yystacksize)
5031         goto yyexhaustedlab;
5032       yystacksize *= 2;
5033       if (YYMAXDEPTH < yystacksize)
5034         yystacksize = YYMAXDEPTH;
5035
5036       {
5037         yy_state_t *yyss1 = yyss;
5038         union yyalloc *yyptr =
5039           YY_CAST (union yyalloc *,
5040                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
5041         if (! yyptr)
5042           goto yyexhaustedlab;
5043         YYSTACK_RELOCATE (yyss_alloc, yyss);
5044         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
5045 #  undef YYSTACK_RELOCATE
5046         if (yyss1 != yyssa)
5047           YYSTACK_FREE (yyss1);
5048       }
5049 # endif
5050
5051       yyssp = yyss + yysize - 1;
5052       yyvsp = yyvs + yysize - 1;
5053
5054       YY_IGNORE_USELESS_CAST_BEGIN
5055       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
5056                   YY_CAST (long, yystacksize)));
5057       YY_IGNORE_USELESS_CAST_END
5058
5059       if (yyss + yystacksize - 1 <= yyssp)
5060         YYABORT;
5061     }
5062 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
5063
5064   if (yystate == YYFINAL)
5065     YYACCEPT;
5066
5067   goto yybackup;
5068
5069
5070 /*-----------.
5071 | yybackup.  |
5072 `-----------*/
5073 yybackup:
5074   /* Do appropriate processing given the current state.  Read a
5075      lookahead token if we need one and don't already have one.  */
5076
5077   /* First try to decide what to do without reference to lookahead token.  */
5078   yyn = yypact[yystate];
5079   if (yypact_value_is_default (yyn))
5080     goto yydefault;
5081
5082   /* Not known => get a lookahead token if don't already have one.  */
5083
5084   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
5085   if (yychar == YYEMPTY)
5086     {
5087       YYDPRINTF ((stderr, "Reading a token\n"));
5088       yychar = yylex (&yylval, parseContext);
5089     }
5090
5091   if (yychar <= YYEOF)
5092     {
5093       yychar = YYEOF;
5094       yytoken = YYSYMBOL_YYEOF;
5095       YYDPRINTF ((stderr, "Now at end of input.\n"));
5096     }
5097   else if (yychar == YYerror)
5098     {
5099       /* The scanner already issued an error message, process directly
5100          to error recovery.  But do not keep the error token as
5101          lookahead, it is too special and may lead us to an endless
5102          loop in error recovery. */
5103       yychar = YYUNDEF;
5104       yytoken = YYSYMBOL_YYerror;
5105       goto yyerrlab1;
5106     }
5107   else
5108     {
5109       yytoken = YYTRANSLATE (yychar);
5110       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5111     }
5112
5113   /* If the proper action on seeing token YYTOKEN is to reduce or to
5114      detect an error, take that action.  */
5115   yyn += yytoken;
5116   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5117     goto yydefault;
5118   yyn = yytable[yyn];
5119   if (yyn <= 0)
5120     {
5121       if (yytable_value_is_error (yyn))
5122         goto yyerrlab;
5123       yyn = -yyn;
5124       goto yyreduce;
5125     }
5126
5127   /* Count tokens shifted since error; after three, turn off error
5128      status.  */
5129   if (yyerrstatus)
5130     yyerrstatus--;
5131
5132   /* Shift the lookahead token.  */
5133   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5134   yystate = yyn;
5135   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5136   *++yyvsp = yylval;
5137   YY_IGNORE_MAYBE_UNINITIALIZED_END
5138
5139   /* Discard the shifted token.  */
5140   yychar = YYEMPTY;
5141   goto yynewstate;
5142
5143
5144 /*-----------------------------------------------------------.
5145 | yydefault -- do the default action for the current state.  |
5146 `-----------------------------------------------------------*/
5147 yydefault:
5148   yyn = yydefact[yystate];
5149   if (yyn == 0)
5150     goto yyerrlab;
5151   goto yyreduce;
5152
5153
5154 /*-----------------------------.
5155 | yyreduce -- do a reduction.  |
5156 `-----------------------------*/
5157 yyreduce:
5158   /* yyn is the number of a rule to reduce with.  */
5159   yylen = yyr2[yyn];
5160
5161   /* If YYLEN is nonzero, implement the default value of the action:
5162      '$$ = $1'.
5163
5164      Otherwise, the following line sets YYVAL to garbage.
5165      This behavior is undocumented and Bison
5166      users should not rely upon it.  Assigning to YYVAL
5167      unconditionally makes the parser a bit smaller, and it avoids a
5168      GCC warning that YYVAL may be used uninitialized.  */
5169   yyval = yyvsp[1-yylen];
5170
5171
5172   YY_REDUCE_PRINT (yyn);
5173   switch (yyn)
5174     {
5175   case 2: /* variable_identifier: IDENTIFIER  */
5176 #line 392 "MachineIndependent/glslang.y"
5177                  {
5178         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
5179     }
5180 #line 5181 "MachineIndependent/glslang_tab.cpp"
5181     break;
5182
5183   case 3: /* primary_expression: variable_identifier  */
5184 #line 398 "MachineIndependent/glslang.y"
5185                           {
5186         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5187     }
5188 #line 5189 "MachineIndependent/glslang_tab.cpp"
5189     break;
5190
5191   case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN  */
5192 #line 401 "MachineIndependent/glslang.y"
5193                                         {
5194         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
5195         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5196             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5197     }
5198 #line 5199 "MachineIndependent/glslang_tab.cpp"
5199     break;
5200
5201   case 5: /* primary_expression: FLOATCONSTANT  */
5202 #line 406 "MachineIndependent/glslang.y"
5203                     {
5204         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
5205     }
5206 #line 5207 "MachineIndependent/glslang_tab.cpp"
5207     break;
5208
5209   case 6: /* primary_expression: INTCONSTANT  */
5210 #line 409 "MachineIndependent/glslang.y"
5211                   {
5212         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5213     }
5214 #line 5215 "MachineIndependent/glslang_tab.cpp"
5215     break;
5216
5217   case 7: /* primary_expression: UINTCONSTANT  */
5218 #line 412 "MachineIndependent/glslang.y"
5219                    {
5220         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
5221         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5222     }
5223 #line 5224 "MachineIndependent/glslang_tab.cpp"
5224     break;
5225
5226   case 8: /* primary_expression: BOOLCONSTANT  */
5227 #line 416 "MachineIndependent/glslang.y"
5228                    {
5229         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
5230     }
5231 #line 5232 "MachineIndependent/glslang_tab.cpp"
5232     break;
5233
5234   case 9: /* primary_expression: STRING_LITERAL  */
5235 #line 420 "MachineIndependent/glslang.y"
5236                      {
5237         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
5238     }
5239 #line 5240 "MachineIndependent/glslang_tab.cpp"
5240     break;
5241
5242   case 10: /* primary_expression: INT32CONSTANT  */
5243 #line 423 "MachineIndependent/glslang.y"
5244                     {
5245         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5246         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5247     }
5248 #line 5249 "MachineIndependent/glslang_tab.cpp"
5249     break;
5250
5251   case 11: /* primary_expression: UINT32CONSTANT  */
5252 #line 427 "MachineIndependent/glslang.y"
5253                      {
5254         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5255         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5256     }
5257 #line 5258 "MachineIndependent/glslang_tab.cpp"
5258     break;
5259
5260   case 12: /* primary_expression: INT64CONSTANT  */
5261 #line 431 "MachineIndependent/glslang.y"
5262                     {
5263         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
5264         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
5265     }
5266 #line 5267 "MachineIndependent/glslang_tab.cpp"
5267     break;
5268
5269   case 13: /* primary_expression: UINT64CONSTANT  */
5270 #line 435 "MachineIndependent/glslang.y"
5271                      {
5272         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
5273         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
5274     }
5275 #line 5276 "MachineIndependent/glslang_tab.cpp"
5276     break;
5277
5278   case 14: /* primary_expression: INT16CONSTANT  */
5279 #line 439 "MachineIndependent/glslang.y"
5280                     {
5281         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
5282         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5283     }
5284 #line 5285 "MachineIndependent/glslang_tab.cpp"
5285     break;
5286
5287   case 15: /* primary_expression: UINT16CONSTANT  */
5288 #line 443 "MachineIndependent/glslang.y"
5289                      {
5290         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
5291         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5292     }
5293 #line 5294 "MachineIndependent/glslang_tab.cpp"
5294     break;
5295
5296   case 16: /* primary_expression: DOUBLECONSTANT  */
5297 #line 447 "MachineIndependent/glslang.y"
5298                      {
5299         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
5300         if (! parseContext.symbolTable.atBuiltInLevel())
5301             parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
5302         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
5303     }
5304 #line 5305 "MachineIndependent/glslang_tab.cpp"
5305     break;
5306
5307   case 17: /* primary_expression: FLOAT16CONSTANT  */
5308 #line 453 "MachineIndependent/glslang.y"
5309                       {
5310         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
5311         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
5312     }
5313 #line 5314 "MachineIndependent/glslang_tab.cpp"
5314     break;
5315
5316   case 18: /* postfix_expression: primary_expression  */
5317 #line 461 "MachineIndependent/glslang.y"
5318                          {
5319         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5320     }
5321 #line 5322 "MachineIndependent/glslang_tab.cpp"
5322     break;
5323
5324   case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET  */
5325 #line 464 "MachineIndependent/glslang.y"
5326                                                                        {
5327         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
5328     }
5329 #line 5330 "MachineIndependent/glslang_tab.cpp"
5330     break;
5331
5332   case 20: /* postfix_expression: function_call  */
5333 #line 467 "MachineIndependent/glslang.y"
5334                     {
5335         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5336     }
5337 #line 5338 "MachineIndependent/glslang_tab.cpp"
5338     break;
5339
5340   case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER  */
5341 #line 470 "MachineIndependent/glslang.y"
5342                                         {
5343         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
5344     }
5345 #line 5346 "MachineIndependent/glslang_tab.cpp"
5346     break;
5347
5348   case 22: /* postfix_expression: postfix_expression INC_OP  */
5349 #line 473 "MachineIndependent/glslang.y"
5350                                 {
5351         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5352         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
5353         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
5354     }
5355 #line 5356 "MachineIndependent/glslang_tab.cpp"
5356     break;
5357
5358   case 23: /* postfix_expression: postfix_expression DEC_OP  */
5359 #line 478 "MachineIndependent/glslang.y"
5360                                 {
5361         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
5362         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
5363         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
5364     }
5365 #line 5366 "MachineIndependent/glslang_tab.cpp"
5366     break;
5367
5368   case 24: /* integer_expression: expression  */
5369 #line 486 "MachineIndependent/glslang.y"
5370                  {
5371         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
5372         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5373     }
5374 #line 5375 "MachineIndependent/glslang_tab.cpp"
5375     break;
5376
5377   case 25: /* function_call: function_call_or_method  */
5378 #line 493 "MachineIndependent/glslang.y"
5379                               {
5380         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
5381         delete (yyvsp[0].interm).function;
5382     }
5383 #line 5384 "MachineIndependent/glslang_tab.cpp"
5384     break;
5385
5386   case 26: /* function_call_or_method: function_call_generic  */
5387 #line 500 "MachineIndependent/glslang.y"
5388                             {
5389         (yyval.interm) = (yyvsp[0].interm);
5390     }
5391 #line 5392 "MachineIndependent/glslang_tab.cpp"
5392     break;
5393
5394   case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN  */
5395 #line 506 "MachineIndependent/glslang.y"
5396                                                        {
5397         (yyval.interm) = (yyvsp[-1].interm);
5398         (yyval.interm).loc = (yyvsp[0].lex).loc;
5399     }
5400 #line 5401 "MachineIndependent/glslang_tab.cpp"
5401     break;
5402
5403   case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN  */
5404 #line 510 "MachineIndependent/glslang.y"
5405                                                      {
5406         (yyval.interm) = (yyvsp[-1].interm);
5407         (yyval.interm).loc = (yyvsp[0].lex).loc;
5408     }
5409 #line 5410 "MachineIndependent/glslang_tab.cpp"
5410     break;
5411
5412   case 29: /* function_call_header_no_parameters: function_call_header VOID  */
5413 #line 517 "MachineIndependent/glslang.y"
5414                                 {
5415         (yyval.interm) = (yyvsp[-1].interm);
5416     }
5417 #line 5418 "MachineIndependent/glslang_tab.cpp"
5418     break;
5419
5420   case 30: /* function_call_header_no_parameters: function_call_header  */
5421 #line 520 "MachineIndependent/glslang.y"
5422                            {
5423         (yyval.interm) = (yyvsp[0].interm);
5424     }
5425 #line 5426 "MachineIndependent/glslang_tab.cpp"
5426     break;
5427
5428   case 31: /* function_call_header_with_parameters: function_call_header assignment_expression  */
5429 #line 526 "MachineIndependent/glslang.y"
5430                                                  {
5431         TParameter param = { 0, new TType };
5432         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5433         (yyvsp[-1].interm).function->addParameter(param);
5434         (yyval.interm).function = (yyvsp[-1].interm).function;
5435         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
5436     }
5437 #line 5438 "MachineIndependent/glslang_tab.cpp"
5438     break;
5439
5440   case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression  */
5441 #line 533 "MachineIndependent/glslang.y"
5442                                                                        {
5443         TParameter param = { 0, new TType };
5444         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
5445         (yyvsp[-2].interm).function->addParameter(param);
5446         (yyval.interm).function = (yyvsp[-2].interm).function;
5447         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5448     }
5449 #line 5450 "MachineIndependent/glslang_tab.cpp"
5450     break;
5451
5452   case 33: /* function_call_header: function_identifier LEFT_PAREN  */
5453 #line 543 "MachineIndependent/glslang.y"
5454                                      {
5455         (yyval.interm) = (yyvsp[-1].interm);
5456     }
5457 #line 5458 "MachineIndependent/glslang_tab.cpp"
5458     break;
5459
5460   case 34: /* function_identifier: type_specifier  */
5461 #line 551 "MachineIndependent/glslang.y"
5462                      {
5463         // Constructor
5464         (yyval.interm).intermNode = 0;
5465         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5466     }
5467 #line 5468 "MachineIndependent/glslang_tab.cpp"
5468     break;
5469
5470   case 35: /* function_identifier: postfix_expression  */
5471 #line 556 "MachineIndependent/glslang.y"
5472                          {
5473         //
5474         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
5475         //
5476         (yyval.interm).function = 0;
5477         (yyval.interm).intermNode = 0;
5478
5479         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
5480         if (method) {
5481             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
5482             (yyval.interm).intermNode = method->getObject();
5483         } else {
5484             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
5485             if (symbol) {
5486                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
5487                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
5488                 (yyval.interm).function = function;
5489             } else
5490                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
5491         }
5492
5493         if ((yyval.interm).function == 0) {
5494             // error recover
5495             TString* empty = NewPoolTString("");
5496             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
5497         }
5498     }
5499 #line 5500 "MachineIndependent/glslang_tab.cpp"
5500     break;
5501
5502   case 36: /* function_identifier: non_uniform_qualifier  */
5503 #line 584 "MachineIndependent/glslang.y"
5504                             {
5505         // Constructor
5506         (yyval.interm).intermNode = 0;
5507         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5508     }
5509 #line 5510 "MachineIndependent/glslang_tab.cpp"
5510     break;
5511
5512   case 37: /* unary_expression: postfix_expression  */
5513 #line 593 "MachineIndependent/glslang.y"
5514                          {
5515         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
5516         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5517         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
5518             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
5519     }
5520 #line 5521 "MachineIndependent/glslang_tab.cpp"
5521     break;
5522
5523   case 38: /* unary_expression: INC_OP unary_expression  */
5524 #line 599 "MachineIndependent/glslang.y"
5525                               {
5526         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
5527         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
5528     }
5529 #line 5530 "MachineIndependent/glslang_tab.cpp"
5530     break;
5531
5532   case 39: /* unary_expression: DEC_OP unary_expression  */
5533 #line 603 "MachineIndependent/glslang.y"
5534                               {
5535         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
5536         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
5537     }
5538 #line 5539 "MachineIndependent/glslang_tab.cpp"
5539     break;
5540
5541   case 40: /* unary_expression: unary_operator unary_expression  */
5542 #line 607 "MachineIndependent/glslang.y"
5543                                       {
5544         if ((yyvsp[-1].interm).op != EOpNull) {
5545             char errorOp[2] = {0, 0};
5546             switch((yyvsp[-1].interm).op) {
5547             case EOpNegative:   errorOp[0] = '-'; break;
5548             case EOpLogicalNot: errorOp[0] = '!'; break;
5549             case EOpBitwiseNot: errorOp[0] = '~'; break;
5550             default: break; // some compilers want this
5551             }
5552             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
5553         } else {
5554             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5555             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5556                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5557         }
5558     }
5559 #line 5560 "MachineIndependent/glslang_tab.cpp"
5560     break;
5561
5562   case 41: /* unary_operator: PLUS  */
5563 #line 627 "MachineIndependent/glslang.y"
5564             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
5565 #line 5566 "MachineIndependent/glslang_tab.cpp"
5566     break;
5567
5568   case 42: /* unary_operator: DASH  */
5569 #line 628 "MachineIndependent/glslang.y"
5570             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
5571 #line 5572 "MachineIndependent/glslang_tab.cpp"
5572     break;
5573
5574   case 43: /* unary_operator: BANG  */
5575 #line 629 "MachineIndependent/glslang.y"
5576             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
5577 #line 5578 "MachineIndependent/glslang_tab.cpp"
5578     break;
5579
5580   case 44: /* unary_operator: TILDE  */
5581 #line 630 "MachineIndependent/glslang.y"
5582             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
5583               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
5584 #line 5585 "MachineIndependent/glslang_tab.cpp"
5585     break;
5586
5587   case 45: /* multiplicative_expression: unary_expression  */
5588 #line 636 "MachineIndependent/glslang.y"
5589                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5590 #line 5591 "MachineIndependent/glslang_tab.cpp"
5591     break;
5592
5593   case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression  */
5594 #line 637 "MachineIndependent/glslang.y"
5595                                                       {
5596         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5597         if ((yyval.interm.intermTypedNode) == 0)
5598             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5599     }
5600 #line 5601 "MachineIndependent/glslang_tab.cpp"
5601     break;
5602
5603   case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression  */
5604 #line 642 "MachineIndependent/glslang.y"
5605                                                        {
5606         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5607         if ((yyval.interm.intermTypedNode) == 0)
5608             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5609     }
5610 #line 5611 "MachineIndependent/glslang_tab.cpp"
5611     break;
5612
5613   case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression  */
5614 #line 647 "MachineIndependent/glslang.y"
5615                                                          {
5616         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
5617         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5618         if ((yyval.interm.intermTypedNode) == 0)
5619             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5620     }
5621 #line 5622 "MachineIndependent/glslang_tab.cpp"
5622     break;
5623
5624   case 49: /* additive_expression: multiplicative_expression  */
5625 #line 656 "MachineIndependent/glslang.y"
5626                                 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5627 #line 5628 "MachineIndependent/glslang_tab.cpp"
5628     break;
5629
5630   case 50: /* additive_expression: additive_expression PLUS multiplicative_expression  */
5631 #line 657 "MachineIndependent/glslang.y"
5632                                                          {
5633         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5634         if ((yyval.interm.intermTypedNode) == 0)
5635             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5636     }
5637 #line 5638 "MachineIndependent/glslang_tab.cpp"
5638     break;
5639
5640   case 51: /* additive_expression: additive_expression DASH multiplicative_expression  */
5641 #line 662 "MachineIndependent/glslang.y"
5642                                                          {
5643         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5644         if ((yyval.interm.intermTypedNode) == 0)
5645             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5646     }
5647 #line 5648 "MachineIndependent/glslang_tab.cpp"
5648     break;
5649
5650   case 52: /* shift_expression: additive_expression  */
5651 #line 670 "MachineIndependent/glslang.y"
5652                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5653 #line 5654 "MachineIndependent/glslang_tab.cpp"
5654     break;
5655
5656   case 53: /* shift_expression: shift_expression LEFT_OP additive_expression  */
5657 #line 671 "MachineIndependent/glslang.y"
5658                                                    {
5659         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
5660         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5661         if ((yyval.interm.intermTypedNode) == 0)
5662             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5663     }
5664 #line 5665 "MachineIndependent/glslang_tab.cpp"
5665     break;
5666
5667   case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression  */
5668 #line 677 "MachineIndependent/glslang.y"
5669                                                     {
5670         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
5671         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5672         if ((yyval.interm.intermTypedNode) == 0)
5673             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5674     }
5675 #line 5676 "MachineIndependent/glslang_tab.cpp"
5676     break;
5677
5678   case 55: /* relational_expression: shift_expression  */
5679 #line 686 "MachineIndependent/glslang.y"
5680                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5681 #line 5682 "MachineIndependent/glslang_tab.cpp"
5682     break;
5683
5684   case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression  */
5685 #line 687 "MachineIndependent/glslang.y"
5686                                                         {
5687         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5688         if ((yyval.interm.intermTypedNode) == 0)
5689             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5690     }
5691 #line 5692 "MachineIndependent/glslang_tab.cpp"
5692     break;
5693
5694   case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression  */
5695 #line 692 "MachineIndependent/glslang.y"
5696                                                           {
5697         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5698         if ((yyval.interm.intermTypedNode) == 0)
5699             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5700     }
5701 #line 5702 "MachineIndependent/glslang_tab.cpp"
5702     break;
5703
5704   case 58: /* relational_expression: relational_expression LE_OP shift_expression  */
5705 #line 697 "MachineIndependent/glslang.y"
5706                                                     {
5707         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5708         if ((yyval.interm.intermTypedNode) == 0)
5709             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5710     }
5711 #line 5712 "MachineIndependent/glslang_tab.cpp"
5712     break;
5713
5714   case 59: /* relational_expression: relational_expression GE_OP shift_expression  */
5715 #line 702 "MachineIndependent/glslang.y"
5716                                                     {
5717         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5718         if ((yyval.interm.intermTypedNode) == 0)
5719             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5720     }
5721 #line 5722 "MachineIndependent/glslang_tab.cpp"
5722     break;
5723
5724   case 60: /* equality_expression: relational_expression  */
5725 #line 710 "MachineIndependent/glslang.y"
5726                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5727 #line 5728 "MachineIndependent/glslang_tab.cpp"
5728     break;
5729
5730   case 61: /* equality_expression: equality_expression EQ_OP relational_expression  */
5731 #line 711 "MachineIndependent/glslang.y"
5732                                                        {
5733         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5734         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5735         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5736         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5737         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5738         if ((yyval.interm.intermTypedNode) == 0)
5739             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5740     }
5741 #line 5742 "MachineIndependent/glslang_tab.cpp"
5742     break;
5743
5744   case 62: /* equality_expression: equality_expression NE_OP relational_expression  */
5745 #line 720 "MachineIndependent/glslang.y"
5746                                                       {
5747         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5748         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5749         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5750         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5751         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5752         if ((yyval.interm.intermTypedNode) == 0)
5753             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5754     }
5755 #line 5756 "MachineIndependent/glslang_tab.cpp"
5756     break;
5757
5758   case 63: /* and_expression: equality_expression  */
5759 #line 732 "MachineIndependent/glslang.y"
5760                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5761 #line 5762 "MachineIndependent/glslang_tab.cpp"
5762     break;
5763
5764   case 64: /* and_expression: and_expression AMPERSAND equality_expression  */
5765 #line 733 "MachineIndependent/glslang.y"
5766                                                    {
5767         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
5768         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5769         if ((yyval.interm.intermTypedNode) == 0)
5770             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5771     }
5772 #line 5773 "MachineIndependent/glslang_tab.cpp"
5773     break;
5774
5775   case 65: /* exclusive_or_expression: and_expression  */
5776 #line 742 "MachineIndependent/glslang.y"
5777                      { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5778 #line 5779 "MachineIndependent/glslang_tab.cpp"
5779     break;
5780
5781   case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression  */
5782 #line 743 "MachineIndependent/glslang.y"
5783                                                    {
5784         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
5785         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5786         if ((yyval.interm.intermTypedNode) == 0)
5787             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5788     }
5789 #line 5790 "MachineIndependent/glslang_tab.cpp"
5790     break;
5791
5792   case 67: /* inclusive_or_expression: exclusive_or_expression  */
5793 #line 752 "MachineIndependent/glslang.y"
5794                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5795 #line 5796 "MachineIndependent/glslang_tab.cpp"
5796     break;
5797
5798   case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression  */
5799 #line 753 "MachineIndependent/glslang.y"
5800                                                                    {
5801         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
5802         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5803         if ((yyval.interm.intermTypedNode) == 0)
5804             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5805     }
5806 #line 5807 "MachineIndependent/glslang_tab.cpp"
5807     break;
5808
5809   case 69: /* logical_and_expression: inclusive_or_expression  */
5810 #line 762 "MachineIndependent/glslang.y"
5811                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5812 #line 5813 "MachineIndependent/glslang_tab.cpp"
5813     break;
5814
5815   case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression  */
5816 #line 763 "MachineIndependent/glslang.y"
5817                                                             {
5818         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5819         if ((yyval.interm.intermTypedNode) == 0)
5820             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5821     }
5822 #line 5823 "MachineIndependent/glslang_tab.cpp"
5823     break;
5824
5825   case 71: /* logical_xor_expression: logical_and_expression  */
5826 #line 771 "MachineIndependent/glslang.y"
5827                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5828 #line 5829 "MachineIndependent/glslang_tab.cpp"
5829     break;
5830
5831   case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression  */
5832 #line 772 "MachineIndependent/glslang.y"
5833                                                             {
5834         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5835         if ((yyval.interm.intermTypedNode) == 0)
5836             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5837     }
5838 #line 5839 "MachineIndependent/glslang_tab.cpp"
5839     break;
5840
5841   case 73: /* logical_or_expression: logical_xor_expression  */
5842 #line 780 "MachineIndependent/glslang.y"
5843                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5844 #line 5845 "MachineIndependent/glslang_tab.cpp"
5845     break;
5846
5847   case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression  */
5848 #line 781 "MachineIndependent/glslang.y"
5849                                                           {
5850         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5851         if ((yyval.interm.intermTypedNode) == 0)
5852             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5853     }
5854 #line 5855 "MachineIndependent/glslang_tab.cpp"
5855     break;
5856
5857   case 75: /* conditional_expression: logical_or_expression  */
5858 #line 789 "MachineIndependent/glslang.y"
5859                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5860 #line 5861 "MachineIndependent/glslang_tab.cpp"
5861     break;
5862
5863   case 76: /* $@1: %empty  */
5864 #line 790 "MachineIndependent/glslang.y"
5865                                      {
5866         ++parseContext.controlFlowNestingLevel;
5867     }
5868 #line 5869 "MachineIndependent/glslang_tab.cpp"
5869     break;
5870
5871   case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression  */
5872 #line 793 "MachineIndependent/glslang.y"
5873                                              {
5874         --parseContext.controlFlowNestingLevel;
5875         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
5876         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
5877         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
5878         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
5879         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
5880         if ((yyval.interm.intermTypedNode) == 0) {
5881             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5882             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5883         }
5884     }
5885 #line 5886 "MachineIndependent/glslang_tab.cpp"
5886     break;
5887
5888   case 78: /* assignment_expression: conditional_expression  */
5889 #line 808 "MachineIndependent/glslang.y"
5890                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5891 #line 5892 "MachineIndependent/glslang_tab.cpp"
5892     break;
5893
5894   case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression  */
5895 #line 809 "MachineIndependent/glslang.y"
5896                                                                  {
5897         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
5898         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5899         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5900         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5901         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
5902         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
5903         (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5904         if ((yyval.interm.intermTypedNode) == 0) {
5905             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5906             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5907         }
5908     }
5909 #line 5910 "MachineIndependent/glslang_tab.cpp"
5910     break;
5911
5912   case 80: /* assignment_operator: EQUAL  */
5913 #line 825 "MachineIndependent/glslang.y"
5914             {
5915         (yyval.interm).loc = (yyvsp[0].lex).loc;
5916         (yyval.interm).op = EOpAssign;
5917     }
5918 #line 5919 "MachineIndependent/glslang_tab.cpp"
5919     break;
5920
5921   case 81: /* assignment_operator: MUL_ASSIGN  */
5922 #line 829 "MachineIndependent/glslang.y"
5923                  {
5924         (yyval.interm).loc = (yyvsp[0].lex).loc;
5925         (yyval.interm).op = EOpMulAssign;
5926     }
5927 #line 5928 "MachineIndependent/glslang_tab.cpp"
5928     break;
5929
5930   case 82: /* assignment_operator: DIV_ASSIGN  */
5931 #line 833 "MachineIndependent/glslang.y"
5932                  {
5933         (yyval.interm).loc = (yyvsp[0].lex).loc;
5934         (yyval.interm).op = EOpDivAssign;
5935     }
5936 #line 5937 "MachineIndependent/glslang_tab.cpp"
5937     break;
5938
5939   case 83: /* assignment_operator: MOD_ASSIGN  */
5940 #line 837 "MachineIndependent/glslang.y"
5941                  {
5942         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
5943         (yyval.interm).loc = (yyvsp[0].lex).loc;
5944         (yyval.interm).op = EOpModAssign;
5945     }
5946 #line 5947 "MachineIndependent/glslang_tab.cpp"
5947     break;
5948
5949   case 84: /* assignment_operator: ADD_ASSIGN  */
5950 #line 842 "MachineIndependent/glslang.y"
5951                  {
5952         (yyval.interm).loc = (yyvsp[0].lex).loc;
5953         (yyval.interm).op = EOpAddAssign;
5954     }
5955 #line 5956 "MachineIndependent/glslang_tab.cpp"
5956     break;
5957
5958   case 85: /* assignment_operator: SUB_ASSIGN  */
5959 #line 846 "MachineIndependent/glslang.y"
5960                  {
5961         (yyval.interm).loc = (yyvsp[0].lex).loc;
5962         (yyval.interm).op = EOpSubAssign;
5963     }
5964 #line 5965 "MachineIndependent/glslang_tab.cpp"
5965     break;
5966
5967   case 86: /* assignment_operator: LEFT_ASSIGN  */
5968 #line 850 "MachineIndependent/glslang.y"
5969                   {
5970         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5971         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5972     }
5973 #line 5974 "MachineIndependent/glslang_tab.cpp"
5974     break;
5975
5976   case 87: /* assignment_operator: RIGHT_ASSIGN  */
5977 #line 854 "MachineIndependent/glslang.y"
5978                    {
5979         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5980         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5981     }
5982 #line 5983 "MachineIndependent/glslang_tab.cpp"
5983     break;
5984
5985   case 88: /* assignment_operator: AND_ASSIGN  */
5986 #line 858 "MachineIndependent/glslang.y"
5987                  {
5988         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5989         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5990     }
5991 #line 5992 "MachineIndependent/glslang_tab.cpp"
5992     break;
5993
5994   case 89: /* assignment_operator: XOR_ASSIGN  */
5995 #line 862 "MachineIndependent/glslang.y"
5996                  {
5997         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5998         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
5999     }
6000 #line 6001 "MachineIndependent/glslang_tab.cpp"
6001     break;
6002
6003   case 90: /* assignment_operator: OR_ASSIGN  */
6004 #line 866 "MachineIndependent/glslang.y"
6005                 {
6006         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
6007         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
6008     }
6009 #line 6010 "MachineIndependent/glslang_tab.cpp"
6010     break;
6011
6012   case 91: /* expression: assignment_expression  */
6013 #line 873 "MachineIndependent/glslang.y"
6014                             {
6015         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6016     }
6017 #line 6018 "MachineIndependent/glslang_tab.cpp"
6018     break;
6019
6020   case 92: /* expression: expression COMMA assignment_expression  */
6021 #line 876 "MachineIndependent/glslang.y"
6022                                              {
6023         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
6024         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6025         if ((yyval.interm.intermTypedNode) == 0) {
6026             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
6027             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6028         }
6029     }
6030 #line 6031 "MachineIndependent/glslang_tab.cpp"
6031     break;
6032
6033   case 93: /* constant_expression: conditional_expression  */
6034 #line 887 "MachineIndependent/glslang.y"
6035                              {
6036         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
6037         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6038     }
6039 #line 6040 "MachineIndependent/glslang_tab.cpp"
6040     break;
6041
6042   case 94: /* declaration: function_prototype SEMICOLON  */
6043 #line 894 "MachineIndependent/glslang.y"
6044                                    {
6045         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6046         (yyval.interm.intermNode) = 0;
6047         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6048     }
6049 #line 6050 "MachineIndependent/glslang_tab.cpp"
6050     break;
6051
6052   case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON  */
6053 #line 900 "MachineIndependent/glslang.y"
6054                                                                {
6055         parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
6056         (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
6057         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6058         (yyval.interm.intermNode) = 0;
6059         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6060     }
6061 #line 6062 "MachineIndependent/glslang_tab.cpp"
6062     break;
6063
6064   case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON  */
6065 #line 907 "MachineIndependent/glslang.y"
6066                                                {
6067         parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
6068         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
6069         (yyval.interm.intermNode) = 0;
6070     }
6071 #line 6072 "MachineIndependent/glslang_tab.cpp"
6072     break;
6073
6074   case 97: /* declaration: init_declarator_list SEMICOLON  */
6075 #line 913 "MachineIndependent/glslang.y"
6076                                      {
6077         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
6078             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
6079         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
6080     }
6081 #line 6082 "MachineIndependent/glslang_tab.cpp"
6082     break;
6083
6084   case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON  */
6085 #line 918 "MachineIndependent/glslang.y"
6086                                                              {
6087         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
6088         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
6089         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
6090         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
6091         (yyval.interm.intermNode) = 0;
6092     }
6093 #line 6094 "MachineIndependent/glslang_tab.cpp"
6094     break;
6095
6096   case 99: /* declaration: block_structure SEMICOLON  */
6097 #line 925 "MachineIndependent/glslang.y"
6098                                 {
6099         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
6100         (yyval.interm.intermNode) = 0;
6101     }
6102 #line 6103 "MachineIndependent/glslang_tab.cpp"
6103     break;
6104
6105   case 100: /* declaration: block_structure IDENTIFIER SEMICOLON  */
6106 #line 929 "MachineIndependent/glslang.y"
6107                                            {
6108         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
6109         (yyval.interm.intermNode) = 0;
6110     }
6111 #line 6112 "MachineIndependent/glslang_tab.cpp"
6112     break;
6113
6114   case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON  */
6115 #line 933 "MachineIndependent/glslang.y"
6116                                                            {
6117         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
6118         (yyval.interm.intermNode) = 0;
6119     }
6120 #line 6121 "MachineIndependent/glslang_tab.cpp"
6121     break;
6122
6123   case 102: /* declaration: type_qualifier SEMICOLON  */
6124 #line 937 "MachineIndependent/glslang.y"
6125                                {
6126         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6127         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
6128         (yyval.interm.intermNode) = 0;
6129     }
6130 #line 6131 "MachineIndependent/glslang_tab.cpp"
6131     break;
6132
6133   case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON  */
6134 #line 942 "MachineIndependent/glslang.y"
6135                                           {
6136         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
6137         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
6138         (yyval.interm.intermNode) = 0;
6139     }
6140 #line 6141 "MachineIndependent/glslang_tab.cpp"
6141     break;
6142
6143   case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON  */
6144 #line 947 "MachineIndependent/glslang.y"
6145                                                           {
6146         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
6147         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
6148         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
6149         (yyval.interm.intermNode) = 0;
6150     }
6151 #line 6152 "MachineIndependent/glslang_tab.cpp"
6152     break;
6153
6154   case 105: /* $@2: %empty  */
6155 #line 956 "MachineIndependent/glslang.y"
6156                                            { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
6157 #line 6158 "MachineIndependent/glslang_tab.cpp"
6158     break;
6159
6160   case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE  */
6161 #line 956 "MachineIndependent/glslang.y"
6162                                                                                                                           {
6163         --parseContext.blockNestingLevel;
6164         parseContext.blockName = (yyvsp[-4].lex).string;
6165         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
6166         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
6167         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
6168         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
6169         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
6170     }
6171 #line 6172 "MachineIndependent/glslang_tab.cpp"
6172     break;
6173
6174   case 107: /* identifier_list: COMMA IDENTIFIER  */
6175 #line 967 "MachineIndependent/glslang.y"
6176                        {
6177         (yyval.interm.identifierList) = new TIdentifierList;
6178         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6179     }
6180 #line 6181 "MachineIndependent/glslang_tab.cpp"
6181     break;
6182
6183   case 108: /* identifier_list: identifier_list COMMA IDENTIFIER  */
6184 #line 971 "MachineIndependent/glslang.y"
6185                                        {
6186         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
6187         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6188     }
6189 #line 6190 "MachineIndependent/glslang_tab.cpp"
6190     break;
6191
6192   case 109: /* function_prototype: function_declarator RIGHT_PAREN  */
6193 #line 978 "MachineIndependent/glslang.y"
6194                                        {
6195         (yyval.interm).function = (yyvsp[-1].interm.function);
6196         (yyval.interm).loc = (yyvsp[0].lex).loc;
6197     }
6198 #line 6199 "MachineIndependent/glslang_tab.cpp"
6199     break;
6200
6201   case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute  */
6202 #line 982 "MachineIndependent/glslang.y"
6203                                                 {
6204         (yyval.interm).function = (yyvsp[-2].interm.function);
6205         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6206         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6207         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6208     }
6209 #line 6210 "MachineIndependent/glslang_tab.cpp"
6210     break;
6211
6212   case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN  */
6213 #line 988 "MachineIndependent/glslang.y"
6214                                                 {
6215         (yyval.interm).function = (yyvsp[-1].interm.function);
6216         (yyval.interm).loc = (yyvsp[0].lex).loc;
6217         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6218         parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes));
6219     }
6220 #line 6221 "MachineIndependent/glslang_tab.cpp"
6221     break;
6222
6223   case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute  */
6224 #line 994 "MachineIndependent/glslang.y"
6225                                                           {
6226         (yyval.interm).function = (yyvsp[-2].interm.function);
6227         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6228         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
6229         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes));
6230         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
6231     }
6232 #line 6233 "MachineIndependent/glslang_tab.cpp"
6233     break;
6234
6235   case 113: /* function_declarator: function_header  */
6236 #line 1004 "MachineIndependent/glslang.y"
6237                       {
6238         (yyval.interm.function) = (yyvsp[0].interm.function);
6239     }
6240 #line 6241 "MachineIndependent/glslang_tab.cpp"
6241     break;
6242
6243   case 114: /* function_declarator: function_header_with_parameters  */
6244 #line 1007 "MachineIndependent/glslang.y"
6245                                       {
6246         (yyval.interm.function) = (yyvsp[0].interm.function);
6247     }
6248 #line 6249 "MachineIndependent/glslang_tab.cpp"
6249     break;
6250
6251   case 115: /* function_header_with_parameters: function_header parameter_declaration  */
6252 #line 1014 "MachineIndependent/glslang.y"
6253                                             {
6254         // Add the parameter
6255         (yyval.interm.function) = (yyvsp[-1].interm.function);
6256         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
6257             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
6258         else
6259             delete (yyvsp[0].interm).param.type;
6260     }
6261 #line 6262 "MachineIndependent/glslang_tab.cpp"
6262     break;
6263
6264   case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration  */
6265 #line 1022 "MachineIndependent/glslang.y"
6266                                                                   {
6267         //
6268         // Only first parameter of one-parameter functions can be void
6269         // The check for named parameters not being void is done in parameter_declarator
6270         //
6271         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
6272             //
6273             // This parameter > first is void
6274             //
6275             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
6276             delete (yyvsp[0].interm).param.type;
6277         } else {
6278             // Add the parameter
6279             (yyval.interm.function) = (yyvsp[-2].interm.function);
6280             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
6281         }
6282     }
6283 #line 6284 "MachineIndependent/glslang_tab.cpp"
6284     break;
6285
6286   case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN  */
6287 #line 1042 "MachineIndependent/glslang.y"
6288                                                  {
6289         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
6290             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
6291                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
6292         }
6293         if ((yyvsp[-2].interm.type).arraySizes)
6294             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6295
6296         // Add the function as a prototype after parsing it (we do not support recursion)
6297         TFunction *function;
6298         TType type((yyvsp[-2].interm.type));
6299
6300         // Potentially rename shader entry point function.  No-op most of the time.
6301         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
6302
6303         // Make the function
6304         function = new TFunction((yyvsp[-1].lex).string, type);
6305         (yyval.interm.function) = function;
6306     }
6307 #line 6308 "MachineIndependent/glslang_tab.cpp"
6308     break;
6309
6310   case 118: /* parameter_declarator: type_specifier IDENTIFIER  */
6311 #line 1065 "MachineIndependent/glslang.y"
6312                                 {
6313         if ((yyvsp[-1].interm.type).arraySizes) {
6314             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6315             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6316             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
6317         }
6318         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
6319             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
6320         }
6321         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
6322
6323         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
6324         (yyval.interm).loc = (yyvsp[0].lex).loc;
6325         (yyval.interm).param = param;
6326     }
6327 #line 6328 "MachineIndependent/glslang_tab.cpp"
6328     break;
6329
6330   case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier  */
6331 #line 1080 "MachineIndependent/glslang.y"
6332                                                 {
6333         if ((yyvsp[-2].interm.type).arraySizes) {
6334             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6335             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6336             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
6337         }
6338         TType* type = new TType((yyvsp[-2].interm.type));
6339         type->transferArraySizes((yyvsp[0].interm).arraySizes);
6340         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
6341
6342         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
6343         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
6344         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
6345
6346         TParameter param = { (yyvsp[-1].lex).string, type };
6347
6348         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6349         (yyval.interm).param = param;
6350     }
6351 #line 6352 "MachineIndependent/glslang_tab.cpp"
6352     break;
6353
6354   case 120: /* parameter_declaration: type_qualifier parameter_declarator  */
6355 #line 1105 "MachineIndependent/glslang.y"
6356                                           {
6357         (yyval.interm) = (yyvsp[0].interm);
6358         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6359             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6360         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6361
6362         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6363         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6364         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6365
6366     }
6367 #line 6368 "MachineIndependent/glslang_tab.cpp"
6368     break;
6369
6370   case 121: /* parameter_declaration: parameter_declarator  */
6371 #line 1116 "MachineIndependent/glslang.y"
6372                            {
6373         (yyval.interm) = (yyvsp[0].interm);
6374
6375         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6376         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6377         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6378     }
6379 #line 6380 "MachineIndependent/glslang_tab.cpp"
6380     break;
6381
6382   case 122: /* parameter_declaration: type_qualifier parameter_type_specifier  */
6383 #line 1126 "MachineIndependent/glslang.y"
6384                                               {
6385         (yyval.interm) = (yyvsp[0].interm);
6386         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
6387             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
6388         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6389
6390         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6391         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
6392         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
6393     }
6394 #line 6395 "MachineIndependent/glslang_tab.cpp"
6395     break;
6396
6397   case 123: /* parameter_declaration: parameter_type_specifier  */
6398 #line 1136 "MachineIndependent/glslang.y"
6399                                {
6400         (yyval.interm) = (yyvsp[0].interm);
6401
6402         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
6403         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
6404         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
6405     }
6406 #line 6407 "MachineIndependent/glslang_tab.cpp"
6407     break;
6408
6409   case 124: /* parameter_type_specifier: type_specifier  */
6410 #line 1146 "MachineIndependent/glslang.y"
6411                      {
6412         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
6413         (yyval.interm).param = param;
6414         if ((yyvsp[0].interm.type).arraySizes)
6415             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
6416     }
6417 #line 6418 "MachineIndependent/glslang_tab.cpp"
6418     break;
6419
6420   case 125: /* init_declarator_list: single_declaration  */
6421 #line 1155 "MachineIndependent/glslang.y"
6422                          {
6423         (yyval.interm) = (yyvsp[0].interm);
6424     }
6425 #line 6426 "MachineIndependent/glslang_tab.cpp"
6426     break;
6427
6428   case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER  */
6429 #line 1158 "MachineIndependent/glslang.y"
6430                                             {
6431         (yyval.interm) = (yyvsp[-2].interm);
6432         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
6433     }
6434 #line 6435 "MachineIndependent/glslang_tab.cpp"
6435     break;
6436
6437   case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier  */
6438 #line 1162 "MachineIndependent/glslang.y"
6439                                                             {
6440         (yyval.interm) = (yyvsp[-3].interm);
6441         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
6442     }
6443 #line 6444 "MachineIndependent/glslang_tab.cpp"
6444     break;
6445
6446   case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer  */
6447 #line 1166 "MachineIndependent/glslang.y"
6448                                                                               {
6449         (yyval.interm).type = (yyvsp[-5].interm).type;
6450         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6451         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6452     }
6453 #line 6454 "MachineIndependent/glslang_tab.cpp"
6454     break;
6455
6456   case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer  */
6457 #line 1171 "MachineIndependent/glslang.y"
6458                                                               {
6459         (yyval.interm).type = (yyvsp[-4].interm).type;
6460         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
6461         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
6462     }
6463 #line 6464 "MachineIndependent/glslang_tab.cpp"
6464     break;
6465
6466   case 130: /* single_declaration: fully_specified_type  */
6467 #line 1179 "MachineIndependent/glslang.y"
6468                            {
6469         (yyval.interm).type = (yyvsp[0].interm.type);
6470         (yyval.interm).intermNode = 0;
6471
6472         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
6473
6474     }
6475 #line 6476 "MachineIndependent/glslang_tab.cpp"
6476     break;
6477
6478   case 131: /* single_declaration: fully_specified_type IDENTIFIER  */
6479 #line 1186 "MachineIndependent/glslang.y"
6480                                       {
6481         (yyval.interm).type = (yyvsp[-1].interm.type);
6482         (yyval.interm).intermNode = 0;
6483         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
6484     }
6485 #line 6486 "MachineIndependent/glslang_tab.cpp"
6486     break;
6487
6488   case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier  */
6489 #line 1191 "MachineIndependent/glslang.y"
6490                                                       {
6491         (yyval.interm).type = (yyvsp[-2].interm.type);
6492         (yyval.interm).intermNode = 0;
6493         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
6494     }
6495 #line 6496 "MachineIndependent/glslang_tab.cpp"
6496     break;
6497
6498   case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer  */
6499 #line 1196 "MachineIndependent/glslang.y"
6500                                                                         {
6501         (yyval.interm).type = (yyvsp[-4].interm.type);
6502         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
6503         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6504     }
6505 #line 6506 "MachineIndependent/glslang_tab.cpp"
6506     break;
6507
6508   case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer  */
6509 #line 1201 "MachineIndependent/glslang.y"
6510                                                         {
6511         (yyval.interm).type = (yyvsp[-3].interm.type);
6512         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
6513         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
6514     }
6515 #line 6516 "MachineIndependent/glslang_tab.cpp"
6516     break;
6517
6518   case 135: /* fully_specified_type: type_specifier  */
6519 #line 1210 "MachineIndependent/glslang.y"
6520                      {
6521         (yyval.interm.type) = (yyvsp[0].interm.type);
6522
6523         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
6524         if ((yyvsp[0].interm.type).arraySizes) {
6525             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6526             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6527         }
6528         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
6529     }
6530 #line 6531 "MachineIndependent/glslang_tab.cpp"
6531     break;
6532
6533   case 136: /* fully_specified_type: type_qualifier type_specifier  */
6534 #line 1220 "MachineIndependent/glslang.y"
6535                                      {
6536         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6537         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
6538
6539         if ((yyvsp[0].interm.type).arraySizes) {
6540             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
6541             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
6542         }
6543
6544         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
6545             (yyvsp[0].interm.type).arraySizes = nullptr;
6546
6547         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
6548         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
6549         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
6550         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
6551
6552         (yyval.interm.type) = (yyvsp[0].interm.type);
6553
6554         if (! (yyval.interm.type).qualifier.isInterpolation() &&
6555             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
6556              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
6557             (yyval.interm.type).qualifier.smooth = true;
6558     }
6559 #line 6560 "MachineIndependent/glslang_tab.cpp"
6560     break;
6561
6562   case 137: /* invariant_qualifier: INVARIANT  */
6563 #line 1247 "MachineIndependent/glslang.y"
6564                 {
6565         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
6566         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
6567         (yyval.interm.type).init((yyvsp[0].lex).loc);
6568         (yyval.interm.type).qualifier.invariant = true;
6569     }
6570 #line 6571 "MachineIndependent/glslang_tab.cpp"
6571     break;
6572
6573   case 138: /* interpolation_qualifier: SMOOTH  */
6574 #line 1256 "MachineIndependent/glslang.y"
6575              {
6576         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
6577         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
6578         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
6579         (yyval.interm.type).init((yyvsp[0].lex).loc);
6580         (yyval.interm.type).qualifier.smooth = true;
6581     }
6582 #line 6583 "MachineIndependent/glslang_tab.cpp"
6583     break;
6584
6585   case 139: /* interpolation_qualifier: FLAT  */
6586 #line 1263 "MachineIndependent/glslang.y"
6587            {
6588         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
6589         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
6590         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
6591         (yyval.interm.type).init((yyvsp[0].lex).loc);
6592         (yyval.interm.type).qualifier.flat = true;
6593     }
6594 #line 6595 "MachineIndependent/glslang_tab.cpp"
6595     break;
6596
6597   case 140: /* interpolation_qualifier: NOPERSPECTIVE  */
6598 #line 1271 "MachineIndependent/glslang.y"
6599                     {
6600         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
6601         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
6602         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
6603         (yyval.interm.type).init((yyvsp[0].lex).loc);
6604         (yyval.interm.type).qualifier.nopersp = true;
6605     }
6606 #line 6607 "MachineIndependent/glslang_tab.cpp"
6607     break;
6608
6609   case 141: /* interpolation_qualifier: EXPLICITINTERPAMD  */
6610 #line 1278 "MachineIndependent/glslang.y"
6611                         {
6612         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
6613         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6614         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6615         (yyval.interm.type).init((yyvsp[0].lex).loc);
6616         (yyval.interm.type).qualifier.explicitInterp = true;
6617     }
6618 #line 6619 "MachineIndependent/glslang_tab.cpp"
6619     break;
6620
6621   case 142: /* interpolation_qualifier: PERVERTEXNV  */
6622 #line 1285 "MachineIndependent/glslang.y"
6623                   {
6624         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
6625         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6626         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6627         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6628         (yyval.interm.type).init((yyvsp[0].lex).loc);
6629         (yyval.interm.type).qualifier.pervertexNV = true;
6630     }
6631 #line 6632 "MachineIndependent/glslang_tab.cpp"
6632     break;
6633
6634   case 143: /* interpolation_qualifier: PERPRIMITIVENV  */
6635 #line 1293 "MachineIndependent/glslang.y"
6636                      {
6637         // No need for profile version or extension check. Shader stage already checks both.
6638         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
6639         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
6640         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6641         if (parseContext.language == EShLangFragment)
6642             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
6643         (yyval.interm.type).init((yyvsp[0].lex).loc);
6644         (yyval.interm.type).qualifier.perPrimitiveNV = true;
6645     }
6646 #line 6647 "MachineIndependent/glslang_tab.cpp"
6647     break;
6648
6649   case 144: /* interpolation_qualifier: PERVIEWNV  */
6650 #line 1303 "MachineIndependent/glslang.y"
6651                 {
6652         // No need for profile version or extension check. Shader stage already checks both.
6653         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
6654         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
6655         (yyval.interm.type).init((yyvsp[0].lex).loc);
6656         (yyval.interm.type).qualifier.perViewNV = true;
6657     }
6658 #line 6659 "MachineIndependent/glslang_tab.cpp"
6659     break;
6660
6661   case 145: /* interpolation_qualifier: PERTASKNV  */
6662 #line 1310 "MachineIndependent/glslang.y"
6663                 {
6664         // No need for profile version or extension check. Shader stage already checks both.
6665         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
6666         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
6667         (yyval.interm.type).init((yyvsp[0].lex).loc);
6668         (yyval.interm.type).qualifier.perTaskNV = true;
6669     }
6670 #line 6671 "MachineIndependent/glslang_tab.cpp"
6671     break;
6672
6673   case 146: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN  */
6674 #line 1321 "MachineIndependent/glslang.y"
6675                                                              {
6676         (yyval.interm.type) = (yyvsp[-1].interm.type);
6677     }
6678 #line 6679 "MachineIndependent/glslang_tab.cpp"
6679     break;
6680
6681   case 147: /* layout_qualifier_id_list: layout_qualifier_id  */
6682 #line 1327 "MachineIndependent/glslang.y"
6683                           {
6684         (yyval.interm.type) = (yyvsp[0].interm.type);
6685     }
6686 #line 6687 "MachineIndependent/glslang_tab.cpp"
6687     break;
6688
6689   case 148: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id  */
6690 #line 1330 "MachineIndependent/glslang.y"
6691                                                          {
6692         (yyval.interm.type) = (yyvsp[-2].interm.type);
6693         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6694         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6695     }
6696 #line 6697 "MachineIndependent/glslang_tab.cpp"
6697     break;
6698
6699   case 149: /* layout_qualifier_id: IDENTIFIER  */
6700 #line 1337 "MachineIndependent/glslang.y"
6701                  {
6702         (yyval.interm.type).init((yyvsp[0].lex).loc);
6703         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
6704     }
6705 #line 6706 "MachineIndependent/glslang_tab.cpp"
6706     break;
6707
6708   case 150: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression  */
6709 #line 1341 "MachineIndependent/glslang.y"
6710                                            {
6711         (yyval.interm.type).init((yyvsp[-2].lex).loc);
6712         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
6713     }
6714 #line 6715 "MachineIndependent/glslang_tab.cpp"
6715     break;
6716
6717   case 151: /* layout_qualifier_id: SHARED  */
6718 #line 1345 "MachineIndependent/glslang.y"
6719              { // because "shared" is both an identifier and a keyword
6720         (yyval.interm.type).init((yyvsp[0].lex).loc);
6721         TString strShared("shared");
6722         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
6723     }
6724 #line 6725 "MachineIndependent/glslang_tab.cpp"
6725     break;
6726
6727   case 152: /* precise_qualifier: PRECISE  */
6728 #line 1354 "MachineIndependent/glslang.y"
6729               {
6730         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
6731         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
6732         (yyval.interm.type).init((yyvsp[0].lex).loc);
6733         (yyval.interm.type).qualifier.noContraction = true;
6734     }
6735 #line 6736 "MachineIndependent/glslang_tab.cpp"
6736     break;
6737
6738   case 153: /* type_qualifier: single_type_qualifier  */
6739 #line 1364 "MachineIndependent/glslang.y"
6740                             {
6741         (yyval.interm.type) = (yyvsp[0].interm.type);
6742     }
6743 #line 6744 "MachineIndependent/glslang_tab.cpp"
6744     break;
6745
6746   case 154: /* type_qualifier: type_qualifier single_type_qualifier  */
6747 #line 1367 "MachineIndependent/glslang.y"
6748                                            {
6749         (yyval.interm.type) = (yyvsp[-1].interm.type);
6750         if ((yyval.interm.type).basicType == EbtVoid)
6751             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
6752
6753         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6754         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6755     }
6756 #line 6757 "MachineIndependent/glslang_tab.cpp"
6757     break;
6758
6759   case 155: /* single_type_qualifier: storage_qualifier  */
6760 #line 1378 "MachineIndependent/glslang.y"
6761                         {
6762         (yyval.interm.type) = (yyvsp[0].interm.type);
6763     }
6764 #line 6765 "MachineIndependent/glslang_tab.cpp"
6765     break;
6766
6767   case 156: /* single_type_qualifier: layout_qualifier  */
6768 #line 1381 "MachineIndependent/glslang.y"
6769                        {
6770         (yyval.interm.type) = (yyvsp[0].interm.type);
6771     }
6772 #line 6773 "MachineIndependent/glslang_tab.cpp"
6773     break;
6774
6775   case 157: /* single_type_qualifier: precision_qualifier  */
6776 #line 1384 "MachineIndependent/glslang.y"
6777                           {
6778         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
6779         (yyval.interm.type) = (yyvsp[0].interm.type);
6780     }
6781 #line 6782 "MachineIndependent/glslang_tab.cpp"
6782     break;
6783
6784   case 158: /* single_type_qualifier: interpolation_qualifier  */
6785 #line 1388 "MachineIndependent/glslang.y"
6786                               {
6787         // allow inheritance of storage qualifier from block declaration
6788         (yyval.interm.type) = (yyvsp[0].interm.type);
6789     }
6790 #line 6791 "MachineIndependent/glslang_tab.cpp"
6791     break;
6792
6793   case 159: /* single_type_qualifier: invariant_qualifier  */
6794 #line 1392 "MachineIndependent/glslang.y"
6795                           {
6796         // allow inheritance of storage qualifier from block declaration
6797         (yyval.interm.type) = (yyvsp[0].interm.type);
6798     }
6799 #line 6800 "MachineIndependent/glslang_tab.cpp"
6800     break;
6801
6802   case 160: /* single_type_qualifier: precise_qualifier  */
6803 #line 1397 "MachineIndependent/glslang.y"
6804                         {
6805         // allow inheritance of storage qualifier from block declaration
6806         (yyval.interm.type) = (yyvsp[0].interm.type);
6807     }
6808 #line 6809 "MachineIndependent/glslang_tab.cpp"
6809     break;
6810
6811   case 161: /* single_type_qualifier: non_uniform_qualifier  */
6812 #line 1401 "MachineIndependent/glslang.y"
6813                             {
6814         (yyval.interm.type) = (yyvsp[0].interm.type);
6815     }
6816 #line 6817 "MachineIndependent/glslang_tab.cpp"
6817     break;
6818
6819   case 162: /* single_type_qualifier: spirv_storage_class_qualifier  */
6820 #line 1404 "MachineIndependent/glslang.y"
6821                                     {
6822         parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
6823         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
6824         (yyval.interm.type) = (yyvsp[0].interm.type);
6825     }
6826 #line 6827 "MachineIndependent/glslang_tab.cpp"
6827     break;
6828
6829   case 163: /* single_type_qualifier: spirv_decorate_qualifier  */
6830 #line 1409 "MachineIndependent/glslang.y"
6831                                {
6832         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
6833         (yyval.interm.type) = (yyvsp[0].interm.type);
6834     }
6835 #line 6836 "MachineIndependent/glslang_tab.cpp"
6836     break;
6837
6838   case 164: /* single_type_qualifier: SPIRV_BY_REFERENCE  */
6839 #line 1413 "MachineIndependent/glslang.y"
6840                          {
6841         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
6842         (yyval.interm.type).init((yyvsp[0].lex).loc);
6843         (yyval.interm.type).qualifier.setSpirvByReference();
6844     }
6845 #line 6846 "MachineIndependent/glslang_tab.cpp"
6846     break;
6847
6848   case 165: /* single_type_qualifier: SPIRV_LITERAL  */
6849 #line 1418 "MachineIndependent/glslang.y"
6850                     {
6851         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
6852         (yyval.interm.type).init((yyvsp[0].lex).loc);
6853         (yyval.interm.type).qualifier.setSpirvLiteral();
6854     }
6855 #line 6856 "MachineIndependent/glslang_tab.cpp"
6856     break;
6857
6858   case 166: /* storage_qualifier: CONST  */
6859 #line 1427 "MachineIndependent/glslang.y"
6860             {
6861         (yyval.interm.type).init((yyvsp[0].lex).loc);
6862         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
6863     }
6864 #line 6865 "MachineIndependent/glslang_tab.cpp"
6865     break;
6866
6867   case 167: /* storage_qualifier: INOUT  */
6868 #line 1431 "MachineIndependent/glslang.y"
6869             {
6870         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
6871         (yyval.interm.type).init((yyvsp[0].lex).loc);
6872         (yyval.interm.type).qualifier.storage = EvqInOut;
6873     }
6874 #line 6875 "MachineIndependent/glslang_tab.cpp"
6875     break;
6876
6877   case 168: /* storage_qualifier: IN  */
6878 #line 1436 "MachineIndependent/glslang.y"
6879          {
6880         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
6881         (yyval.interm.type).init((yyvsp[0].lex).loc);
6882         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
6883         (yyval.interm.type).qualifier.storage = EvqIn;
6884     }
6885 #line 6886 "MachineIndependent/glslang_tab.cpp"
6886     break;
6887
6888   case 169: /* storage_qualifier: OUT  */
6889 #line 1442 "MachineIndependent/glslang.y"
6890           {
6891         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
6892         (yyval.interm.type).init((yyvsp[0].lex).loc);
6893         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
6894         (yyval.interm.type).qualifier.storage = EvqOut;
6895     }
6896 #line 6897 "MachineIndependent/glslang_tab.cpp"
6897     break;
6898
6899   case 170: /* storage_qualifier: CENTROID  */
6900 #line 1448 "MachineIndependent/glslang.y"
6901                {
6902         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
6903         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
6904         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
6905         (yyval.interm.type).init((yyvsp[0].lex).loc);
6906         (yyval.interm.type).qualifier.centroid = true;
6907     }
6908 #line 6909 "MachineIndependent/glslang_tab.cpp"
6909     break;
6910
6911   case 171: /* storage_qualifier: UNIFORM  */
6912 #line 1455 "MachineIndependent/glslang.y"
6913               {
6914         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
6915         (yyval.interm.type).init((yyvsp[0].lex).loc);
6916         (yyval.interm.type).qualifier.storage = EvqUniform;
6917     }
6918 #line 6919 "MachineIndependent/glslang_tab.cpp"
6919     break;
6920
6921   case 172: /* storage_qualifier: SHARED  */
6922 #line 1460 "MachineIndependent/glslang.y"
6923              {
6924         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
6925         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
6926         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
6927         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
6928         (yyval.interm.type).init((yyvsp[0].lex).loc);
6929         (yyval.interm.type).qualifier.storage = EvqShared;
6930     }
6931 #line 6932 "MachineIndependent/glslang_tab.cpp"
6932     break;
6933
6934   case 173: /* storage_qualifier: BUFFER  */
6935 #line 1468 "MachineIndependent/glslang.y"
6936              {
6937         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
6938         (yyval.interm.type).init((yyvsp[0].lex).loc);
6939         (yyval.interm.type).qualifier.storage = EvqBuffer;
6940     }
6941 #line 6942 "MachineIndependent/glslang_tab.cpp"
6942     break;
6943
6944   case 174: /* storage_qualifier: ATTRIBUTE  */
6945 #line 1474 "MachineIndependent/glslang.y"
6946                 {
6947         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
6948         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
6949         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
6950         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
6951         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
6952
6953         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
6954
6955         (yyval.interm.type).init((yyvsp[0].lex).loc);
6956         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6957     }
6958 #line 6959 "MachineIndependent/glslang_tab.cpp"
6959     break;
6960
6961   case 175: /* storage_qualifier: VARYING  */
6962 #line 1486 "MachineIndependent/glslang.y"
6963               {
6964         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
6965         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
6966         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
6967         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
6968
6969         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
6970
6971         (yyval.interm.type).init((yyvsp[0].lex).loc);
6972         if (parseContext.language == EShLangVertex)
6973             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
6974         else
6975             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6976     }
6977 #line 6978 "MachineIndependent/glslang_tab.cpp"
6978     break;
6979
6980   case 176: /* storage_qualifier: PATCH  */
6981 #line 1500 "MachineIndependent/glslang.y"
6982             {
6983         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
6984         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
6985         (yyval.interm.type).init((yyvsp[0].lex).loc);
6986         (yyval.interm.type).qualifier.patch = true;
6987     }
6988 #line 6989 "MachineIndependent/glslang_tab.cpp"
6989     break;
6990
6991   case 177: /* storage_qualifier: SAMPLE  */
6992 #line 1506 "MachineIndependent/glslang.y"
6993              {
6994         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
6995         (yyval.interm.type).init((yyvsp[0].lex).loc);
6996         (yyval.interm.type).qualifier.sample = true;
6997     }
6998 #line 6999 "MachineIndependent/glslang_tab.cpp"
6999     break;
7000
7001   case 178: /* storage_qualifier: HITATTRNV  */
7002 #line 1511 "MachineIndependent/glslang.y"
7003                 {
7004         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7005         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7006             | EShLangAnyHitMask), "hitAttributeNV");
7007         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
7008         (yyval.interm.type).init((yyvsp[0].lex).loc);
7009         (yyval.interm.type).qualifier.storage = EvqHitAttr;
7010     }
7011 #line 7012 "MachineIndependent/glslang_tab.cpp"
7012     break;
7013
7014   case 179: /* storage_qualifier: HITATTREXT  */
7015 #line 1519 "MachineIndependent/glslang.y"
7016                  {
7017         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
7018         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7019             | EShLangAnyHitMask), "hitAttributeEXT");
7020         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
7021         (yyval.interm.type).init((yyvsp[0].lex).loc);
7022         (yyval.interm.type).qualifier.storage = EvqHitAttr;
7023     }
7024 #line 7025 "MachineIndependent/glslang_tab.cpp"
7025     break;
7026
7027   case 180: /* storage_qualifier: PAYLOADNV  */
7028 #line 1527 "MachineIndependent/glslang.y"
7029                 {
7030         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
7031         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7032             EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
7033         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
7034         (yyval.interm.type).init((yyvsp[0].lex).loc);
7035         (yyval.interm.type).qualifier.storage = EvqPayload;
7036     }
7037 #line 7038 "MachineIndependent/glslang_tab.cpp"
7038     break;
7039
7040   case 181: /* storage_qualifier: PAYLOADEXT  */
7041 #line 1535 "MachineIndependent/glslang.y"
7042                  {
7043         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
7044         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7045             EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
7046         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
7047         (yyval.interm.type).init((yyvsp[0].lex).loc);
7048         (yyval.interm.type).qualifier.storage = EvqPayload;
7049     }
7050 #line 7051 "MachineIndependent/glslang_tab.cpp"
7051     break;
7052
7053   case 182: /* storage_qualifier: PAYLOADINNV  */
7054 #line 1543 "MachineIndependent/glslang.y"
7055                   {
7056         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
7057         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7058             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
7059         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
7060         (yyval.interm.type).init((yyvsp[0].lex).loc);
7061         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7062     }
7063 #line 7064 "MachineIndependent/glslang_tab.cpp"
7064     break;
7065
7066   case 183: /* storage_qualifier: PAYLOADINEXT  */
7067 #line 1551 "MachineIndependent/glslang.y"
7068                    {
7069         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
7070         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7071             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
7072         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
7073         (yyval.interm.type).init((yyvsp[0].lex).loc);
7074         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7075     }
7076 #line 7077 "MachineIndependent/glslang_tab.cpp"
7077     break;
7078
7079   case 184: /* storage_qualifier: CALLDATANV  */
7080 #line 1559 "MachineIndependent/glslang.y"
7081                  {
7082         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
7083         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7084             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
7085         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
7086         (yyval.interm.type).init((yyvsp[0].lex).loc);
7087         (yyval.interm.type).qualifier.storage = EvqCallableData;
7088     }
7089 #line 7090 "MachineIndependent/glslang_tab.cpp"
7090     break;
7091
7092   case 185: /* storage_qualifier: CALLDATAEXT  */
7093 #line 1567 "MachineIndependent/glslang.y"
7094                   {
7095         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
7096         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7097             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
7098         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
7099         (yyval.interm.type).init((yyvsp[0].lex).loc);
7100         (yyval.interm.type).qualifier.storage = EvqCallableData;
7101     }
7102 #line 7103 "MachineIndependent/glslang_tab.cpp"
7103     break;
7104
7105   case 186: /* storage_qualifier: CALLDATAINNV  */
7106 #line 1575 "MachineIndependent/glslang.y"
7107                    {
7108         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
7109         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
7110         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
7111         (yyval.interm.type).init((yyvsp[0].lex).loc);
7112         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7113     }
7114 #line 7115 "MachineIndependent/glslang_tab.cpp"
7115     break;
7116
7117   case 187: /* storage_qualifier: CALLDATAINEXT  */
7118 #line 1582 "MachineIndependent/glslang.y"
7119                     {
7120         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
7121         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
7122         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
7123         (yyval.interm.type).init((yyvsp[0].lex).loc);
7124         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
7125     }
7126 #line 7127 "MachineIndependent/glslang_tab.cpp"
7127     break;
7128
7129   case 188: /* storage_qualifier: COHERENT  */
7130 #line 1589 "MachineIndependent/glslang.y"
7131                {
7132         (yyval.interm.type).init((yyvsp[0].lex).loc);
7133         (yyval.interm.type).qualifier.coherent = true;
7134     }
7135 #line 7136 "MachineIndependent/glslang_tab.cpp"
7136     break;
7137
7138   case 189: /* storage_qualifier: DEVICECOHERENT  */
7139 #line 1593 "MachineIndependent/glslang.y"
7140                      {
7141         (yyval.interm.type).init((yyvsp[0].lex).loc);
7142         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
7143         (yyval.interm.type).qualifier.devicecoherent = true;
7144     }
7145 #line 7146 "MachineIndependent/glslang_tab.cpp"
7146     break;
7147
7148   case 190: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
7149 #line 1598 "MachineIndependent/glslang.y"
7150                           {
7151         (yyval.interm.type).init((yyvsp[0].lex).loc);
7152         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
7153         (yyval.interm.type).qualifier.queuefamilycoherent = true;
7154     }
7155 #line 7156 "MachineIndependent/glslang_tab.cpp"
7156     break;
7157
7158   case 191: /* storage_qualifier: WORKGROUPCOHERENT  */
7159 #line 1603 "MachineIndependent/glslang.y"
7160                         {
7161         (yyval.interm.type).init((yyvsp[0].lex).loc);
7162         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
7163         (yyval.interm.type).qualifier.workgroupcoherent = true;
7164     }
7165 #line 7166 "MachineIndependent/glslang_tab.cpp"
7166     break;
7167
7168   case 192: /* storage_qualifier: SUBGROUPCOHERENT  */
7169 #line 1608 "MachineIndependent/glslang.y"
7170                        {
7171         (yyval.interm.type).init((yyvsp[0].lex).loc);
7172         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
7173         (yyval.interm.type).qualifier.subgroupcoherent = true;
7174     }
7175 #line 7176 "MachineIndependent/glslang_tab.cpp"
7176     break;
7177
7178   case 193: /* storage_qualifier: NONPRIVATE  */
7179 #line 1613 "MachineIndependent/glslang.y"
7180                  {
7181         (yyval.interm.type).init((yyvsp[0].lex).loc);
7182         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
7183         (yyval.interm.type).qualifier.nonprivate = true;
7184     }
7185 #line 7186 "MachineIndependent/glslang_tab.cpp"
7186     break;
7187
7188   case 194: /* storage_qualifier: SHADERCALLCOHERENT  */
7189 #line 1618 "MachineIndependent/glslang.y"
7190                          {
7191         (yyval.interm.type).init((yyvsp[0].lex).loc);
7192         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
7193         (yyval.interm.type).qualifier.shadercallcoherent = true;
7194     }
7195 #line 7196 "MachineIndependent/glslang_tab.cpp"
7196     break;
7197
7198   case 195: /* storage_qualifier: VOLATILE  */
7199 #line 1623 "MachineIndependent/glslang.y"
7200                {
7201         (yyval.interm.type).init((yyvsp[0].lex).loc);
7202         (yyval.interm.type).qualifier.volatil = true;
7203     }
7204 #line 7205 "MachineIndependent/glslang_tab.cpp"
7205     break;
7206
7207   case 196: /* storage_qualifier: RESTRICT  */
7208 #line 1627 "MachineIndependent/glslang.y"
7209                {
7210         (yyval.interm.type).init((yyvsp[0].lex).loc);
7211         (yyval.interm.type).qualifier.restrict = true;
7212     }
7213 #line 7214 "MachineIndependent/glslang_tab.cpp"
7214     break;
7215
7216   case 197: /* storage_qualifier: READONLY  */
7217 #line 1631 "MachineIndependent/glslang.y"
7218                {
7219         (yyval.interm.type).init((yyvsp[0].lex).loc);
7220         (yyval.interm.type).qualifier.readonly = true;
7221     }
7222 #line 7223 "MachineIndependent/glslang_tab.cpp"
7223     break;
7224
7225   case 198: /* storage_qualifier: WRITEONLY  */
7226 #line 1635 "MachineIndependent/glslang.y"
7227                 {
7228         (yyval.interm.type).init((yyvsp[0].lex).loc);
7229         (yyval.interm.type).qualifier.writeonly = true;
7230     }
7231 #line 7232 "MachineIndependent/glslang_tab.cpp"
7232     break;
7233
7234   case 199: /* storage_qualifier: SUBROUTINE  */
7235 #line 1639 "MachineIndependent/glslang.y"
7236                  {
7237         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
7238         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
7239         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
7240         (yyval.interm.type).init((yyvsp[0].lex).loc);
7241     }
7242 #line 7243 "MachineIndependent/glslang_tab.cpp"
7243     break;
7244
7245   case 200: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
7246 #line 1645 "MachineIndependent/glslang.y"
7247                                                        {
7248         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
7249         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
7250         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
7251         (yyval.interm.type).init((yyvsp[-3].lex).loc);
7252     }
7253 #line 7254 "MachineIndependent/glslang_tab.cpp"
7254     break;
7255
7256   case 201: /* non_uniform_qualifier: NONUNIFORM  */
7257 #line 1656 "MachineIndependent/glslang.y"
7258                  {
7259         (yyval.interm.type).init((yyvsp[0].lex).loc);
7260         (yyval.interm.type).qualifier.nonUniform = true;
7261     }
7262 #line 7263 "MachineIndependent/glslang_tab.cpp"
7263     break;
7264
7265   case 202: /* type_name_list: IDENTIFIER  */
7266 #line 1663 "MachineIndependent/glslang.y"
7267                  {
7268         // TODO
7269     }
7270 #line 7271 "MachineIndependent/glslang_tab.cpp"
7271     break;
7272
7273   case 203: /* type_name_list: type_name_list COMMA IDENTIFIER  */
7274 #line 1666 "MachineIndependent/glslang.y"
7275                                       {
7276         // TODO: 4.0 semantics: subroutines
7277         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
7278         // 2) save all of the identifiers for future comparison with the declared function
7279     }
7280 #line 7281 "MachineIndependent/glslang_tab.cpp"
7281     break;
7282
7283   case 204: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
7284 #line 1675 "MachineIndependent/glslang.y"
7285                                                            {
7286         (yyval.interm.type) = (yyvsp[-1].interm.type);
7287         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7288         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
7289     }
7290 #line 7291 "MachineIndependent/glslang_tab.cpp"
7291     break;
7292
7293   case 205: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
7294 #line 1680 "MachineIndependent/glslang.y"
7295                                                                            {
7296         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
7297         (yyval.interm.type) = (yyvsp[-2].interm.type);
7298         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
7299         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
7300         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
7301     }
7302 #line 7303 "MachineIndependent/glslang_tab.cpp"
7303     break;
7304
7305   case 206: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
7306 #line 1690 "MachineIndependent/glslang.y"
7307                                  {
7308         (yyval.interm).loc = (yyvsp[-1].lex).loc;
7309         (yyval.interm).arraySizes = new TArraySizes;
7310         (yyval.interm).arraySizes->addInnerSize();
7311     }
7312 #line 7313 "MachineIndependent/glslang_tab.cpp"
7313     break;
7314
7315   case 207: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
7316 #line 1695 "MachineIndependent/glslang.y"
7317                                                         {
7318         (yyval.interm).loc = (yyvsp[-2].lex).loc;
7319         (yyval.interm).arraySizes = new TArraySizes;
7320
7321         TArraySize size;
7322         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7323         (yyval.interm).arraySizes->addInnerSize(size);
7324     }
7325 #line 7326 "MachineIndependent/glslang_tab.cpp"
7326     break;
7327
7328   case 208: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
7329 #line 1703 "MachineIndependent/glslang.y"
7330                                                  {
7331         (yyval.interm) = (yyvsp[-2].interm);
7332         (yyval.interm).arraySizes->addInnerSize();
7333     }
7334 #line 7335 "MachineIndependent/glslang_tab.cpp"
7335     break;
7336
7337   case 209: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
7338 #line 1707 "MachineIndependent/glslang.y"
7339                                                                         {
7340         (yyval.interm) = (yyvsp[-3].interm);
7341
7342         TArraySize size;
7343         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
7344         (yyval.interm).arraySizes->addInnerSize(size);
7345     }
7346 #line 7347 "MachineIndependent/glslang_tab.cpp"
7347     break;
7348
7349   case 210: /* type_parameter_specifier_opt: type_parameter_specifier  */
7350 #line 1717 "MachineIndependent/glslang.y"
7351                                {
7352         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
7353     }
7354 #line 7355 "MachineIndependent/glslang_tab.cpp"
7355     break;
7356
7357   case 211: /* type_parameter_specifier_opt: %empty  */
7358 #line 1720 "MachineIndependent/glslang.y"
7359                         {
7360         (yyval.interm.typeParameters) = 0;
7361     }
7362 #line 7363 "MachineIndependent/glslang_tab.cpp"
7363     break;
7364
7365   case 212: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
7366 #line 1726 "MachineIndependent/glslang.y"
7367                                                            {
7368         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
7369     }
7370 #line 7371 "MachineIndependent/glslang_tab.cpp"
7371     break;
7372
7373   case 213: /* type_parameter_specifier_list: unary_expression  */
7374 #line 1732 "MachineIndependent/glslang.y"
7375                        {
7376         (yyval.interm.typeParameters) = new TArraySizes;
7377
7378         TArraySize size;
7379         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
7380         (yyval.interm.typeParameters)->addInnerSize(size);
7381     }
7382 #line 7383 "MachineIndependent/glslang_tab.cpp"
7383     break;
7384
7385   case 214: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
7386 #line 1739 "MachineIndependent/glslang.y"
7387                                                            {
7388         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
7389
7390         TArraySize size;
7391         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
7392         (yyval.interm.typeParameters)->addInnerSize(size);
7393     }
7394 #line 7395 "MachineIndependent/glslang_tab.cpp"
7395     break;
7396
7397   case 215: /* type_specifier_nonarray: VOID  */
7398 #line 1749 "MachineIndependent/glslang.y"
7399            {
7400         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7401         (yyval.interm.type).basicType = EbtVoid;
7402     }
7403 #line 7404 "MachineIndependent/glslang_tab.cpp"
7404     break;
7405
7406   case 216: /* type_specifier_nonarray: FLOAT  */
7407 #line 1753 "MachineIndependent/glslang.y"
7408             {
7409         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7410         (yyval.interm.type).basicType = EbtFloat;
7411     }
7412 #line 7413 "MachineIndependent/glslang_tab.cpp"
7413     break;
7414
7415   case 217: /* type_specifier_nonarray: INT  */
7416 #line 1757 "MachineIndependent/glslang.y"
7417           {
7418         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419         (yyval.interm.type).basicType = EbtInt;
7420     }
7421 #line 7422 "MachineIndependent/glslang_tab.cpp"
7422     break;
7423
7424   case 218: /* type_specifier_nonarray: UINT  */
7425 #line 1761 "MachineIndependent/glslang.y"
7426            {
7427         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
7428         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7429         (yyval.interm.type).basicType = EbtUint;
7430     }
7431 #line 7432 "MachineIndependent/glslang_tab.cpp"
7432     break;
7433
7434   case 219: /* type_specifier_nonarray: BOOL  */
7435 #line 1766 "MachineIndependent/glslang.y"
7436            {
7437         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7438         (yyval.interm.type).basicType = EbtBool;
7439     }
7440 #line 7441 "MachineIndependent/glslang_tab.cpp"
7441     break;
7442
7443   case 220: /* type_specifier_nonarray: VEC2  */
7444 #line 1770 "MachineIndependent/glslang.y"
7445            {
7446         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7447         (yyval.interm.type).basicType = EbtFloat;
7448         (yyval.interm.type).setVector(2);
7449     }
7450 #line 7451 "MachineIndependent/glslang_tab.cpp"
7451     break;
7452
7453   case 221: /* type_specifier_nonarray: VEC3  */
7454 #line 1775 "MachineIndependent/glslang.y"
7455            {
7456         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7457         (yyval.interm.type).basicType = EbtFloat;
7458         (yyval.interm.type).setVector(3);
7459     }
7460 #line 7461 "MachineIndependent/glslang_tab.cpp"
7461     break;
7462
7463   case 222: /* type_specifier_nonarray: VEC4  */
7464 #line 1780 "MachineIndependent/glslang.y"
7465            {
7466         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7467         (yyval.interm.type).basicType = EbtFloat;
7468         (yyval.interm.type).setVector(4);
7469     }
7470 #line 7471 "MachineIndependent/glslang_tab.cpp"
7471     break;
7472
7473   case 223: /* type_specifier_nonarray: BVEC2  */
7474 #line 1785 "MachineIndependent/glslang.y"
7475             {
7476         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7477         (yyval.interm.type).basicType = EbtBool;
7478         (yyval.interm.type).setVector(2);
7479     }
7480 #line 7481 "MachineIndependent/glslang_tab.cpp"
7481     break;
7482
7483   case 224: /* type_specifier_nonarray: BVEC3  */
7484 #line 1790 "MachineIndependent/glslang.y"
7485             {
7486         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7487         (yyval.interm.type).basicType = EbtBool;
7488         (yyval.interm.type).setVector(3);
7489     }
7490 #line 7491 "MachineIndependent/glslang_tab.cpp"
7491     break;
7492
7493   case 225: /* type_specifier_nonarray: BVEC4  */
7494 #line 1795 "MachineIndependent/glslang.y"
7495             {
7496         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7497         (yyval.interm.type).basicType = EbtBool;
7498         (yyval.interm.type).setVector(4);
7499     }
7500 #line 7501 "MachineIndependent/glslang_tab.cpp"
7501     break;
7502
7503   case 226: /* type_specifier_nonarray: IVEC2  */
7504 #line 1800 "MachineIndependent/glslang.y"
7505             {
7506         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507         (yyval.interm.type).basicType = EbtInt;
7508         (yyval.interm.type).setVector(2);
7509     }
7510 #line 7511 "MachineIndependent/glslang_tab.cpp"
7511     break;
7512
7513   case 227: /* type_specifier_nonarray: IVEC3  */
7514 #line 1805 "MachineIndependent/glslang.y"
7515             {
7516         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7517         (yyval.interm.type).basicType = EbtInt;
7518         (yyval.interm.type).setVector(3);
7519     }
7520 #line 7521 "MachineIndependent/glslang_tab.cpp"
7521     break;
7522
7523   case 228: /* type_specifier_nonarray: IVEC4  */
7524 #line 1810 "MachineIndependent/glslang.y"
7525             {
7526         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7527         (yyval.interm.type).basicType = EbtInt;
7528         (yyval.interm.type).setVector(4);
7529     }
7530 #line 7531 "MachineIndependent/glslang_tab.cpp"
7531     break;
7532
7533   case 229: /* type_specifier_nonarray: UVEC2  */
7534 #line 1815 "MachineIndependent/glslang.y"
7535             {
7536         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7537         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7538         (yyval.interm.type).basicType = EbtUint;
7539         (yyval.interm.type).setVector(2);
7540     }
7541 #line 7542 "MachineIndependent/glslang_tab.cpp"
7542     break;
7543
7544   case 230: /* type_specifier_nonarray: UVEC3  */
7545 #line 1821 "MachineIndependent/glslang.y"
7546             {
7547         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7548         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7549         (yyval.interm.type).basicType = EbtUint;
7550         (yyval.interm.type).setVector(3);
7551     }
7552 #line 7553 "MachineIndependent/glslang_tab.cpp"
7553     break;
7554
7555   case 231: /* type_specifier_nonarray: UVEC4  */
7556 #line 1827 "MachineIndependent/glslang.y"
7557             {
7558         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
7559         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7560         (yyval.interm.type).basicType = EbtUint;
7561         (yyval.interm.type).setVector(4);
7562     }
7563 #line 7564 "MachineIndependent/glslang_tab.cpp"
7564     break;
7565
7566   case 232: /* type_specifier_nonarray: MAT2  */
7567 #line 1833 "MachineIndependent/glslang.y"
7568            {
7569         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7570         (yyval.interm.type).basicType = EbtFloat;
7571         (yyval.interm.type).setMatrix(2, 2);
7572     }
7573 #line 7574 "MachineIndependent/glslang_tab.cpp"
7574     break;
7575
7576   case 233: /* type_specifier_nonarray: MAT3  */
7577 #line 1838 "MachineIndependent/glslang.y"
7578            {
7579         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7580         (yyval.interm.type).basicType = EbtFloat;
7581         (yyval.interm.type).setMatrix(3, 3);
7582     }
7583 #line 7584 "MachineIndependent/glslang_tab.cpp"
7584     break;
7585
7586   case 234: /* type_specifier_nonarray: MAT4  */
7587 #line 1843 "MachineIndependent/glslang.y"
7588            {
7589         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7590         (yyval.interm.type).basicType = EbtFloat;
7591         (yyval.interm.type).setMatrix(4, 4);
7592     }
7593 #line 7594 "MachineIndependent/glslang_tab.cpp"
7594     break;
7595
7596   case 235: /* type_specifier_nonarray: MAT2X2  */
7597 #line 1848 "MachineIndependent/glslang.y"
7598              {
7599         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7600         (yyval.interm.type).basicType = EbtFloat;
7601         (yyval.interm.type).setMatrix(2, 2);
7602     }
7603 #line 7604 "MachineIndependent/glslang_tab.cpp"
7604     break;
7605
7606   case 236: /* type_specifier_nonarray: MAT2X3  */
7607 #line 1853 "MachineIndependent/glslang.y"
7608              {
7609         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7610         (yyval.interm.type).basicType = EbtFloat;
7611         (yyval.interm.type).setMatrix(2, 3);
7612     }
7613 #line 7614 "MachineIndependent/glslang_tab.cpp"
7614     break;
7615
7616   case 237: /* type_specifier_nonarray: MAT2X4  */
7617 #line 1858 "MachineIndependent/glslang.y"
7618              {
7619         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7620         (yyval.interm.type).basicType = EbtFloat;
7621         (yyval.interm.type).setMatrix(2, 4);
7622     }
7623 #line 7624 "MachineIndependent/glslang_tab.cpp"
7624     break;
7625
7626   case 238: /* type_specifier_nonarray: MAT3X2  */
7627 #line 1863 "MachineIndependent/glslang.y"
7628              {
7629         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7630         (yyval.interm.type).basicType = EbtFloat;
7631         (yyval.interm.type).setMatrix(3, 2);
7632     }
7633 #line 7634 "MachineIndependent/glslang_tab.cpp"
7634     break;
7635
7636   case 239: /* type_specifier_nonarray: MAT3X3  */
7637 #line 1868 "MachineIndependent/glslang.y"
7638              {
7639         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7640         (yyval.interm.type).basicType = EbtFloat;
7641         (yyval.interm.type).setMatrix(3, 3);
7642     }
7643 #line 7644 "MachineIndependent/glslang_tab.cpp"
7644     break;
7645
7646   case 240: /* type_specifier_nonarray: MAT3X4  */
7647 #line 1873 "MachineIndependent/glslang.y"
7648              {
7649         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7650         (yyval.interm.type).basicType = EbtFloat;
7651         (yyval.interm.type).setMatrix(3, 4);
7652     }
7653 #line 7654 "MachineIndependent/glslang_tab.cpp"
7654     break;
7655
7656   case 241: /* type_specifier_nonarray: MAT4X2  */
7657 #line 1878 "MachineIndependent/glslang.y"
7658              {
7659         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7660         (yyval.interm.type).basicType = EbtFloat;
7661         (yyval.interm.type).setMatrix(4, 2);
7662     }
7663 #line 7664 "MachineIndependent/glslang_tab.cpp"
7664     break;
7665
7666   case 242: /* type_specifier_nonarray: MAT4X3  */
7667 #line 1883 "MachineIndependent/glslang.y"
7668              {
7669         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7670         (yyval.interm.type).basicType = EbtFloat;
7671         (yyval.interm.type).setMatrix(4, 3);
7672     }
7673 #line 7674 "MachineIndependent/glslang_tab.cpp"
7674     break;
7675
7676   case 243: /* type_specifier_nonarray: MAT4X4  */
7677 #line 1888 "MachineIndependent/glslang.y"
7678              {
7679         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7680         (yyval.interm.type).basicType = EbtFloat;
7681         (yyval.interm.type).setMatrix(4, 4);
7682     }
7683 #line 7684 "MachineIndependent/glslang_tab.cpp"
7684     break;
7685
7686   case 244: /* type_specifier_nonarray: DOUBLE  */
7687 #line 1894 "MachineIndependent/glslang.y"
7688              {
7689         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
7690         if (! parseContext.symbolTable.atBuiltInLevel())
7691             parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
7692         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7693         (yyval.interm.type).basicType = EbtDouble;
7694     }
7695 #line 7696 "MachineIndependent/glslang_tab.cpp"
7696     break;
7697
7698   case 245: /* type_specifier_nonarray: FLOAT16_T  */
7699 #line 1901 "MachineIndependent/glslang.y"
7700                 {
7701         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
7702         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7703         (yyval.interm.type).basicType = EbtFloat16;
7704     }
7705 #line 7706 "MachineIndependent/glslang_tab.cpp"
7706     break;
7707
7708   case 246: /* type_specifier_nonarray: FLOAT32_T  */
7709 #line 1906 "MachineIndependent/glslang.y"
7710                 {
7711         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
7712         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7713         (yyval.interm.type).basicType = EbtFloat;
7714     }
7715 #line 7716 "MachineIndependent/glslang_tab.cpp"
7716     break;
7717
7718   case 247: /* type_specifier_nonarray: FLOAT64_T  */
7719 #line 1911 "MachineIndependent/glslang.y"
7720                 {
7721         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
7722         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7723         (yyval.interm.type).basicType = EbtDouble;
7724     }
7725 #line 7726 "MachineIndependent/glslang_tab.cpp"
7726     break;
7727
7728   case 248: /* type_specifier_nonarray: INT8_T  */
7729 #line 1916 "MachineIndependent/glslang.y"
7730              {
7731         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7732         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7733         (yyval.interm.type).basicType = EbtInt8;
7734     }
7735 #line 7736 "MachineIndependent/glslang_tab.cpp"
7736     break;
7737
7738   case 249: /* type_specifier_nonarray: UINT8_T  */
7739 #line 1921 "MachineIndependent/glslang.y"
7740               {
7741         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7742         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7743         (yyval.interm.type).basicType = EbtUint8;
7744     }
7745 #line 7746 "MachineIndependent/glslang_tab.cpp"
7746     break;
7747
7748   case 250: /* type_specifier_nonarray: INT16_T  */
7749 #line 1926 "MachineIndependent/glslang.y"
7750               {
7751         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7752         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7753         (yyval.interm.type).basicType = EbtInt16;
7754     }
7755 #line 7756 "MachineIndependent/glslang_tab.cpp"
7756     break;
7757
7758   case 251: /* type_specifier_nonarray: UINT16_T  */
7759 #line 1931 "MachineIndependent/glslang.y"
7760                {
7761         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7762         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7763         (yyval.interm.type).basicType = EbtUint16;
7764     }
7765 #line 7766 "MachineIndependent/glslang_tab.cpp"
7766     break;
7767
7768   case 252: /* type_specifier_nonarray: INT32_T  */
7769 #line 1936 "MachineIndependent/glslang.y"
7770               {
7771         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7772         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7773         (yyval.interm.type).basicType = EbtInt;
7774     }
7775 #line 7776 "MachineIndependent/glslang_tab.cpp"
7776     break;
7777
7778   case 253: /* type_specifier_nonarray: UINT32_T  */
7779 #line 1941 "MachineIndependent/glslang.y"
7780                {
7781         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7782         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7783         (yyval.interm.type).basicType = EbtUint;
7784     }
7785 #line 7786 "MachineIndependent/glslang_tab.cpp"
7786     break;
7787
7788   case 254: /* type_specifier_nonarray: INT64_T  */
7789 #line 1946 "MachineIndependent/glslang.y"
7790               {
7791         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
7792         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7793         (yyval.interm.type).basicType = EbtInt64;
7794     }
7795 #line 7796 "MachineIndependent/glslang_tab.cpp"
7796     break;
7797
7798   case 255: /* type_specifier_nonarray: UINT64_T  */
7799 #line 1951 "MachineIndependent/glslang.y"
7800                {
7801         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7802         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7803         (yyval.interm.type).basicType = EbtUint64;
7804     }
7805 #line 7806 "MachineIndependent/glslang_tab.cpp"
7806     break;
7807
7808   case 256: /* type_specifier_nonarray: DVEC2  */
7809 #line 1956 "MachineIndependent/glslang.y"
7810             {
7811         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7812         if (! parseContext.symbolTable.atBuiltInLevel())
7813             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7814         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7815         (yyval.interm.type).basicType = EbtDouble;
7816         (yyval.interm.type).setVector(2);
7817     }
7818 #line 7819 "MachineIndependent/glslang_tab.cpp"
7819     break;
7820
7821   case 257: /* type_specifier_nonarray: DVEC3  */
7822 #line 1964 "MachineIndependent/glslang.y"
7823             {
7824         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7825         if (! parseContext.symbolTable.atBuiltInLevel())
7826             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7827         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7828         (yyval.interm.type).basicType = EbtDouble;
7829         (yyval.interm.type).setVector(3);
7830     }
7831 #line 7832 "MachineIndependent/glslang_tab.cpp"
7832     break;
7833
7834   case 258: /* type_specifier_nonarray: DVEC4  */
7835 #line 1972 "MachineIndependent/glslang.y"
7836             {
7837         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7838         if (! parseContext.symbolTable.atBuiltInLevel())
7839             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7840         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7841         (yyval.interm.type).basicType = EbtDouble;
7842         (yyval.interm.type).setVector(4);
7843     }
7844 #line 7845 "MachineIndependent/glslang_tab.cpp"
7845     break;
7846
7847   case 259: /* type_specifier_nonarray: F16VEC2  */
7848 #line 1980 "MachineIndependent/glslang.y"
7849               {
7850         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7851         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7852         (yyval.interm.type).basicType = EbtFloat16;
7853         (yyval.interm.type).setVector(2);
7854     }
7855 #line 7856 "MachineIndependent/glslang_tab.cpp"
7856     break;
7857
7858   case 260: /* type_specifier_nonarray: F16VEC3  */
7859 #line 1986 "MachineIndependent/glslang.y"
7860               {
7861         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7862         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7863         (yyval.interm.type).basicType = EbtFloat16;
7864         (yyval.interm.type).setVector(3);
7865     }
7866 #line 7867 "MachineIndependent/glslang_tab.cpp"
7867     break;
7868
7869   case 261: /* type_specifier_nonarray: F16VEC4  */
7870 #line 1992 "MachineIndependent/glslang.y"
7871               {
7872         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7873         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7874         (yyval.interm.type).basicType = EbtFloat16;
7875         (yyval.interm.type).setVector(4);
7876     }
7877 #line 7878 "MachineIndependent/glslang_tab.cpp"
7878     break;
7879
7880   case 262: /* type_specifier_nonarray: F32VEC2  */
7881 #line 1998 "MachineIndependent/glslang.y"
7882               {
7883         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7884         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7885         (yyval.interm.type).basicType = EbtFloat;
7886         (yyval.interm.type).setVector(2);
7887     }
7888 #line 7889 "MachineIndependent/glslang_tab.cpp"
7889     break;
7890
7891   case 263: /* type_specifier_nonarray: F32VEC3  */
7892 #line 2004 "MachineIndependent/glslang.y"
7893               {
7894         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7895         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7896         (yyval.interm.type).basicType = EbtFloat;
7897         (yyval.interm.type).setVector(3);
7898     }
7899 #line 7900 "MachineIndependent/glslang_tab.cpp"
7900     break;
7901
7902   case 264: /* type_specifier_nonarray: F32VEC4  */
7903 #line 2010 "MachineIndependent/glslang.y"
7904               {
7905         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7906         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7907         (yyval.interm.type).basicType = EbtFloat;
7908         (yyval.interm.type).setVector(4);
7909     }
7910 #line 7911 "MachineIndependent/glslang_tab.cpp"
7911     break;
7912
7913   case 265: /* type_specifier_nonarray: F64VEC2  */
7914 #line 2016 "MachineIndependent/glslang.y"
7915               {
7916         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7917         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7918         (yyval.interm.type).basicType = EbtDouble;
7919         (yyval.interm.type).setVector(2);
7920     }
7921 #line 7922 "MachineIndependent/glslang_tab.cpp"
7922     break;
7923
7924   case 266: /* type_specifier_nonarray: F64VEC3  */
7925 #line 2022 "MachineIndependent/glslang.y"
7926               {
7927         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7928         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7929         (yyval.interm.type).basicType = EbtDouble;
7930         (yyval.interm.type).setVector(3);
7931     }
7932 #line 7933 "MachineIndependent/glslang_tab.cpp"
7933     break;
7934
7935   case 267: /* type_specifier_nonarray: F64VEC4  */
7936 #line 2028 "MachineIndependent/glslang.y"
7937               {
7938         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7939         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7940         (yyval.interm.type).basicType = EbtDouble;
7941         (yyval.interm.type).setVector(4);
7942     }
7943 #line 7944 "MachineIndependent/glslang_tab.cpp"
7944     break;
7945
7946   case 268: /* type_specifier_nonarray: I8VEC2  */
7947 #line 2034 "MachineIndependent/glslang.y"
7948              {
7949         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7950         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7951         (yyval.interm.type).basicType = EbtInt8;
7952         (yyval.interm.type).setVector(2);
7953     }
7954 #line 7955 "MachineIndependent/glslang_tab.cpp"
7955     break;
7956
7957   case 269: /* type_specifier_nonarray: I8VEC3  */
7958 #line 2040 "MachineIndependent/glslang.y"
7959              {
7960         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7961         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7962         (yyval.interm.type).basicType = EbtInt8;
7963         (yyval.interm.type).setVector(3);
7964     }
7965 #line 7966 "MachineIndependent/glslang_tab.cpp"
7966     break;
7967
7968   case 270: /* type_specifier_nonarray: I8VEC4  */
7969 #line 2046 "MachineIndependent/glslang.y"
7970              {
7971         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7973         (yyval.interm.type).basicType = EbtInt8;
7974         (yyval.interm.type).setVector(4);
7975     }
7976 #line 7977 "MachineIndependent/glslang_tab.cpp"
7977     break;
7978
7979   case 271: /* type_specifier_nonarray: I16VEC2  */
7980 #line 2052 "MachineIndependent/glslang.y"
7981               {
7982         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7983         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7984         (yyval.interm.type).basicType = EbtInt16;
7985         (yyval.interm.type).setVector(2);
7986     }
7987 #line 7988 "MachineIndependent/glslang_tab.cpp"
7988     break;
7989
7990   case 272: /* type_specifier_nonarray: I16VEC3  */
7991 #line 2058 "MachineIndependent/glslang.y"
7992               {
7993         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7994         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7995         (yyval.interm.type).basicType = EbtInt16;
7996         (yyval.interm.type).setVector(3);
7997     }
7998 #line 7999 "MachineIndependent/glslang_tab.cpp"
7999     break;
8000
8001   case 273: /* type_specifier_nonarray: I16VEC4  */
8002 #line 2064 "MachineIndependent/glslang.y"
8003               {
8004         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8005         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8006         (yyval.interm.type).basicType = EbtInt16;
8007         (yyval.interm.type).setVector(4);
8008     }
8009 #line 8010 "MachineIndependent/glslang_tab.cpp"
8010     break;
8011
8012   case 274: /* type_specifier_nonarray: I32VEC2  */
8013 #line 2070 "MachineIndependent/glslang.y"
8014               {
8015         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8016         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8017         (yyval.interm.type).basicType = EbtInt;
8018         (yyval.interm.type).setVector(2);
8019     }
8020 #line 8021 "MachineIndependent/glslang_tab.cpp"
8021     break;
8022
8023   case 275: /* type_specifier_nonarray: I32VEC3  */
8024 #line 2076 "MachineIndependent/glslang.y"
8025               {
8026         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8027         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8028         (yyval.interm.type).basicType = EbtInt;
8029         (yyval.interm.type).setVector(3);
8030     }
8031 #line 8032 "MachineIndependent/glslang_tab.cpp"
8032     break;
8033
8034   case 276: /* type_specifier_nonarray: I32VEC4  */
8035 #line 2082 "MachineIndependent/glslang.y"
8036               {
8037         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
8038         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8039         (yyval.interm.type).basicType = EbtInt;
8040         (yyval.interm.type).setVector(4);
8041     }
8042 #line 8043 "MachineIndependent/glslang_tab.cpp"
8043     break;
8044
8045   case 277: /* type_specifier_nonarray: I64VEC2  */
8046 #line 2088 "MachineIndependent/glslang.y"
8047               {
8048         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8049         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8050         (yyval.interm.type).basicType = EbtInt64;
8051         (yyval.interm.type).setVector(2);
8052     }
8053 #line 8054 "MachineIndependent/glslang_tab.cpp"
8054     break;
8055
8056   case 278: /* type_specifier_nonarray: I64VEC3  */
8057 #line 2094 "MachineIndependent/glslang.y"
8058               {
8059         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8060         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8061         (yyval.interm.type).basicType = EbtInt64;
8062         (yyval.interm.type).setVector(3);
8063     }
8064 #line 8065 "MachineIndependent/glslang_tab.cpp"
8065     break;
8066
8067   case 279: /* type_specifier_nonarray: I64VEC4  */
8068 #line 2100 "MachineIndependent/glslang.y"
8069               {
8070         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
8071         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8072         (yyval.interm.type).basicType = EbtInt64;
8073         (yyval.interm.type).setVector(4);
8074     }
8075 #line 8076 "MachineIndependent/glslang_tab.cpp"
8076     break;
8077
8078   case 280: /* type_specifier_nonarray: U8VEC2  */
8079 #line 2106 "MachineIndependent/glslang.y"
8080              {
8081         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8082         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8083         (yyval.interm.type).basicType = EbtUint8;
8084         (yyval.interm.type).setVector(2);
8085     }
8086 #line 8087 "MachineIndependent/glslang_tab.cpp"
8087     break;
8088
8089   case 281: /* type_specifier_nonarray: U8VEC3  */
8090 #line 2112 "MachineIndependent/glslang.y"
8091              {
8092         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8093         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8094         (yyval.interm.type).basicType = EbtUint8;
8095         (yyval.interm.type).setVector(3);
8096     }
8097 #line 8098 "MachineIndependent/glslang_tab.cpp"
8098     break;
8099
8100   case 282: /* type_specifier_nonarray: U8VEC4  */
8101 #line 2118 "MachineIndependent/glslang.y"
8102              {
8103         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8104         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8105         (yyval.interm.type).basicType = EbtUint8;
8106         (yyval.interm.type).setVector(4);
8107     }
8108 #line 8109 "MachineIndependent/glslang_tab.cpp"
8109     break;
8110
8111   case 283: /* type_specifier_nonarray: U16VEC2  */
8112 #line 2124 "MachineIndependent/glslang.y"
8113               {
8114         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8115         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8116         (yyval.interm.type).basicType = EbtUint16;
8117         (yyval.interm.type).setVector(2);
8118     }
8119 #line 8120 "MachineIndependent/glslang_tab.cpp"
8120     break;
8121
8122   case 284: /* type_specifier_nonarray: U16VEC3  */
8123 #line 2130 "MachineIndependent/glslang.y"
8124               {
8125         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8126         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8127         (yyval.interm.type).basicType = EbtUint16;
8128         (yyval.interm.type).setVector(3);
8129     }
8130 #line 8131 "MachineIndependent/glslang_tab.cpp"
8131     break;
8132
8133   case 285: /* type_specifier_nonarray: U16VEC4  */
8134 #line 2136 "MachineIndependent/glslang.y"
8135               {
8136         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8137         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8138         (yyval.interm.type).basicType = EbtUint16;
8139         (yyval.interm.type).setVector(4);
8140     }
8141 #line 8142 "MachineIndependent/glslang_tab.cpp"
8142     break;
8143
8144   case 286: /* type_specifier_nonarray: U32VEC2  */
8145 #line 2142 "MachineIndependent/glslang.y"
8146               {
8147         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8148         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8149         (yyval.interm.type).basicType = EbtUint;
8150         (yyval.interm.type).setVector(2);
8151     }
8152 #line 8153 "MachineIndependent/glslang_tab.cpp"
8153     break;
8154
8155   case 287: /* type_specifier_nonarray: U32VEC3  */
8156 #line 2148 "MachineIndependent/glslang.y"
8157               {
8158         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8159         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8160         (yyval.interm.type).basicType = EbtUint;
8161         (yyval.interm.type).setVector(3);
8162     }
8163 #line 8164 "MachineIndependent/glslang_tab.cpp"
8164     break;
8165
8166   case 288: /* type_specifier_nonarray: U32VEC4  */
8167 #line 2154 "MachineIndependent/glslang.y"
8168               {
8169         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8170         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8171         (yyval.interm.type).basicType = EbtUint;
8172         (yyval.interm.type).setVector(4);
8173     }
8174 #line 8175 "MachineIndependent/glslang_tab.cpp"
8175     break;
8176
8177   case 289: /* type_specifier_nonarray: U64VEC2  */
8178 #line 2160 "MachineIndependent/glslang.y"
8179               {
8180         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8181         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8182         (yyval.interm.type).basicType = EbtUint64;
8183         (yyval.interm.type).setVector(2);
8184     }
8185 #line 8186 "MachineIndependent/glslang_tab.cpp"
8186     break;
8187
8188   case 290: /* type_specifier_nonarray: U64VEC3  */
8189 #line 2166 "MachineIndependent/glslang.y"
8190               {
8191         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8192         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8193         (yyval.interm.type).basicType = EbtUint64;
8194         (yyval.interm.type).setVector(3);
8195     }
8196 #line 8197 "MachineIndependent/glslang_tab.cpp"
8197     break;
8198
8199   case 291: /* type_specifier_nonarray: U64VEC4  */
8200 #line 2172 "MachineIndependent/glslang.y"
8201               {
8202         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
8203         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8204         (yyval.interm.type).basicType = EbtUint64;
8205         (yyval.interm.type).setVector(4);
8206     }
8207 #line 8208 "MachineIndependent/glslang_tab.cpp"
8208     break;
8209
8210   case 292: /* type_specifier_nonarray: DMAT2  */
8211 #line 2178 "MachineIndependent/glslang.y"
8212             {
8213         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8214         if (! parseContext.symbolTable.atBuiltInLevel())
8215             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8217         (yyval.interm.type).basicType = EbtDouble;
8218         (yyval.interm.type).setMatrix(2, 2);
8219     }
8220 #line 8221 "MachineIndependent/glslang_tab.cpp"
8221     break;
8222
8223   case 293: /* type_specifier_nonarray: DMAT3  */
8224 #line 2186 "MachineIndependent/glslang.y"
8225             {
8226         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8227         if (! parseContext.symbolTable.atBuiltInLevel())
8228             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8229         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8230         (yyval.interm.type).basicType = EbtDouble;
8231         (yyval.interm.type).setMatrix(3, 3);
8232     }
8233 #line 8234 "MachineIndependent/glslang_tab.cpp"
8234     break;
8235
8236   case 294: /* type_specifier_nonarray: DMAT4  */
8237 #line 2194 "MachineIndependent/glslang.y"
8238             {
8239         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8240         if (! parseContext.symbolTable.atBuiltInLevel())
8241             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8242         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8243         (yyval.interm.type).basicType = EbtDouble;
8244         (yyval.interm.type).setMatrix(4, 4);
8245     }
8246 #line 8247 "MachineIndependent/glslang_tab.cpp"
8247     break;
8248
8249   case 295: /* type_specifier_nonarray: DMAT2X2  */
8250 #line 2202 "MachineIndependent/glslang.y"
8251               {
8252         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8253         if (! parseContext.symbolTable.atBuiltInLevel())
8254             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8256         (yyval.interm.type).basicType = EbtDouble;
8257         (yyval.interm.type).setMatrix(2, 2);
8258     }
8259 #line 8260 "MachineIndependent/glslang_tab.cpp"
8260     break;
8261
8262   case 296: /* type_specifier_nonarray: DMAT2X3  */
8263 #line 2210 "MachineIndependent/glslang.y"
8264               {
8265         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8266         if (! parseContext.symbolTable.atBuiltInLevel())
8267             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8268         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8269         (yyval.interm.type).basicType = EbtDouble;
8270         (yyval.interm.type).setMatrix(2, 3);
8271     }
8272 #line 8273 "MachineIndependent/glslang_tab.cpp"
8273     break;
8274
8275   case 297: /* type_specifier_nonarray: DMAT2X4  */
8276 #line 2218 "MachineIndependent/glslang.y"
8277               {
8278         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8279         if (! parseContext.symbolTable.atBuiltInLevel())
8280             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8281         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8282         (yyval.interm.type).basicType = EbtDouble;
8283         (yyval.interm.type).setMatrix(2, 4);
8284     }
8285 #line 8286 "MachineIndependent/glslang_tab.cpp"
8286     break;
8287
8288   case 298: /* type_specifier_nonarray: DMAT3X2  */
8289 #line 2226 "MachineIndependent/glslang.y"
8290               {
8291         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8292         if (! parseContext.symbolTable.atBuiltInLevel())
8293             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8294         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8295         (yyval.interm.type).basicType = EbtDouble;
8296         (yyval.interm.type).setMatrix(3, 2);
8297     }
8298 #line 8299 "MachineIndependent/glslang_tab.cpp"
8299     break;
8300
8301   case 299: /* type_specifier_nonarray: DMAT3X3  */
8302 #line 2234 "MachineIndependent/glslang.y"
8303               {
8304         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8305         if (! parseContext.symbolTable.atBuiltInLevel())
8306             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8307         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8308         (yyval.interm.type).basicType = EbtDouble;
8309         (yyval.interm.type).setMatrix(3, 3);
8310     }
8311 #line 8312 "MachineIndependent/glslang_tab.cpp"
8312     break;
8313
8314   case 300: /* type_specifier_nonarray: DMAT3X4  */
8315 #line 2242 "MachineIndependent/glslang.y"
8316               {
8317         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8318         if (! parseContext.symbolTable.atBuiltInLevel())
8319             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8320         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8321         (yyval.interm.type).basicType = EbtDouble;
8322         (yyval.interm.type).setMatrix(3, 4);
8323     }
8324 #line 8325 "MachineIndependent/glslang_tab.cpp"
8325     break;
8326
8327   case 301: /* type_specifier_nonarray: DMAT4X2  */
8328 #line 2250 "MachineIndependent/glslang.y"
8329               {
8330         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8331         if (! parseContext.symbolTable.atBuiltInLevel())
8332             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8333         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8334         (yyval.interm.type).basicType = EbtDouble;
8335         (yyval.interm.type).setMatrix(4, 2);
8336     }
8337 #line 8338 "MachineIndependent/glslang_tab.cpp"
8338     break;
8339
8340   case 302: /* type_specifier_nonarray: DMAT4X3  */
8341 #line 2258 "MachineIndependent/glslang.y"
8342               {
8343         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8344         if (! parseContext.symbolTable.atBuiltInLevel())
8345             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8346         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8347         (yyval.interm.type).basicType = EbtDouble;
8348         (yyval.interm.type).setMatrix(4, 3);
8349     }
8350 #line 8351 "MachineIndependent/glslang_tab.cpp"
8351     break;
8352
8353   case 303: /* type_specifier_nonarray: DMAT4X4  */
8354 #line 2266 "MachineIndependent/glslang.y"
8355               {
8356         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
8357         if (! parseContext.symbolTable.atBuiltInLevel())
8358             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
8359         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8360         (yyval.interm.type).basicType = EbtDouble;
8361         (yyval.interm.type).setMatrix(4, 4);
8362     }
8363 #line 8364 "MachineIndependent/glslang_tab.cpp"
8364     break;
8365
8366   case 304: /* type_specifier_nonarray: F16MAT2  */
8367 #line 2274 "MachineIndependent/glslang.y"
8368               {
8369         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8370         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8371         (yyval.interm.type).basicType = EbtFloat16;
8372         (yyval.interm.type).setMatrix(2, 2);
8373     }
8374 #line 8375 "MachineIndependent/glslang_tab.cpp"
8375     break;
8376
8377   case 305: /* type_specifier_nonarray: F16MAT3  */
8378 #line 2280 "MachineIndependent/glslang.y"
8379               {
8380         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8381         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8382         (yyval.interm.type).basicType = EbtFloat16;
8383         (yyval.interm.type).setMatrix(3, 3);
8384     }
8385 #line 8386 "MachineIndependent/glslang_tab.cpp"
8386     break;
8387
8388   case 306: /* type_specifier_nonarray: F16MAT4  */
8389 #line 2286 "MachineIndependent/glslang.y"
8390               {
8391         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8392         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8393         (yyval.interm.type).basicType = EbtFloat16;
8394         (yyval.interm.type).setMatrix(4, 4);
8395     }
8396 #line 8397 "MachineIndependent/glslang_tab.cpp"
8397     break;
8398
8399   case 307: /* type_specifier_nonarray: F16MAT2X2  */
8400 #line 2292 "MachineIndependent/glslang.y"
8401                 {
8402         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8403         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8404         (yyval.interm.type).basicType = EbtFloat16;
8405         (yyval.interm.type).setMatrix(2, 2);
8406     }
8407 #line 8408 "MachineIndependent/glslang_tab.cpp"
8408     break;
8409
8410   case 308: /* type_specifier_nonarray: F16MAT2X3  */
8411 #line 2298 "MachineIndependent/glslang.y"
8412                 {
8413         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8414         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8415         (yyval.interm.type).basicType = EbtFloat16;
8416         (yyval.interm.type).setMatrix(2, 3);
8417     }
8418 #line 8419 "MachineIndependent/glslang_tab.cpp"
8419     break;
8420
8421   case 309: /* type_specifier_nonarray: F16MAT2X4  */
8422 #line 2304 "MachineIndependent/glslang.y"
8423                 {
8424         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8425         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8426         (yyval.interm.type).basicType = EbtFloat16;
8427         (yyval.interm.type).setMatrix(2, 4);
8428     }
8429 #line 8430 "MachineIndependent/glslang_tab.cpp"
8430     break;
8431
8432   case 310: /* type_specifier_nonarray: F16MAT3X2  */
8433 #line 2310 "MachineIndependent/glslang.y"
8434                 {
8435         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8437         (yyval.interm.type).basicType = EbtFloat16;
8438         (yyval.interm.type).setMatrix(3, 2);
8439     }
8440 #line 8441 "MachineIndependent/glslang_tab.cpp"
8441     break;
8442
8443   case 311: /* type_specifier_nonarray: F16MAT3X3  */
8444 #line 2316 "MachineIndependent/glslang.y"
8445                 {
8446         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8447         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8448         (yyval.interm.type).basicType = EbtFloat16;
8449         (yyval.interm.type).setMatrix(3, 3);
8450     }
8451 #line 8452 "MachineIndependent/glslang_tab.cpp"
8452     break;
8453
8454   case 312: /* type_specifier_nonarray: F16MAT3X4  */
8455 #line 2322 "MachineIndependent/glslang.y"
8456                 {
8457         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8459         (yyval.interm.type).basicType = EbtFloat16;
8460         (yyval.interm.type).setMatrix(3, 4);
8461     }
8462 #line 8463 "MachineIndependent/glslang_tab.cpp"
8463     break;
8464
8465   case 313: /* type_specifier_nonarray: F16MAT4X2  */
8466 #line 2328 "MachineIndependent/glslang.y"
8467                 {
8468         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8469         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8470         (yyval.interm.type).basicType = EbtFloat16;
8471         (yyval.interm.type).setMatrix(4, 2);
8472     }
8473 #line 8474 "MachineIndependent/glslang_tab.cpp"
8474     break;
8475
8476   case 314: /* type_specifier_nonarray: F16MAT4X3  */
8477 #line 2334 "MachineIndependent/glslang.y"
8478                 {
8479         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8480         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8481         (yyval.interm.type).basicType = EbtFloat16;
8482         (yyval.interm.type).setMatrix(4, 3);
8483     }
8484 #line 8485 "MachineIndependent/glslang_tab.cpp"
8485     break;
8486
8487   case 315: /* type_specifier_nonarray: F16MAT4X4  */
8488 #line 2340 "MachineIndependent/glslang.y"
8489                 {
8490         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
8491         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8492         (yyval.interm.type).basicType = EbtFloat16;
8493         (yyval.interm.type).setMatrix(4, 4);
8494     }
8495 #line 8496 "MachineIndependent/glslang_tab.cpp"
8496     break;
8497
8498   case 316: /* type_specifier_nonarray: F32MAT2  */
8499 #line 2346 "MachineIndependent/glslang.y"
8500               {
8501         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8502         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8503         (yyval.interm.type).basicType = EbtFloat;
8504         (yyval.interm.type).setMatrix(2, 2);
8505     }
8506 #line 8507 "MachineIndependent/glslang_tab.cpp"
8507     break;
8508
8509   case 317: /* type_specifier_nonarray: F32MAT3  */
8510 #line 2352 "MachineIndependent/glslang.y"
8511               {
8512         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8513         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8514         (yyval.interm.type).basicType = EbtFloat;
8515         (yyval.interm.type).setMatrix(3, 3);
8516     }
8517 #line 8518 "MachineIndependent/glslang_tab.cpp"
8518     break;
8519
8520   case 318: /* type_specifier_nonarray: F32MAT4  */
8521 #line 2358 "MachineIndependent/glslang.y"
8522               {
8523         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8524         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8525         (yyval.interm.type).basicType = EbtFloat;
8526         (yyval.interm.type).setMatrix(4, 4);
8527     }
8528 #line 8529 "MachineIndependent/glslang_tab.cpp"
8529     break;
8530
8531   case 319: /* type_specifier_nonarray: F32MAT2X2  */
8532 #line 2364 "MachineIndependent/glslang.y"
8533                 {
8534         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8535         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8536         (yyval.interm.type).basicType = EbtFloat;
8537         (yyval.interm.type).setMatrix(2, 2);
8538     }
8539 #line 8540 "MachineIndependent/glslang_tab.cpp"
8540     break;
8541
8542   case 320: /* type_specifier_nonarray: F32MAT2X3  */
8543 #line 2370 "MachineIndependent/glslang.y"
8544                 {
8545         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8546         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8547         (yyval.interm.type).basicType = EbtFloat;
8548         (yyval.interm.type).setMatrix(2, 3);
8549     }
8550 #line 8551 "MachineIndependent/glslang_tab.cpp"
8551     break;
8552
8553   case 321: /* type_specifier_nonarray: F32MAT2X4  */
8554 #line 2376 "MachineIndependent/glslang.y"
8555                 {
8556         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8557         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8558         (yyval.interm.type).basicType = EbtFloat;
8559         (yyval.interm.type).setMatrix(2, 4);
8560     }
8561 #line 8562 "MachineIndependent/glslang_tab.cpp"
8562     break;
8563
8564   case 322: /* type_specifier_nonarray: F32MAT3X2  */
8565 #line 2382 "MachineIndependent/glslang.y"
8566                 {
8567         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8568         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8569         (yyval.interm.type).basicType = EbtFloat;
8570         (yyval.interm.type).setMatrix(3, 2);
8571     }
8572 #line 8573 "MachineIndependent/glslang_tab.cpp"
8573     break;
8574
8575   case 323: /* type_specifier_nonarray: F32MAT3X3  */
8576 #line 2388 "MachineIndependent/glslang.y"
8577                 {
8578         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8579         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8580         (yyval.interm.type).basicType = EbtFloat;
8581         (yyval.interm.type).setMatrix(3, 3);
8582     }
8583 #line 8584 "MachineIndependent/glslang_tab.cpp"
8584     break;
8585
8586   case 324: /* type_specifier_nonarray: F32MAT3X4  */
8587 #line 2394 "MachineIndependent/glslang.y"
8588                 {
8589         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8590         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8591         (yyval.interm.type).basicType = EbtFloat;
8592         (yyval.interm.type).setMatrix(3, 4);
8593     }
8594 #line 8595 "MachineIndependent/glslang_tab.cpp"
8595     break;
8596
8597   case 325: /* type_specifier_nonarray: F32MAT4X2  */
8598 #line 2400 "MachineIndependent/glslang.y"
8599                 {
8600         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8602         (yyval.interm.type).basicType = EbtFloat;
8603         (yyval.interm.type).setMatrix(4, 2);
8604     }
8605 #line 8606 "MachineIndependent/glslang_tab.cpp"
8606     break;
8607
8608   case 326: /* type_specifier_nonarray: F32MAT4X3  */
8609 #line 2406 "MachineIndependent/glslang.y"
8610                 {
8611         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8612         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8613         (yyval.interm.type).basicType = EbtFloat;
8614         (yyval.interm.type).setMatrix(4, 3);
8615     }
8616 #line 8617 "MachineIndependent/glslang_tab.cpp"
8617     break;
8618
8619   case 327: /* type_specifier_nonarray: F32MAT4X4  */
8620 #line 2412 "MachineIndependent/glslang.y"
8621                 {
8622         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8623         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8624         (yyval.interm.type).basicType = EbtFloat;
8625         (yyval.interm.type).setMatrix(4, 4);
8626     }
8627 #line 8628 "MachineIndependent/glslang_tab.cpp"
8628     break;
8629
8630   case 328: /* type_specifier_nonarray: F64MAT2  */
8631 #line 2418 "MachineIndependent/glslang.y"
8632               {
8633         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8634         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8635         (yyval.interm.type).basicType = EbtDouble;
8636         (yyval.interm.type).setMatrix(2, 2);
8637     }
8638 #line 8639 "MachineIndependent/glslang_tab.cpp"
8639     break;
8640
8641   case 329: /* type_specifier_nonarray: F64MAT3  */
8642 #line 2424 "MachineIndependent/glslang.y"
8643               {
8644         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8645         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8646         (yyval.interm.type).basicType = EbtDouble;
8647         (yyval.interm.type).setMatrix(3, 3);
8648     }
8649 #line 8650 "MachineIndependent/glslang_tab.cpp"
8650     break;
8651
8652   case 330: /* type_specifier_nonarray: F64MAT4  */
8653 #line 2430 "MachineIndependent/glslang.y"
8654               {
8655         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8656         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8657         (yyval.interm.type).basicType = EbtDouble;
8658         (yyval.interm.type).setMatrix(4, 4);
8659     }
8660 #line 8661 "MachineIndependent/glslang_tab.cpp"
8661     break;
8662
8663   case 331: /* type_specifier_nonarray: F64MAT2X2  */
8664 #line 2436 "MachineIndependent/glslang.y"
8665                 {
8666         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8667         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8668         (yyval.interm.type).basicType = EbtDouble;
8669         (yyval.interm.type).setMatrix(2, 2);
8670     }
8671 #line 8672 "MachineIndependent/glslang_tab.cpp"
8672     break;
8673
8674   case 332: /* type_specifier_nonarray: F64MAT2X3  */
8675 #line 2442 "MachineIndependent/glslang.y"
8676                 {
8677         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8678         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8679         (yyval.interm.type).basicType = EbtDouble;
8680         (yyval.interm.type).setMatrix(2, 3);
8681     }
8682 #line 8683 "MachineIndependent/glslang_tab.cpp"
8683     break;
8684
8685   case 333: /* type_specifier_nonarray: F64MAT2X4  */
8686 #line 2448 "MachineIndependent/glslang.y"
8687                 {
8688         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8689         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8690         (yyval.interm.type).basicType = EbtDouble;
8691         (yyval.interm.type).setMatrix(2, 4);
8692     }
8693 #line 8694 "MachineIndependent/glslang_tab.cpp"
8694     break;
8695
8696   case 334: /* type_specifier_nonarray: F64MAT3X2  */
8697 #line 2454 "MachineIndependent/glslang.y"
8698                 {
8699         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8700         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8701         (yyval.interm.type).basicType = EbtDouble;
8702         (yyval.interm.type).setMatrix(3, 2);
8703     }
8704 #line 8705 "MachineIndependent/glslang_tab.cpp"
8705     break;
8706
8707   case 335: /* type_specifier_nonarray: F64MAT3X3  */
8708 #line 2460 "MachineIndependent/glslang.y"
8709                 {
8710         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8711         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8712         (yyval.interm.type).basicType = EbtDouble;
8713         (yyval.interm.type).setMatrix(3, 3);
8714     }
8715 #line 8716 "MachineIndependent/glslang_tab.cpp"
8716     break;
8717
8718   case 336: /* type_specifier_nonarray: F64MAT3X4  */
8719 #line 2466 "MachineIndependent/glslang.y"
8720                 {
8721         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8722         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8723         (yyval.interm.type).basicType = EbtDouble;
8724         (yyval.interm.type).setMatrix(3, 4);
8725     }
8726 #line 8727 "MachineIndependent/glslang_tab.cpp"
8727     break;
8728
8729   case 337: /* type_specifier_nonarray: F64MAT4X2  */
8730 #line 2472 "MachineIndependent/glslang.y"
8731                 {
8732         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8733         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8734         (yyval.interm.type).basicType = EbtDouble;
8735         (yyval.interm.type).setMatrix(4, 2);
8736     }
8737 #line 8738 "MachineIndependent/glslang_tab.cpp"
8738     break;
8739
8740   case 338: /* type_specifier_nonarray: F64MAT4X3  */
8741 #line 2478 "MachineIndependent/glslang.y"
8742                 {
8743         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8744         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8745         (yyval.interm.type).basicType = EbtDouble;
8746         (yyval.interm.type).setMatrix(4, 3);
8747     }
8748 #line 8749 "MachineIndependent/glslang_tab.cpp"
8749     break;
8750
8751   case 339: /* type_specifier_nonarray: F64MAT4X4  */
8752 #line 2484 "MachineIndependent/glslang.y"
8753                 {
8754         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8755         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8756         (yyval.interm.type).basicType = EbtDouble;
8757         (yyval.interm.type).setMatrix(4, 4);
8758     }
8759 #line 8760 "MachineIndependent/glslang_tab.cpp"
8760     break;
8761
8762   case 340: /* type_specifier_nonarray: ACCSTRUCTNV  */
8763 #line 2490 "MachineIndependent/glslang.y"
8764                   {
8765        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8766        (yyval.interm.type).basicType = EbtAccStruct;
8767     }
8768 #line 8769 "MachineIndependent/glslang_tab.cpp"
8769     break;
8770
8771   case 341: /* type_specifier_nonarray: ACCSTRUCTEXT  */
8772 #line 2494 "MachineIndependent/glslang.y"
8773                    {
8774        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8775        (yyval.interm.type).basicType = EbtAccStruct;
8776     }
8777 #line 8778 "MachineIndependent/glslang_tab.cpp"
8778     break;
8779
8780   case 342: /* type_specifier_nonarray: RAYQUERYEXT  */
8781 #line 2498 "MachineIndependent/glslang.y"
8782                   {
8783        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8784        (yyval.interm.type).basicType = EbtRayQuery;
8785     }
8786 #line 8787 "MachineIndependent/glslang_tab.cpp"
8787     break;
8788
8789   case 343: /* type_specifier_nonarray: ATOMIC_UINT  */
8790 #line 2502 "MachineIndependent/glslang.y"
8791                   {
8792         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
8793         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8794         (yyval.interm.type).basicType = EbtAtomicUint;
8795     }
8796 #line 8797 "MachineIndependent/glslang_tab.cpp"
8797     break;
8798
8799   case 344: /* type_specifier_nonarray: SAMPLER1D  */
8800 #line 2507 "MachineIndependent/glslang.y"
8801                 {
8802         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8803         (yyval.interm.type).basicType = EbtSampler;
8804         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
8805     }
8806 #line 8807 "MachineIndependent/glslang_tab.cpp"
8807     break;
8808
8809   case 345: /* type_specifier_nonarray: SAMPLER2D  */
8810 #line 2513 "MachineIndependent/glslang.y"
8811                 {
8812         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8813         (yyval.interm.type).basicType = EbtSampler;
8814         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
8815     }
8816 #line 8817 "MachineIndependent/glslang_tab.cpp"
8817     break;
8818
8819   case 346: /* type_specifier_nonarray: SAMPLER3D  */
8820 #line 2518 "MachineIndependent/glslang.y"
8821                 {
8822         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8823         (yyval.interm.type).basicType = EbtSampler;
8824         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
8825     }
8826 #line 8827 "MachineIndependent/glslang_tab.cpp"
8827     break;
8828
8829   case 347: /* type_specifier_nonarray: SAMPLERCUBE  */
8830 #line 2523 "MachineIndependent/glslang.y"
8831                   {
8832         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8833         (yyval.interm.type).basicType = EbtSampler;
8834         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
8835     }
8836 #line 8837 "MachineIndependent/glslang_tab.cpp"
8837     break;
8838
8839   case 348: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
8840 #line 2528 "MachineIndependent/glslang.y"
8841                       {
8842         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8843         (yyval.interm.type).basicType = EbtSampler;
8844         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
8845     }
8846 #line 8847 "MachineIndependent/glslang_tab.cpp"
8847     break;
8848
8849   case 349: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
8850 #line 2533 "MachineIndependent/glslang.y"
8851                         {
8852         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8853         (yyval.interm.type).basicType = EbtSampler;
8854         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
8855     }
8856 #line 8857 "MachineIndependent/glslang_tab.cpp"
8857     break;
8858
8859   case 350: /* type_specifier_nonarray: SAMPLER2DARRAY  */
8860 #line 2538 "MachineIndependent/glslang.y"
8861                      {
8862         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8863         (yyval.interm.type).basicType = EbtSampler;
8864         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
8865     }
8866 #line 8867 "MachineIndependent/glslang_tab.cpp"
8867     break;
8868
8869   case 351: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
8870 #line 2543 "MachineIndependent/glslang.y"
8871                            {
8872         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8873         (yyval.interm.type).basicType = EbtSampler;
8874         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
8875     }
8876 #line 8877 "MachineIndependent/glslang_tab.cpp"
8877     break;
8878
8879   case 352: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
8880 #line 2549 "MachineIndependent/glslang.y"
8881                       {
8882         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8883         (yyval.interm.type).basicType = EbtSampler;
8884         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
8885     }
8886 #line 8887 "MachineIndependent/glslang_tab.cpp"
8887     break;
8888
8889   case 353: /* type_specifier_nonarray: SAMPLER1DARRAY  */
8890 #line 2554 "MachineIndependent/glslang.y"
8891                      {
8892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8893         (yyval.interm.type).basicType = EbtSampler;
8894         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
8895     }
8896 #line 8897 "MachineIndependent/glslang_tab.cpp"
8897     break;
8898
8899   case 354: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
8900 #line 2559 "MachineIndependent/glslang.y"
8901                            {
8902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8903         (yyval.interm.type).basicType = EbtSampler;
8904         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
8905     }
8906 #line 8907 "MachineIndependent/glslang_tab.cpp"
8907     break;
8908
8909   case 355: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
8910 #line 2564 "MachineIndependent/glslang.y"
8911                        {
8912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8913         (yyval.interm.type).basicType = EbtSampler;
8914         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
8915     }
8916 #line 8917 "MachineIndependent/glslang_tab.cpp"
8917     break;
8918
8919   case 356: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
8920 #line 2569 "MachineIndependent/glslang.y"
8921                              {
8922         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8923         (yyval.interm.type).basicType = EbtSampler;
8924         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
8925     }
8926 #line 8927 "MachineIndependent/glslang_tab.cpp"
8927     break;
8928
8929   case 357: /* type_specifier_nonarray: F16SAMPLER1D  */
8930 #line 2574 "MachineIndependent/glslang.y"
8931                    {
8932         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8933         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8934         (yyval.interm.type).basicType = EbtSampler;
8935         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
8936     }
8937 #line 8938 "MachineIndependent/glslang_tab.cpp"
8938     break;
8939
8940   case 358: /* type_specifier_nonarray: F16SAMPLER2D  */
8941 #line 2580 "MachineIndependent/glslang.y"
8942                    {
8943         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8944         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8945         (yyval.interm.type).basicType = EbtSampler;
8946         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
8947     }
8948 #line 8949 "MachineIndependent/glslang_tab.cpp"
8949     break;
8950
8951   case 359: /* type_specifier_nonarray: F16SAMPLER3D  */
8952 #line 2586 "MachineIndependent/glslang.y"
8953                    {
8954         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8955         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8956         (yyval.interm.type).basicType = EbtSampler;
8957         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
8958     }
8959 #line 8960 "MachineIndependent/glslang_tab.cpp"
8960     break;
8961
8962   case 360: /* type_specifier_nonarray: F16SAMPLERCUBE  */
8963 #line 2592 "MachineIndependent/glslang.y"
8964                      {
8965         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8966         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8967         (yyval.interm.type).basicType = EbtSampler;
8968         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
8969     }
8970 #line 8971 "MachineIndependent/glslang_tab.cpp"
8971     break;
8972
8973   case 361: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
8974 #line 2598 "MachineIndependent/glslang.y"
8975                          {
8976         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8977         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8978         (yyval.interm.type).basicType = EbtSampler;
8979         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
8980     }
8981 #line 8982 "MachineIndependent/glslang_tab.cpp"
8982     break;
8983
8984   case 362: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
8985 #line 2604 "MachineIndependent/glslang.y"
8986                          {
8987         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8988         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8989         (yyval.interm.type).basicType = EbtSampler;
8990         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
8991     }
8992 #line 8993 "MachineIndependent/glslang_tab.cpp"
8993     break;
8994
8995   case 363: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
8996 #line 2610 "MachineIndependent/glslang.y"
8997                            {
8998         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8999         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000         (yyval.interm.type).basicType = EbtSampler;
9001         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
9002     }
9003 #line 9004 "MachineIndependent/glslang_tab.cpp"
9004     break;
9005
9006   case 364: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
9007 #line 2616 "MachineIndependent/glslang.y"
9008                         {
9009         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9010         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9011         (yyval.interm.type).basicType = EbtSampler;
9012         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
9013     }
9014 #line 9015 "MachineIndependent/glslang_tab.cpp"
9015     break;
9016
9017   case 365: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
9018 #line 2622 "MachineIndependent/glslang.y"
9019                         {
9020         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9022         (yyval.interm.type).basicType = EbtSampler;
9023         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
9024     }
9025 #line 9026 "MachineIndependent/glslang_tab.cpp"
9026     break;
9027
9028   case 366: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
9029 #line 2628 "MachineIndependent/glslang.y"
9030                               {
9031         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9032         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9033         (yyval.interm.type).basicType = EbtSampler;
9034         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
9035     }
9036 #line 9037 "MachineIndependent/glslang_tab.cpp"
9037     break;
9038
9039   case 367: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
9040 #line 2634 "MachineIndependent/glslang.y"
9041                               {
9042         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9043         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9044         (yyval.interm.type).basicType = EbtSampler;
9045         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
9046     }
9047 #line 9048 "MachineIndependent/glslang_tab.cpp"
9048     break;
9049
9050   case 368: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
9051 #line 2640 "MachineIndependent/glslang.y"
9052                           {
9053         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9054         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9055         (yyval.interm.type).basicType = EbtSampler;
9056         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
9057     }
9058 #line 9059 "MachineIndependent/glslang_tab.cpp"
9059     break;
9060
9061   case 369: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
9062 #line 2646 "MachineIndependent/glslang.y"
9063                                 {
9064         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9065         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9066         (yyval.interm.type).basicType = EbtSampler;
9067         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
9068     }
9069 #line 9070 "MachineIndependent/glslang_tab.cpp"
9070     break;
9071
9072   case 370: /* type_specifier_nonarray: ISAMPLER1D  */
9073 #line 2652 "MachineIndependent/glslang.y"
9074                  {
9075         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9076         (yyval.interm.type).basicType = EbtSampler;
9077         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
9078     }
9079 #line 9080 "MachineIndependent/glslang_tab.cpp"
9080     break;
9081
9082   case 371: /* type_specifier_nonarray: ISAMPLER2D  */
9083 #line 2658 "MachineIndependent/glslang.y"
9084                  {
9085         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9086         (yyval.interm.type).basicType = EbtSampler;
9087         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
9088     }
9089 #line 9090 "MachineIndependent/glslang_tab.cpp"
9090     break;
9091
9092   case 372: /* type_specifier_nonarray: ISAMPLER3D  */
9093 #line 2663 "MachineIndependent/glslang.y"
9094                  {
9095         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9096         (yyval.interm.type).basicType = EbtSampler;
9097         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
9098     }
9099 #line 9100 "MachineIndependent/glslang_tab.cpp"
9100     break;
9101
9102   case 373: /* type_specifier_nonarray: ISAMPLERCUBE  */
9103 #line 2668 "MachineIndependent/glslang.y"
9104                    {
9105         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9106         (yyval.interm.type).basicType = EbtSampler;
9107         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
9108     }
9109 #line 9110 "MachineIndependent/glslang_tab.cpp"
9110     break;
9111
9112   case 374: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
9113 #line 2673 "MachineIndependent/glslang.y"
9114                       {
9115         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9116         (yyval.interm.type).basicType = EbtSampler;
9117         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
9118     }
9119 #line 9120 "MachineIndependent/glslang_tab.cpp"
9120     break;
9121
9122   case 375: /* type_specifier_nonarray: USAMPLER2D  */
9123 #line 2678 "MachineIndependent/glslang.y"
9124                  {
9125         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9126         (yyval.interm.type).basicType = EbtSampler;
9127         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
9128     }
9129 #line 9130 "MachineIndependent/glslang_tab.cpp"
9130     break;
9131
9132   case 376: /* type_specifier_nonarray: USAMPLER3D  */
9133 #line 2683 "MachineIndependent/glslang.y"
9134                  {
9135         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9136         (yyval.interm.type).basicType = EbtSampler;
9137         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
9138     }
9139 #line 9140 "MachineIndependent/glslang_tab.cpp"
9140     break;
9141
9142   case 377: /* type_specifier_nonarray: USAMPLERCUBE  */
9143 #line 2688 "MachineIndependent/glslang.y"
9144                    {
9145         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9146         (yyval.interm.type).basicType = EbtSampler;
9147         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
9148     }
9149 #line 9150 "MachineIndependent/glslang_tab.cpp"
9150     break;
9151
9152   case 378: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
9153 #line 2694 "MachineIndependent/glslang.y"
9154                       {
9155         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9156         (yyval.interm.type).basicType = EbtSampler;
9157         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
9158     }
9159 #line 9160 "MachineIndependent/glslang_tab.cpp"
9160     break;
9161
9162   case 379: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
9163 #line 2699 "MachineIndependent/glslang.y"
9164                         {
9165         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9166         (yyval.interm.type).basicType = EbtSampler;
9167         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
9168     }
9169 #line 9170 "MachineIndependent/glslang_tab.cpp"
9170     break;
9171
9172   case 380: /* type_specifier_nonarray: USAMPLER1D  */
9173 #line 2704 "MachineIndependent/glslang.y"
9174                  {
9175         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9176         (yyval.interm.type).basicType = EbtSampler;
9177         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
9178     }
9179 #line 9180 "MachineIndependent/glslang_tab.cpp"
9180     break;
9181
9182   case 381: /* type_specifier_nonarray: USAMPLER1DARRAY  */
9183 #line 2709 "MachineIndependent/glslang.y"
9184                       {
9185         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9186         (yyval.interm.type).basicType = EbtSampler;
9187         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
9188     }
9189 #line 9190 "MachineIndependent/glslang_tab.cpp"
9190     break;
9191
9192   case 382: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
9193 #line 2714 "MachineIndependent/glslang.y"
9194                         {
9195         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9196         (yyval.interm.type).basicType = EbtSampler;
9197         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
9198     }
9199 #line 9200 "MachineIndependent/glslang_tab.cpp"
9200     break;
9201
9202   case 383: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
9203 #line 2719 "MachineIndependent/glslang.y"
9204                        {
9205         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9206         (yyval.interm.type).basicType = EbtSampler;
9207         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
9208     }
9209 #line 9210 "MachineIndependent/glslang_tab.cpp"
9210     break;
9211
9212   case 384: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
9213 #line 2724 "MachineIndependent/glslang.y"
9214                         {
9215         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9216         (yyval.interm.type).basicType = EbtSampler;
9217         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
9218     }
9219 #line 9220 "MachineIndependent/glslang_tab.cpp"
9220     break;
9221
9222   case 385: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
9223 #line 2729 "MachineIndependent/glslang.y"
9224                         {
9225         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9226         (yyval.interm.type).basicType = EbtSampler;
9227         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
9228     }
9229 #line 9230 "MachineIndependent/glslang_tab.cpp"
9230     break;
9231
9232   case 386: /* type_specifier_nonarray: USAMPLER2DARRAY  */
9233 #line 2735 "MachineIndependent/glslang.y"
9234                       {
9235         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9236         (yyval.interm.type).basicType = EbtSampler;
9237         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
9238     }
9239 #line 9240 "MachineIndependent/glslang_tab.cpp"
9240     break;
9241
9242   case 387: /* type_specifier_nonarray: TEXTURE2D  */
9243 #line 2740 "MachineIndependent/glslang.y"
9244                 {
9245         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9246         (yyval.interm.type).basicType = EbtSampler;
9247         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
9248     }
9249 #line 9250 "MachineIndependent/glslang_tab.cpp"
9250     break;
9251
9252   case 388: /* type_specifier_nonarray: TEXTURE3D  */
9253 #line 2745 "MachineIndependent/glslang.y"
9254                 {
9255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9256         (yyval.interm.type).basicType = EbtSampler;
9257         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
9258     }
9259 #line 9260 "MachineIndependent/glslang_tab.cpp"
9260     break;
9261
9262   case 389: /* type_specifier_nonarray: TEXTURE2DARRAY  */
9263 #line 2750 "MachineIndependent/glslang.y"
9264                      {
9265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266         (yyval.interm.type).basicType = EbtSampler;
9267         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
9268     }
9269 #line 9270 "MachineIndependent/glslang_tab.cpp"
9270     break;
9271
9272   case 390: /* type_specifier_nonarray: TEXTURECUBE  */
9273 #line 2755 "MachineIndependent/glslang.y"
9274                   {
9275         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9276         (yyval.interm.type).basicType = EbtSampler;
9277         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
9278     }
9279 #line 9280 "MachineIndependent/glslang_tab.cpp"
9280     break;
9281
9282   case 391: /* type_specifier_nonarray: ITEXTURE2D  */
9283 #line 2760 "MachineIndependent/glslang.y"
9284                  {
9285         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9286         (yyval.interm.type).basicType = EbtSampler;
9287         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
9288     }
9289 #line 9290 "MachineIndependent/glslang_tab.cpp"
9290     break;
9291
9292   case 392: /* type_specifier_nonarray: ITEXTURE3D  */
9293 #line 2765 "MachineIndependent/glslang.y"
9294                  {
9295         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9296         (yyval.interm.type).basicType = EbtSampler;
9297         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
9298     }
9299 #line 9300 "MachineIndependent/glslang_tab.cpp"
9300     break;
9301
9302   case 393: /* type_specifier_nonarray: ITEXTURECUBE  */
9303 #line 2770 "MachineIndependent/glslang.y"
9304                    {
9305         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9306         (yyval.interm.type).basicType = EbtSampler;
9307         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
9308     }
9309 #line 9310 "MachineIndependent/glslang_tab.cpp"
9310     break;
9311
9312   case 394: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
9313 #line 2775 "MachineIndependent/glslang.y"
9314                       {
9315         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9316         (yyval.interm.type).basicType = EbtSampler;
9317         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
9318     }
9319 #line 9320 "MachineIndependent/glslang_tab.cpp"
9320     break;
9321
9322   case 395: /* type_specifier_nonarray: UTEXTURE2D  */
9323 #line 2780 "MachineIndependent/glslang.y"
9324                  {
9325         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9326         (yyval.interm.type).basicType = EbtSampler;
9327         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
9328     }
9329 #line 9330 "MachineIndependent/glslang_tab.cpp"
9330     break;
9331
9332   case 396: /* type_specifier_nonarray: UTEXTURE3D  */
9333 #line 2785 "MachineIndependent/glslang.y"
9334                  {
9335         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9336         (yyval.interm.type).basicType = EbtSampler;
9337         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
9338     }
9339 #line 9340 "MachineIndependent/glslang_tab.cpp"
9340     break;
9341
9342   case 397: /* type_specifier_nonarray: UTEXTURECUBE  */
9343 #line 2790 "MachineIndependent/glslang.y"
9344                    {
9345         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9346         (yyval.interm.type).basicType = EbtSampler;
9347         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
9348     }
9349 #line 9350 "MachineIndependent/glslang_tab.cpp"
9350     break;
9351
9352   case 398: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
9353 #line 2795 "MachineIndependent/glslang.y"
9354                       {
9355         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9356         (yyval.interm.type).basicType = EbtSampler;
9357         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
9358     }
9359 #line 9360 "MachineIndependent/glslang_tab.cpp"
9360     break;
9361
9362   case 399: /* type_specifier_nonarray: SAMPLER  */
9363 #line 2800 "MachineIndependent/glslang.y"
9364               {
9365         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9366         (yyval.interm.type).basicType = EbtSampler;
9367         (yyval.interm.type).sampler.setPureSampler(false);
9368     }
9369 #line 9370 "MachineIndependent/glslang_tab.cpp"
9370     break;
9371
9372   case 400: /* type_specifier_nonarray: SAMPLERSHADOW  */
9373 #line 2805 "MachineIndependent/glslang.y"
9374                     {
9375         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9376         (yyval.interm.type).basicType = EbtSampler;
9377         (yyval.interm.type).sampler.setPureSampler(true);
9378     }
9379 #line 9380 "MachineIndependent/glslang_tab.cpp"
9380     break;
9381
9382   case 401: /* type_specifier_nonarray: SAMPLER2DRECT  */
9383 #line 2811 "MachineIndependent/glslang.y"
9384                     {
9385         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9386         (yyval.interm.type).basicType = EbtSampler;
9387         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
9388     }
9389 #line 9390 "MachineIndependent/glslang_tab.cpp"
9390     break;
9391
9392   case 402: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
9393 #line 2816 "MachineIndependent/glslang.y"
9394                           {
9395         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9396         (yyval.interm.type).basicType = EbtSampler;
9397         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
9398     }
9399 #line 9400 "MachineIndependent/glslang_tab.cpp"
9400     break;
9401
9402   case 403: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
9403 #line 2821 "MachineIndependent/glslang.y"
9404                        {
9405         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9406         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9407         (yyval.interm.type).basicType = EbtSampler;
9408         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
9409     }
9410 #line 9411 "MachineIndependent/glslang_tab.cpp"
9411     break;
9412
9413   case 404: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
9414 #line 2827 "MachineIndependent/glslang.y"
9415                              {
9416         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9417         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9418         (yyval.interm.type).basicType = EbtSampler;
9419         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
9420     }
9421 #line 9422 "MachineIndependent/glslang_tab.cpp"
9422     break;
9423
9424   case 405: /* type_specifier_nonarray: ISAMPLER2DRECT  */
9425 #line 2833 "MachineIndependent/glslang.y"
9426                      {
9427         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9428         (yyval.interm.type).basicType = EbtSampler;
9429         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
9430     }
9431 #line 9432 "MachineIndependent/glslang_tab.cpp"
9432     break;
9433
9434   case 406: /* type_specifier_nonarray: USAMPLER2DRECT  */
9435 #line 2838 "MachineIndependent/glslang.y"
9436                      {
9437         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9438         (yyval.interm.type).basicType = EbtSampler;
9439         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
9440     }
9441 #line 9442 "MachineIndependent/glslang_tab.cpp"
9442     break;
9443
9444   case 407: /* type_specifier_nonarray: SAMPLERBUFFER  */
9445 #line 2843 "MachineIndependent/glslang.y"
9446                     {
9447         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9448         (yyval.interm.type).basicType = EbtSampler;
9449         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
9450     }
9451 #line 9452 "MachineIndependent/glslang_tab.cpp"
9452     break;
9453
9454   case 408: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
9455 #line 2848 "MachineIndependent/glslang.y"
9456                        {
9457         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9459         (yyval.interm.type).basicType = EbtSampler;
9460         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
9461     }
9462 #line 9463 "MachineIndependent/glslang_tab.cpp"
9463     break;
9464
9465   case 409: /* type_specifier_nonarray: ISAMPLERBUFFER  */
9466 #line 2854 "MachineIndependent/glslang.y"
9467                      {
9468         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9469         (yyval.interm.type).basicType = EbtSampler;
9470         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
9471     }
9472 #line 9473 "MachineIndependent/glslang_tab.cpp"
9473     break;
9474
9475   case 410: /* type_specifier_nonarray: USAMPLERBUFFER  */
9476 #line 2859 "MachineIndependent/glslang.y"
9477                      {
9478         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9479         (yyval.interm.type).basicType = EbtSampler;
9480         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
9481     }
9482 #line 9483 "MachineIndependent/glslang_tab.cpp"
9483     break;
9484
9485   case 411: /* type_specifier_nonarray: SAMPLER2DMS  */
9486 #line 2864 "MachineIndependent/glslang.y"
9487                   {
9488         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9489         (yyval.interm.type).basicType = EbtSampler;
9490         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
9491     }
9492 #line 9493 "MachineIndependent/glslang_tab.cpp"
9493     break;
9494
9495   case 412: /* type_specifier_nonarray: F16SAMPLER2DMS  */
9496 #line 2869 "MachineIndependent/glslang.y"
9497                      {
9498         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9499         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9500         (yyval.interm.type).basicType = EbtSampler;
9501         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
9502     }
9503 #line 9504 "MachineIndependent/glslang_tab.cpp"
9504     break;
9505
9506   case 413: /* type_specifier_nonarray: ISAMPLER2DMS  */
9507 #line 2875 "MachineIndependent/glslang.y"
9508                    {
9509         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9510         (yyval.interm.type).basicType = EbtSampler;
9511         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
9512     }
9513 #line 9514 "MachineIndependent/glslang_tab.cpp"
9514     break;
9515
9516   case 414: /* type_specifier_nonarray: USAMPLER2DMS  */
9517 #line 2880 "MachineIndependent/glslang.y"
9518                    {
9519         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9520         (yyval.interm.type).basicType = EbtSampler;
9521         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
9522     }
9523 #line 9524 "MachineIndependent/glslang_tab.cpp"
9524     break;
9525
9526   case 415: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
9527 #line 2885 "MachineIndependent/glslang.y"
9528                        {
9529         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9530         (yyval.interm.type).basicType = EbtSampler;
9531         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
9532     }
9533 #line 9534 "MachineIndependent/glslang_tab.cpp"
9534     break;
9535
9536   case 416: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
9537 #line 2890 "MachineIndependent/glslang.y"
9538                           {
9539         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
9540         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9541         (yyval.interm.type).basicType = EbtSampler;
9542         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
9543     }
9544 #line 9545 "MachineIndependent/glslang_tab.cpp"
9545     break;
9546
9547   case 417: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
9548 #line 2896 "MachineIndependent/glslang.y"
9549                         {
9550         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9551         (yyval.interm.type).basicType = EbtSampler;
9552         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
9553     }
9554 #line 9555 "MachineIndependent/glslang_tab.cpp"
9555     break;
9556
9557   case 418: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
9558 #line 2901 "MachineIndependent/glslang.y"
9559                         {
9560         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9561         (yyval.interm.type).basicType = EbtSampler;
9562         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
9563     }
9564 #line 9565 "MachineIndependent/glslang_tab.cpp"
9565     break;
9566
9567   case 419: /* type_specifier_nonarray: TEXTURE1D  */
9568 #line 2906 "MachineIndependent/glslang.y"
9569                 {
9570         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9571         (yyval.interm.type).basicType = EbtSampler;
9572         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
9573     }
9574 #line 9575 "MachineIndependent/glslang_tab.cpp"
9575     break;
9576
9577   case 420: /* type_specifier_nonarray: F16TEXTURE1D  */
9578 #line 2911 "MachineIndependent/glslang.y"
9579                    {
9580         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9582         (yyval.interm.type).basicType = EbtSampler;
9583         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
9584     }
9585 #line 9586 "MachineIndependent/glslang_tab.cpp"
9586     break;
9587
9588   case 421: /* type_specifier_nonarray: F16TEXTURE2D  */
9589 #line 2917 "MachineIndependent/glslang.y"
9590                    {
9591         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9592         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9593         (yyval.interm.type).basicType = EbtSampler;
9594         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
9595     }
9596 #line 9597 "MachineIndependent/glslang_tab.cpp"
9597     break;
9598
9599   case 422: /* type_specifier_nonarray: F16TEXTURE3D  */
9600 #line 2923 "MachineIndependent/glslang.y"
9601                    {
9602         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9603         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9604         (yyval.interm.type).basicType = EbtSampler;
9605         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
9606     }
9607 #line 9608 "MachineIndependent/glslang_tab.cpp"
9608     break;
9609
9610   case 423: /* type_specifier_nonarray: F16TEXTURECUBE  */
9611 #line 2929 "MachineIndependent/glslang.y"
9612                      {
9613         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9614         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9615         (yyval.interm.type).basicType = EbtSampler;
9616         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
9617     }
9618 #line 9619 "MachineIndependent/glslang_tab.cpp"
9619     break;
9620
9621   case 424: /* type_specifier_nonarray: TEXTURE1DARRAY  */
9622 #line 2935 "MachineIndependent/glslang.y"
9623                      {
9624         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9625         (yyval.interm.type).basicType = EbtSampler;
9626         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
9627     }
9628 #line 9629 "MachineIndependent/glslang_tab.cpp"
9629     break;
9630
9631   case 425: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
9632 #line 2940 "MachineIndependent/glslang.y"
9633                         {
9634         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9635         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9636         (yyval.interm.type).basicType = EbtSampler;
9637         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
9638     }
9639 #line 9640 "MachineIndependent/glslang_tab.cpp"
9640     break;
9641
9642   case 426: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
9643 #line 2946 "MachineIndependent/glslang.y"
9644                         {
9645         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9646         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9647         (yyval.interm.type).basicType = EbtSampler;
9648         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
9649     }
9650 #line 9651 "MachineIndependent/glslang_tab.cpp"
9651     break;
9652
9653   case 427: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
9654 #line 2952 "MachineIndependent/glslang.y"
9655                           {
9656         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9657         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9658         (yyval.interm.type).basicType = EbtSampler;
9659         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
9660     }
9661 #line 9662 "MachineIndependent/glslang_tab.cpp"
9662     break;
9663
9664   case 428: /* type_specifier_nonarray: ITEXTURE1D  */
9665 #line 2958 "MachineIndependent/glslang.y"
9666                  {
9667         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9668         (yyval.interm.type).basicType = EbtSampler;
9669         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
9670     }
9671 #line 9672 "MachineIndependent/glslang_tab.cpp"
9672     break;
9673
9674   case 429: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
9675 #line 2963 "MachineIndependent/glslang.y"
9676                       {
9677         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9678         (yyval.interm.type).basicType = EbtSampler;
9679         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
9680     }
9681 #line 9682 "MachineIndependent/glslang_tab.cpp"
9682     break;
9683
9684   case 430: /* type_specifier_nonarray: UTEXTURE1D  */
9685 #line 2968 "MachineIndependent/glslang.y"
9686                  {
9687         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9688         (yyval.interm.type).basicType = EbtSampler;
9689         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
9690     }
9691 #line 9692 "MachineIndependent/glslang_tab.cpp"
9692     break;
9693
9694   case 431: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
9695 #line 2973 "MachineIndependent/glslang.y"
9696                       {
9697         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9698         (yyval.interm.type).basicType = EbtSampler;
9699         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
9700     }
9701 #line 9702 "MachineIndependent/glslang_tab.cpp"
9702     break;
9703
9704   case 432: /* type_specifier_nonarray: TEXTURE2DRECT  */
9705 #line 2978 "MachineIndependent/glslang.y"
9706                     {
9707         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9708         (yyval.interm.type).basicType = EbtSampler;
9709         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
9710     }
9711 #line 9712 "MachineIndependent/glslang_tab.cpp"
9712     break;
9713
9714   case 433: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
9715 #line 2983 "MachineIndependent/glslang.y"
9716                        {
9717         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9718         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9719         (yyval.interm.type).basicType = EbtSampler;
9720         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
9721     }
9722 #line 9723 "MachineIndependent/glslang_tab.cpp"
9723     break;
9724
9725   case 434: /* type_specifier_nonarray: ITEXTURE2DRECT  */
9726 #line 2989 "MachineIndependent/glslang.y"
9727                      {
9728         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9729         (yyval.interm.type).basicType = EbtSampler;
9730         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
9731     }
9732 #line 9733 "MachineIndependent/glslang_tab.cpp"
9733     break;
9734
9735   case 435: /* type_specifier_nonarray: UTEXTURE2DRECT  */
9736 #line 2994 "MachineIndependent/glslang.y"
9737                      {
9738         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9739         (yyval.interm.type).basicType = EbtSampler;
9740         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
9741     }
9742 #line 9743 "MachineIndependent/glslang_tab.cpp"
9743     break;
9744
9745   case 436: /* type_specifier_nonarray: TEXTUREBUFFER  */
9746 #line 2999 "MachineIndependent/glslang.y"
9747                     {
9748         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9749         (yyval.interm.type).basicType = EbtSampler;
9750         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
9751     }
9752 #line 9753 "MachineIndependent/glslang_tab.cpp"
9753     break;
9754
9755   case 437: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
9756 #line 3004 "MachineIndependent/glslang.y"
9757                        {
9758         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9759         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9760         (yyval.interm.type).basicType = EbtSampler;
9761         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
9762     }
9763 #line 9764 "MachineIndependent/glslang_tab.cpp"
9764     break;
9765
9766   case 438: /* type_specifier_nonarray: ITEXTUREBUFFER  */
9767 #line 3010 "MachineIndependent/glslang.y"
9768                      {
9769         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9770         (yyval.interm.type).basicType = EbtSampler;
9771         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
9772     }
9773 #line 9774 "MachineIndependent/glslang_tab.cpp"
9774     break;
9775
9776   case 439: /* type_specifier_nonarray: UTEXTUREBUFFER  */
9777 #line 3015 "MachineIndependent/glslang.y"
9778                      {
9779         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9780         (yyval.interm.type).basicType = EbtSampler;
9781         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
9782     }
9783 #line 9784 "MachineIndependent/glslang_tab.cpp"
9784     break;
9785
9786   case 440: /* type_specifier_nonarray: TEXTURE2DMS  */
9787 #line 3020 "MachineIndependent/glslang.y"
9788                   {
9789         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9790         (yyval.interm.type).basicType = EbtSampler;
9791         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
9792     }
9793 #line 9794 "MachineIndependent/glslang_tab.cpp"
9794     break;
9795
9796   case 441: /* type_specifier_nonarray: F16TEXTURE2DMS  */
9797 #line 3025 "MachineIndependent/glslang.y"
9798                      {
9799         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9800         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9801         (yyval.interm.type).basicType = EbtSampler;
9802         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
9803     }
9804 #line 9805 "MachineIndependent/glslang_tab.cpp"
9805     break;
9806
9807   case 442: /* type_specifier_nonarray: ITEXTURE2DMS  */
9808 #line 3031 "MachineIndependent/glslang.y"
9809                    {
9810         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9811         (yyval.interm.type).basicType = EbtSampler;
9812         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
9813     }
9814 #line 9815 "MachineIndependent/glslang_tab.cpp"
9815     break;
9816
9817   case 443: /* type_specifier_nonarray: UTEXTURE2DMS  */
9818 #line 3036 "MachineIndependent/glslang.y"
9819                    {
9820         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9821         (yyval.interm.type).basicType = EbtSampler;
9822         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
9823     }
9824 #line 9825 "MachineIndependent/glslang_tab.cpp"
9825     break;
9826
9827   case 444: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
9828 #line 3041 "MachineIndependent/glslang.y"
9829                        {
9830         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9831         (yyval.interm.type).basicType = EbtSampler;
9832         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
9833     }
9834 #line 9835 "MachineIndependent/glslang_tab.cpp"
9835     break;
9836
9837   case 445: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
9838 #line 3046 "MachineIndependent/glslang.y"
9839                           {
9840         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9841         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9842         (yyval.interm.type).basicType = EbtSampler;
9843         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
9844     }
9845 #line 9846 "MachineIndependent/glslang_tab.cpp"
9846     break;
9847
9848   case 446: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
9849 #line 3052 "MachineIndependent/glslang.y"
9850                         {
9851         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9852         (yyval.interm.type).basicType = EbtSampler;
9853         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
9854     }
9855 #line 9856 "MachineIndependent/glslang_tab.cpp"
9856     break;
9857
9858   case 447: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
9859 #line 3057 "MachineIndependent/glslang.y"
9860                         {
9861         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9862         (yyval.interm.type).basicType = EbtSampler;
9863         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
9864     }
9865 #line 9866 "MachineIndependent/glslang_tab.cpp"
9866     break;
9867
9868   case 448: /* type_specifier_nonarray: IMAGE1D  */
9869 #line 3062 "MachineIndependent/glslang.y"
9870               {
9871         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9872         (yyval.interm.type).basicType = EbtSampler;
9873         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
9874     }
9875 #line 9876 "MachineIndependent/glslang_tab.cpp"
9876     break;
9877
9878   case 449: /* type_specifier_nonarray: F16IMAGE1D  */
9879 #line 3067 "MachineIndependent/glslang.y"
9880                  {
9881         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9882         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9883         (yyval.interm.type).basicType = EbtSampler;
9884         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
9885     }
9886 #line 9887 "MachineIndependent/glslang_tab.cpp"
9887     break;
9888
9889   case 450: /* type_specifier_nonarray: IIMAGE1D  */
9890 #line 3073 "MachineIndependent/glslang.y"
9891                {
9892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9893         (yyval.interm.type).basicType = EbtSampler;
9894         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
9895     }
9896 #line 9897 "MachineIndependent/glslang_tab.cpp"
9897     break;
9898
9899   case 451: /* type_specifier_nonarray: UIMAGE1D  */
9900 #line 3078 "MachineIndependent/glslang.y"
9901                {
9902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9903         (yyval.interm.type).basicType = EbtSampler;
9904         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
9905     }
9906 #line 9907 "MachineIndependent/glslang_tab.cpp"
9907     break;
9908
9909   case 452: /* type_specifier_nonarray: IMAGE2D  */
9910 #line 3083 "MachineIndependent/glslang.y"
9911               {
9912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9913         (yyval.interm.type).basicType = EbtSampler;
9914         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
9915     }
9916 #line 9917 "MachineIndependent/glslang_tab.cpp"
9917     break;
9918
9919   case 453: /* type_specifier_nonarray: F16IMAGE2D  */
9920 #line 3088 "MachineIndependent/glslang.y"
9921                  {
9922         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9923         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9924         (yyval.interm.type).basicType = EbtSampler;
9925         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
9926     }
9927 #line 9928 "MachineIndependent/glslang_tab.cpp"
9928     break;
9929
9930   case 454: /* type_specifier_nonarray: IIMAGE2D  */
9931 #line 3094 "MachineIndependent/glslang.y"
9932                {
9933         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9934         (yyval.interm.type).basicType = EbtSampler;
9935         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
9936     }
9937 #line 9938 "MachineIndependent/glslang_tab.cpp"
9938     break;
9939
9940   case 455: /* type_specifier_nonarray: UIMAGE2D  */
9941 #line 3099 "MachineIndependent/glslang.y"
9942                {
9943         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9944         (yyval.interm.type).basicType = EbtSampler;
9945         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
9946     }
9947 #line 9948 "MachineIndependent/glslang_tab.cpp"
9948     break;
9949
9950   case 456: /* type_specifier_nonarray: IMAGE3D  */
9951 #line 3104 "MachineIndependent/glslang.y"
9952               {
9953         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9954         (yyval.interm.type).basicType = EbtSampler;
9955         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
9956     }
9957 #line 9958 "MachineIndependent/glslang_tab.cpp"
9958     break;
9959
9960   case 457: /* type_specifier_nonarray: F16IMAGE3D  */
9961 #line 3109 "MachineIndependent/glslang.y"
9962                  {
9963         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9964         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9965         (yyval.interm.type).basicType = EbtSampler;
9966         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
9967     }
9968 #line 9969 "MachineIndependent/glslang_tab.cpp"
9969     break;
9970
9971   case 458: /* type_specifier_nonarray: IIMAGE3D  */
9972 #line 3115 "MachineIndependent/glslang.y"
9973                {
9974         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9975         (yyval.interm.type).basicType = EbtSampler;
9976         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
9977     }
9978 #line 9979 "MachineIndependent/glslang_tab.cpp"
9979     break;
9980
9981   case 459: /* type_specifier_nonarray: UIMAGE3D  */
9982 #line 3120 "MachineIndependent/glslang.y"
9983                {
9984         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9985         (yyval.interm.type).basicType = EbtSampler;
9986         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
9987     }
9988 #line 9989 "MachineIndependent/glslang_tab.cpp"
9989     break;
9990
9991   case 460: /* type_specifier_nonarray: IMAGE2DRECT  */
9992 #line 3125 "MachineIndependent/glslang.y"
9993                   {
9994         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9995         (yyval.interm.type).basicType = EbtSampler;
9996         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
9997     }
9998 #line 9999 "MachineIndependent/glslang_tab.cpp"
9999     break;
10000
10001   case 461: /* type_specifier_nonarray: F16IMAGE2DRECT  */
10002 #line 3130 "MachineIndependent/glslang.y"
10003                      {
10004         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10005         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10006         (yyval.interm.type).basicType = EbtSampler;
10007         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
10008     }
10009 #line 10010 "MachineIndependent/glslang_tab.cpp"
10010     break;
10011
10012   case 462: /* type_specifier_nonarray: IIMAGE2DRECT  */
10013 #line 3136 "MachineIndependent/glslang.y"
10014                    {
10015         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10016         (yyval.interm.type).basicType = EbtSampler;
10017         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
10018     }
10019 #line 10020 "MachineIndependent/glslang_tab.cpp"
10020     break;
10021
10022   case 463: /* type_specifier_nonarray: UIMAGE2DRECT  */
10023 #line 3141 "MachineIndependent/glslang.y"
10024                    {
10025         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10026         (yyval.interm.type).basicType = EbtSampler;
10027         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
10028     }
10029 #line 10030 "MachineIndependent/glslang_tab.cpp"
10030     break;
10031
10032   case 464: /* type_specifier_nonarray: IMAGECUBE  */
10033 #line 3146 "MachineIndependent/glslang.y"
10034                 {
10035         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10036         (yyval.interm.type).basicType = EbtSampler;
10037         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
10038     }
10039 #line 10040 "MachineIndependent/glslang_tab.cpp"
10040     break;
10041
10042   case 465: /* type_specifier_nonarray: F16IMAGECUBE  */
10043 #line 3151 "MachineIndependent/glslang.y"
10044                    {
10045         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10046         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10047         (yyval.interm.type).basicType = EbtSampler;
10048         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
10049     }
10050 #line 10051 "MachineIndependent/glslang_tab.cpp"
10051     break;
10052
10053   case 466: /* type_specifier_nonarray: IIMAGECUBE  */
10054 #line 3157 "MachineIndependent/glslang.y"
10055                  {
10056         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10057         (yyval.interm.type).basicType = EbtSampler;
10058         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
10059     }
10060 #line 10061 "MachineIndependent/glslang_tab.cpp"
10061     break;
10062
10063   case 467: /* type_specifier_nonarray: UIMAGECUBE  */
10064 #line 3162 "MachineIndependent/glslang.y"
10065                  {
10066         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10067         (yyval.interm.type).basicType = EbtSampler;
10068         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
10069     }
10070 #line 10071 "MachineIndependent/glslang_tab.cpp"
10071     break;
10072
10073   case 468: /* type_specifier_nonarray: IMAGEBUFFER  */
10074 #line 3167 "MachineIndependent/glslang.y"
10075                   {
10076         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10077         (yyval.interm.type).basicType = EbtSampler;
10078         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
10079     }
10080 #line 10081 "MachineIndependent/glslang_tab.cpp"
10081     break;
10082
10083   case 469: /* type_specifier_nonarray: F16IMAGEBUFFER  */
10084 #line 3172 "MachineIndependent/glslang.y"
10085                      {
10086         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10087         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10088         (yyval.interm.type).basicType = EbtSampler;
10089         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
10090     }
10091 #line 10092 "MachineIndependent/glslang_tab.cpp"
10092     break;
10093
10094   case 470: /* type_specifier_nonarray: IIMAGEBUFFER  */
10095 #line 3178 "MachineIndependent/glslang.y"
10096                    {
10097         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10098         (yyval.interm.type).basicType = EbtSampler;
10099         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
10100     }
10101 #line 10102 "MachineIndependent/glslang_tab.cpp"
10102     break;
10103
10104   case 471: /* type_specifier_nonarray: UIMAGEBUFFER  */
10105 #line 3183 "MachineIndependent/glslang.y"
10106                    {
10107         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10108         (yyval.interm.type).basicType = EbtSampler;
10109         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
10110     }
10111 #line 10112 "MachineIndependent/glslang_tab.cpp"
10112     break;
10113
10114   case 472: /* type_specifier_nonarray: IMAGE1DARRAY  */
10115 #line 3188 "MachineIndependent/glslang.y"
10116                    {
10117         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10118         (yyval.interm.type).basicType = EbtSampler;
10119         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
10120     }
10121 #line 10122 "MachineIndependent/glslang_tab.cpp"
10122     break;
10123
10124   case 473: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
10125 #line 3193 "MachineIndependent/glslang.y"
10126                       {
10127         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10129         (yyval.interm.type).basicType = EbtSampler;
10130         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
10131     }
10132 #line 10133 "MachineIndependent/glslang_tab.cpp"
10133     break;
10134
10135   case 474: /* type_specifier_nonarray: IIMAGE1DARRAY  */
10136 #line 3199 "MachineIndependent/glslang.y"
10137                     {
10138         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10139         (yyval.interm.type).basicType = EbtSampler;
10140         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
10141     }
10142 #line 10143 "MachineIndependent/glslang_tab.cpp"
10143     break;
10144
10145   case 475: /* type_specifier_nonarray: UIMAGE1DARRAY  */
10146 #line 3204 "MachineIndependent/glslang.y"
10147                     {
10148         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10149         (yyval.interm.type).basicType = EbtSampler;
10150         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
10151     }
10152 #line 10153 "MachineIndependent/glslang_tab.cpp"
10153     break;
10154
10155   case 476: /* type_specifier_nonarray: IMAGE2DARRAY  */
10156 #line 3209 "MachineIndependent/glslang.y"
10157                    {
10158         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10159         (yyval.interm.type).basicType = EbtSampler;
10160         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
10161     }
10162 #line 10163 "MachineIndependent/glslang_tab.cpp"
10163     break;
10164
10165   case 477: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
10166 #line 3214 "MachineIndependent/glslang.y"
10167                       {
10168         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10169         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10170         (yyval.interm.type).basicType = EbtSampler;
10171         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
10172     }
10173 #line 10174 "MachineIndependent/glslang_tab.cpp"
10174     break;
10175
10176   case 478: /* type_specifier_nonarray: IIMAGE2DARRAY  */
10177 #line 3220 "MachineIndependent/glslang.y"
10178                     {
10179         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10180         (yyval.interm.type).basicType = EbtSampler;
10181         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
10182     }
10183 #line 10184 "MachineIndependent/glslang_tab.cpp"
10184     break;
10185
10186   case 479: /* type_specifier_nonarray: UIMAGE2DARRAY  */
10187 #line 3225 "MachineIndependent/glslang.y"
10188                     {
10189         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10190         (yyval.interm.type).basicType = EbtSampler;
10191         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
10192     }
10193 #line 10194 "MachineIndependent/glslang_tab.cpp"
10194     break;
10195
10196   case 480: /* type_specifier_nonarray: IMAGECUBEARRAY  */
10197 #line 3230 "MachineIndependent/glslang.y"
10198                      {
10199         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10200         (yyval.interm.type).basicType = EbtSampler;
10201         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
10202     }
10203 #line 10204 "MachineIndependent/glslang_tab.cpp"
10204     break;
10205
10206   case 481: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
10207 #line 3235 "MachineIndependent/glslang.y"
10208                         {
10209         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10210         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10211         (yyval.interm.type).basicType = EbtSampler;
10212         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
10213     }
10214 #line 10215 "MachineIndependent/glslang_tab.cpp"
10215     break;
10216
10217   case 482: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
10218 #line 3241 "MachineIndependent/glslang.y"
10219                       {
10220         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10221         (yyval.interm.type).basicType = EbtSampler;
10222         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
10223     }
10224 #line 10225 "MachineIndependent/glslang_tab.cpp"
10225     break;
10226
10227   case 483: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
10228 #line 3246 "MachineIndependent/glslang.y"
10229                       {
10230         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10231         (yyval.interm.type).basicType = EbtSampler;
10232         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
10233     }
10234 #line 10235 "MachineIndependent/glslang_tab.cpp"
10235     break;
10236
10237   case 484: /* type_specifier_nonarray: IMAGE2DMS  */
10238 #line 3251 "MachineIndependent/glslang.y"
10239                 {
10240         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10241         (yyval.interm.type).basicType = EbtSampler;
10242         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
10243     }
10244 #line 10245 "MachineIndependent/glslang_tab.cpp"
10245     break;
10246
10247   case 485: /* type_specifier_nonarray: F16IMAGE2DMS  */
10248 #line 3256 "MachineIndependent/glslang.y"
10249                    {
10250         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10251         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10252         (yyval.interm.type).basicType = EbtSampler;
10253         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
10254     }
10255 #line 10256 "MachineIndependent/glslang_tab.cpp"
10256     break;
10257
10258   case 486: /* type_specifier_nonarray: IIMAGE2DMS  */
10259 #line 3262 "MachineIndependent/glslang.y"
10260                  {
10261         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10262         (yyval.interm.type).basicType = EbtSampler;
10263         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
10264     }
10265 #line 10266 "MachineIndependent/glslang_tab.cpp"
10266     break;
10267
10268   case 487: /* type_specifier_nonarray: UIMAGE2DMS  */
10269 #line 3267 "MachineIndependent/glslang.y"
10270                  {
10271         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10272         (yyval.interm.type).basicType = EbtSampler;
10273         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
10274     }
10275 #line 10276 "MachineIndependent/glslang_tab.cpp"
10276     break;
10277
10278   case 488: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
10279 #line 3272 "MachineIndependent/glslang.y"
10280                      {
10281         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10282         (yyval.interm.type).basicType = EbtSampler;
10283         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
10284     }
10285 #line 10286 "MachineIndependent/glslang_tab.cpp"
10286     break;
10287
10288   case 489: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
10289 #line 3277 "MachineIndependent/glslang.y"
10290                         {
10291         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
10292         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10293         (yyval.interm.type).basicType = EbtSampler;
10294         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
10295     }
10296 #line 10297 "MachineIndependent/glslang_tab.cpp"
10297     break;
10298
10299   case 490: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
10300 #line 3283 "MachineIndependent/glslang.y"
10301                       {
10302         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10303         (yyval.interm.type).basicType = EbtSampler;
10304         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
10305     }
10306 #line 10307 "MachineIndependent/glslang_tab.cpp"
10307     break;
10308
10309   case 491: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
10310 #line 3288 "MachineIndependent/glslang.y"
10311                       {
10312         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10313         (yyval.interm.type).basicType = EbtSampler;
10314         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
10315     }
10316 #line 10317 "MachineIndependent/glslang_tab.cpp"
10317     break;
10318
10319   case 492: /* type_specifier_nonarray: I64IMAGE1D  */
10320 #line 3293 "MachineIndependent/glslang.y"
10321                  {
10322         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10323         (yyval.interm.type).basicType = EbtSampler;
10324         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
10325     }
10326 #line 10327 "MachineIndependent/glslang_tab.cpp"
10327     break;
10328
10329   case 493: /* type_specifier_nonarray: U64IMAGE1D  */
10330 #line 3298 "MachineIndependent/glslang.y"
10331                  {
10332         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10333         (yyval.interm.type).basicType = EbtSampler;
10334         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
10335     }
10336 #line 10337 "MachineIndependent/glslang_tab.cpp"
10337     break;
10338
10339   case 494: /* type_specifier_nonarray: I64IMAGE2D  */
10340 #line 3303 "MachineIndependent/glslang.y"
10341                  {
10342         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10343         (yyval.interm.type).basicType = EbtSampler;
10344         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
10345     }
10346 #line 10347 "MachineIndependent/glslang_tab.cpp"
10347     break;
10348
10349   case 495: /* type_specifier_nonarray: U64IMAGE2D  */
10350 #line 3308 "MachineIndependent/glslang.y"
10351                  {
10352         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10353         (yyval.interm.type).basicType = EbtSampler;
10354         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
10355     }
10356 #line 10357 "MachineIndependent/glslang_tab.cpp"
10357     break;
10358
10359   case 496: /* type_specifier_nonarray: I64IMAGE3D  */
10360 #line 3313 "MachineIndependent/glslang.y"
10361                  {
10362         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10363         (yyval.interm.type).basicType = EbtSampler;
10364         (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
10365     }
10366 #line 10367 "MachineIndependent/glslang_tab.cpp"
10367     break;
10368
10369   case 497: /* type_specifier_nonarray: U64IMAGE3D  */
10370 #line 3318 "MachineIndependent/glslang.y"
10371                  {
10372         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10373         (yyval.interm.type).basicType = EbtSampler;
10374         (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
10375     }
10376 #line 10377 "MachineIndependent/glslang_tab.cpp"
10377     break;
10378
10379   case 498: /* type_specifier_nonarray: I64IMAGE2DRECT  */
10380 #line 3323 "MachineIndependent/glslang.y"
10381                      {
10382         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10383         (yyval.interm.type).basicType = EbtSampler;
10384         (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
10385     }
10386 #line 10387 "MachineIndependent/glslang_tab.cpp"
10387     break;
10388
10389   case 499: /* type_specifier_nonarray: U64IMAGE2DRECT  */
10390 #line 3328 "MachineIndependent/glslang.y"
10391                      {
10392         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10393         (yyval.interm.type).basicType = EbtSampler;
10394         (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
10395     }
10396 #line 10397 "MachineIndependent/glslang_tab.cpp"
10397     break;
10398
10399   case 500: /* type_specifier_nonarray: I64IMAGECUBE  */
10400 #line 3333 "MachineIndependent/glslang.y"
10401                    {
10402         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10403         (yyval.interm.type).basicType = EbtSampler;
10404         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
10405     }
10406 #line 10407 "MachineIndependent/glslang_tab.cpp"
10407     break;
10408
10409   case 501: /* type_specifier_nonarray: U64IMAGECUBE  */
10410 #line 3338 "MachineIndependent/glslang.y"
10411                    {
10412         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10413         (yyval.interm.type).basicType = EbtSampler;
10414         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
10415     }
10416 #line 10417 "MachineIndependent/glslang_tab.cpp"
10417     break;
10418
10419   case 502: /* type_specifier_nonarray: I64IMAGEBUFFER  */
10420 #line 3343 "MachineIndependent/glslang.y"
10421                      {
10422         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10423         (yyval.interm.type).basicType = EbtSampler;
10424         (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
10425     }
10426 #line 10427 "MachineIndependent/glslang_tab.cpp"
10427     break;
10428
10429   case 503: /* type_specifier_nonarray: U64IMAGEBUFFER  */
10430 #line 3348 "MachineIndependent/glslang.y"
10431                      {
10432         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10433         (yyval.interm.type).basicType = EbtSampler;
10434         (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
10435     }
10436 #line 10437 "MachineIndependent/glslang_tab.cpp"
10437     break;
10438
10439   case 504: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
10440 #line 3353 "MachineIndependent/glslang.y"
10441                       {
10442         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10443         (yyval.interm.type).basicType = EbtSampler;
10444         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
10445     }
10446 #line 10447 "MachineIndependent/glslang_tab.cpp"
10447     break;
10448
10449   case 505: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
10450 #line 3358 "MachineIndependent/glslang.y"
10451                       {
10452         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10453         (yyval.interm.type).basicType = EbtSampler;
10454         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
10455     }
10456 #line 10457 "MachineIndependent/glslang_tab.cpp"
10457     break;
10458
10459   case 506: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
10460 #line 3363 "MachineIndependent/glslang.y"
10461                       {
10462         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10463         (yyval.interm.type).basicType = EbtSampler;
10464         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
10465     }
10466 #line 10467 "MachineIndependent/glslang_tab.cpp"
10467     break;
10468
10469   case 507: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
10470 #line 3368 "MachineIndependent/glslang.y"
10471                       {
10472         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10473         (yyval.interm.type).basicType = EbtSampler;
10474         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
10475     }
10476 #line 10477 "MachineIndependent/glslang_tab.cpp"
10477     break;
10478
10479   case 508: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
10480 #line 3373 "MachineIndependent/glslang.y"
10481                         {
10482         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10483         (yyval.interm.type).basicType = EbtSampler;
10484         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
10485     }
10486 #line 10487 "MachineIndependent/glslang_tab.cpp"
10487     break;
10488
10489   case 509: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
10490 #line 3378 "MachineIndependent/glslang.y"
10491                         {
10492         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10493         (yyval.interm.type).basicType = EbtSampler;
10494         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
10495     }
10496 #line 10497 "MachineIndependent/glslang_tab.cpp"
10497     break;
10498
10499   case 510: /* type_specifier_nonarray: I64IMAGE2DMS  */
10500 #line 3383 "MachineIndependent/glslang.y"
10501                    {
10502         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10503         (yyval.interm.type).basicType = EbtSampler;
10504         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
10505     }
10506 #line 10507 "MachineIndependent/glslang_tab.cpp"
10507     break;
10508
10509   case 511: /* type_specifier_nonarray: U64IMAGE2DMS  */
10510 #line 3388 "MachineIndependent/glslang.y"
10511                    {
10512         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10513         (yyval.interm.type).basicType = EbtSampler;
10514         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
10515     }
10516 #line 10517 "MachineIndependent/glslang_tab.cpp"
10517     break;
10518
10519   case 512: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
10520 #line 3393 "MachineIndependent/glslang.y"
10521                         {
10522         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10523         (yyval.interm.type).basicType = EbtSampler;
10524         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
10525     }
10526 #line 10527 "MachineIndependent/glslang_tab.cpp"
10527     break;
10528
10529   case 513: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
10530 #line 3398 "MachineIndependent/glslang.y"
10531                         {
10532         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10533         (yyval.interm.type).basicType = EbtSampler;
10534         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
10535     }
10536 #line 10537 "MachineIndependent/glslang_tab.cpp"
10537     break;
10538
10539   case 514: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
10540 #line 3403 "MachineIndependent/glslang.y"
10541                          {  // GL_OES_EGL_image_external
10542         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10543         (yyval.interm.type).basicType = EbtSampler;
10544         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10545         (yyval.interm.type).sampler.external = true;
10546     }
10547 #line 10548 "MachineIndependent/glslang_tab.cpp"
10548     break;
10549
10550   case 515: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
10551 #line 3409 "MachineIndependent/glslang.y"
10552                               { // GL_EXT_YUV_target
10553         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10554         (yyval.interm.type).basicType = EbtSampler;
10555         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10556         (yyval.interm.type).sampler.yuv = true;
10557     }
10558 #line 10559 "MachineIndependent/glslang_tab.cpp"
10559     break;
10560
10561   case 516: /* type_specifier_nonarray: SUBPASSINPUT  */
10562 #line 3415 "MachineIndependent/glslang.y"
10563                    {
10564         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10565         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10566         (yyval.interm.type).basicType = EbtSampler;
10567         (yyval.interm.type).sampler.setSubpass(EbtFloat);
10568     }
10569 #line 10570 "MachineIndependent/glslang_tab.cpp"
10570     break;
10571
10572   case 517: /* type_specifier_nonarray: SUBPASSINPUTMS  */
10573 #line 3421 "MachineIndependent/glslang.y"
10574                      {
10575         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10576         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10577         (yyval.interm.type).basicType = EbtSampler;
10578         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
10579     }
10580 #line 10581 "MachineIndependent/glslang_tab.cpp"
10581     break;
10582
10583   case 518: /* type_specifier_nonarray: F16SUBPASSINPUT  */
10584 #line 3427 "MachineIndependent/glslang.y"
10585                       {
10586         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10587         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10588         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10589         (yyval.interm.type).basicType = EbtSampler;
10590         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
10591     }
10592 #line 10593 "MachineIndependent/glslang_tab.cpp"
10593     break;
10594
10595   case 519: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
10596 #line 3434 "MachineIndependent/glslang.y"
10597                         {
10598         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10599         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10600         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10601         (yyval.interm.type).basicType = EbtSampler;
10602         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
10603     }
10604 #line 10605 "MachineIndependent/glslang_tab.cpp"
10605     break;
10606
10607   case 520: /* type_specifier_nonarray: ISUBPASSINPUT  */
10608 #line 3441 "MachineIndependent/glslang.y"
10609                     {
10610         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10611         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10612         (yyval.interm.type).basicType = EbtSampler;
10613         (yyval.interm.type).sampler.setSubpass(EbtInt);
10614     }
10615 #line 10616 "MachineIndependent/glslang_tab.cpp"
10616     break;
10617
10618   case 521: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
10619 #line 3447 "MachineIndependent/glslang.y"
10620                       {
10621         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10622         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10623         (yyval.interm.type).basicType = EbtSampler;
10624         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
10625     }
10626 #line 10627 "MachineIndependent/glslang_tab.cpp"
10627     break;
10628
10629   case 522: /* type_specifier_nonarray: USUBPASSINPUT  */
10630 #line 3453 "MachineIndependent/glslang.y"
10631                     {
10632         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10633         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10634         (yyval.interm.type).basicType = EbtSampler;
10635         (yyval.interm.type).sampler.setSubpass(EbtUint);
10636     }
10637 #line 10638 "MachineIndependent/glslang_tab.cpp"
10638     break;
10639
10640   case 523: /* type_specifier_nonarray: USUBPASSINPUTMS  */
10641 #line 3459 "MachineIndependent/glslang.y"
10642                       {
10643         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10644         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10645         (yyval.interm.type).basicType = EbtSampler;
10646         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
10647     }
10648 #line 10649 "MachineIndependent/glslang_tab.cpp"
10649     break;
10650
10651   case 524: /* type_specifier_nonarray: FCOOPMATNV  */
10652 #line 3465 "MachineIndependent/glslang.y"
10653                  {
10654         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10655         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10656         (yyval.interm.type).basicType = EbtFloat;
10657         (yyval.interm.type).coopmat = true;
10658     }
10659 #line 10660 "MachineIndependent/glslang_tab.cpp"
10660     break;
10661
10662   case 525: /* type_specifier_nonarray: ICOOPMATNV  */
10663 #line 3471 "MachineIndependent/glslang.y"
10664                  {
10665         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10666         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10667         (yyval.interm.type).basicType = EbtInt;
10668         (yyval.interm.type).coopmat = true;
10669     }
10670 #line 10671 "MachineIndependent/glslang_tab.cpp"
10671     break;
10672
10673   case 526: /* type_specifier_nonarray: UCOOPMATNV  */
10674 #line 3477 "MachineIndependent/glslang.y"
10675                  {
10676         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10677         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10678         (yyval.interm.type).basicType = EbtUint;
10679         (yyval.interm.type).coopmat = true;
10680     }
10681 #line 10682 "MachineIndependent/glslang_tab.cpp"
10682     break;
10683
10684   case 527: /* type_specifier_nonarray: spirv_type_specifier  */
10685 #line 3483 "MachineIndependent/glslang.y"
10686                            {
10687         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
10688         (yyval.interm.type) = (yyvsp[0].interm.type);
10689     }
10690 #line 10691 "MachineIndependent/glslang_tab.cpp"
10691     break;
10692
10693   case 528: /* type_specifier_nonarray: struct_specifier  */
10694 #line 3488 "MachineIndependent/glslang.y"
10695                        {
10696         (yyval.interm.type) = (yyvsp[0].interm.type);
10697         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
10698         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
10699     }
10700 #line 10701 "MachineIndependent/glslang_tab.cpp"
10701     break;
10702
10703   case 529: /* type_specifier_nonarray: TYPE_NAME  */
10704 #line 3493 "MachineIndependent/glslang.y"
10705                 {
10706         //
10707         // This is for user defined type names.  The lexical phase looked up the
10708         // type.
10709         //
10710         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
10711             const TType& structure = variable->getType();
10712             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10713             (yyval.interm.type).basicType = EbtStruct;
10714             (yyval.interm.type).userDef = &structure;
10715         } else
10716             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
10717     }
10718 #line 10719 "MachineIndependent/glslang_tab.cpp"
10719     break;
10720
10721   case 530: /* precision_qualifier: HIGH_PRECISION  */
10722 #line 3509 "MachineIndependent/glslang.y"
10723                      {
10724         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
10725         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10726         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
10727     }
10728 #line 10729 "MachineIndependent/glslang_tab.cpp"
10729     break;
10730
10731   case 531: /* precision_qualifier: MEDIUM_PRECISION  */
10732 #line 3514 "MachineIndependent/glslang.y"
10733                        {
10734         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
10735         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10736         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
10737     }
10738 #line 10739 "MachineIndependent/glslang_tab.cpp"
10739     break;
10740
10741   case 532: /* precision_qualifier: LOW_PRECISION  */
10742 #line 3519 "MachineIndependent/glslang.y"
10743                     {
10744         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
10745         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10746         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
10747     }
10748 #line 10749 "MachineIndependent/glslang_tab.cpp"
10749     break;
10750
10751   case 533: /* $@3: %empty  */
10752 #line 3527 "MachineIndependent/glslang.y"
10753                                    { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
10754 #line 10755 "MachineIndependent/glslang_tab.cpp"
10755     break;
10756
10757   case 534: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
10758 #line 3527 "MachineIndependent/glslang.y"
10759                                                                                                                    {
10760         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
10761         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
10762         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
10763         if (! parseContext.symbolTable.insert(*userTypeDef))
10764             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
10765         (yyval.interm.type).init((yyvsp[-5].lex).loc);
10766         (yyval.interm.type).basicType = EbtStruct;
10767         (yyval.interm.type).userDef = structure;
10768         --parseContext.structNestingLevel;
10769     }
10770 #line 10771 "MachineIndependent/glslang_tab.cpp"
10771     break;
10772
10773   case 535: /* $@4: %empty  */
10774 #line 3538 "MachineIndependent/glslang.y"
10775                         { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
10776 #line 10777 "MachineIndependent/glslang_tab.cpp"
10777     break;
10778
10779   case 536: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
10780 #line 3538 "MachineIndependent/glslang.y"
10781                                                                                                         {
10782         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
10783         (yyval.interm.type).init((yyvsp[-4].lex).loc);
10784         (yyval.interm.type).basicType = EbtStruct;
10785         (yyval.interm.type).userDef = structure;
10786         --parseContext.structNestingLevel;
10787     }
10788 #line 10789 "MachineIndependent/glslang_tab.cpp"
10789     break;
10790
10791   case 537: /* struct_declaration_list: struct_declaration  */
10792 #line 3548 "MachineIndependent/glslang.y"
10793                          {
10794         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
10795     }
10796 #line 10797 "MachineIndependent/glslang_tab.cpp"
10797     break;
10798
10799   case 538: /* struct_declaration_list: struct_declaration_list struct_declaration  */
10800 #line 3551 "MachineIndependent/glslang.y"
10801                                                  {
10802         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10803         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
10804             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
10805                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
10806                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
10807             }
10808             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
10809         }
10810     }
10811 #line 10812 "MachineIndependent/glslang_tab.cpp"
10812     break;
10813
10814   case 539: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
10815 #line 3564 "MachineIndependent/glslang.y"
10816                                                       {
10817         if ((yyvsp[-2].interm.type).arraySizes) {
10818             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10819             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10820             if (parseContext.isEsProfile())
10821                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10822         }
10823
10824         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10825
10826         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10827         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10828
10829         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10830             TType type((yyvsp[-2].interm.type));
10831             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10832             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10833             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10834             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10835             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10836         }
10837     }
10838 #line 10839 "MachineIndependent/glslang_tab.cpp"
10839     break;
10840
10841   case 540: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
10842 #line 3586 "MachineIndependent/glslang.y"
10843                                                                      {
10844         if ((yyvsp[-2].interm.type).arraySizes) {
10845             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10846             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10847             if (parseContext.isEsProfile())
10848                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10849         }
10850
10851         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10852
10853         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
10854         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10855         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
10856         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10857
10858         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10859             TType type((yyvsp[-2].interm.type));
10860             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10861             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10862             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10863             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10864             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10865         }
10866     }
10867 #line 10868 "MachineIndependent/glslang_tab.cpp"
10868     break;
10869
10870   case 541: /* struct_declarator_list: struct_declarator  */
10871 #line 3613 "MachineIndependent/glslang.y"
10872                         {
10873         (yyval.interm.typeList) = new TTypeList;
10874         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10875     }
10876 #line 10877 "MachineIndependent/glslang_tab.cpp"
10877     break;
10878
10879   case 542: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
10880 #line 3617 "MachineIndependent/glslang.y"
10881                                                      {
10882         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10883     }
10884 #line 10885 "MachineIndependent/glslang_tab.cpp"
10885     break;
10886
10887   case 543: /* struct_declarator: IDENTIFIER  */
10888 #line 3623 "MachineIndependent/glslang.y"
10889                  {
10890         (yyval.interm.typeLine).type = new TType(EbtVoid);
10891         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
10892         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
10893     }
10894 #line 10895 "MachineIndependent/glslang_tab.cpp"
10895     break;
10896
10897   case 544: /* struct_declarator: IDENTIFIER array_specifier  */
10898 #line 3628 "MachineIndependent/glslang.y"
10899                                  {
10900         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
10901
10902         (yyval.interm.typeLine).type = new TType(EbtVoid);
10903         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
10904         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
10905         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
10906     }
10907 #line 10908 "MachineIndependent/glslang_tab.cpp"
10908     break;
10909
10910   case 545: /* initializer: assignment_expression  */
10911 #line 3639 "MachineIndependent/glslang.y"
10912                             {
10913         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10914     }
10915 #line 10916 "MachineIndependent/glslang_tab.cpp"
10916     break;
10917
10918   case 546: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
10919 #line 3643 "MachineIndependent/glslang.y"
10920                                               {
10921         const char* initFeature = "{ } style initializers";
10922         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
10923         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10924         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
10925     }
10926 #line 10927 "MachineIndependent/glslang_tab.cpp"
10927     break;
10928
10929   case 547: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
10930 #line 3649 "MachineIndependent/glslang.y"
10931                                                     {
10932         const char* initFeature = "{ } style initializers";
10933         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
10934         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10935         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
10936     }
10937 #line 10938 "MachineIndependent/glslang_tab.cpp"
10938     break;
10939
10940   case 548: /* initializer: LEFT_BRACE RIGHT_BRACE  */
10941 #line 3655 "MachineIndependent/glslang.y"
10942                              {
10943         const char* initFeature = "empty { } initializer";
10944         parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10945         parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10946         (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
10947     }
10948 #line 10949 "MachineIndependent/glslang_tab.cpp"
10949     break;
10950
10951   case 549: /* initializer_list: initializer  */
10952 #line 3666 "MachineIndependent/glslang.y"
10953                   {
10954         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
10955     }
10956 #line 10957 "MachineIndependent/glslang_tab.cpp"
10957     break;
10958
10959   case 550: /* initializer_list: initializer_list COMMA initializer  */
10960 #line 3669 "MachineIndependent/glslang.y"
10961                                          {
10962         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
10963     }
10964 #line 10965 "MachineIndependent/glslang_tab.cpp"
10965     break;
10966
10967   case 551: /* declaration_statement: declaration  */
10968 #line 3676 "MachineIndependent/glslang.y"
10969                   { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10970 #line 10971 "MachineIndependent/glslang_tab.cpp"
10971     break;
10972
10973   case 552: /* statement: compound_statement  */
10974 #line 3680 "MachineIndependent/glslang.y"
10975                           { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10976 #line 10977 "MachineIndependent/glslang_tab.cpp"
10977     break;
10978
10979   case 553: /* statement: simple_statement  */
10980 #line 3681 "MachineIndependent/glslang.y"
10981                           { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10982 #line 10983 "MachineIndependent/glslang_tab.cpp"
10983     break;
10984
10985   case 554: /* simple_statement: declaration_statement  */
10986 #line 3687 "MachineIndependent/glslang.y"
10987                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10988 #line 10989 "MachineIndependent/glslang_tab.cpp"
10989     break;
10990
10991   case 555: /* simple_statement: expression_statement  */
10992 #line 3688 "MachineIndependent/glslang.y"
10993                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10994 #line 10995 "MachineIndependent/glslang_tab.cpp"
10995     break;
10996
10997   case 556: /* simple_statement: selection_statement  */
10998 #line 3689 "MachineIndependent/glslang.y"
10999                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11000 #line 11001 "MachineIndependent/glslang_tab.cpp"
11001     break;
11002
11003   case 557: /* simple_statement: switch_statement  */
11004 #line 3690 "MachineIndependent/glslang.y"
11005                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11006 #line 11007 "MachineIndependent/glslang_tab.cpp"
11007     break;
11008
11009   case 558: /* simple_statement: case_label  */
11010 #line 3691 "MachineIndependent/glslang.y"
11011                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11012 #line 11013 "MachineIndependent/glslang_tab.cpp"
11013     break;
11014
11015   case 559: /* simple_statement: iteration_statement  */
11016 #line 3692 "MachineIndependent/glslang.y"
11017                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11018 #line 11019 "MachineIndependent/glslang_tab.cpp"
11019     break;
11020
11021   case 560: /* simple_statement: jump_statement  */
11022 #line 3693 "MachineIndependent/glslang.y"
11023                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11024 #line 11025 "MachineIndependent/glslang_tab.cpp"
11025     break;
11026
11027   case 561: /* simple_statement: demote_statement  */
11028 #line 3695 "MachineIndependent/glslang.y"
11029                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11030 #line 11031 "MachineIndependent/glslang_tab.cpp"
11031     break;
11032
11033   case 562: /* demote_statement: DEMOTE SEMICOLON  */
11034 #line 3701 "MachineIndependent/glslang.y"
11035                        {
11036         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
11037         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
11038         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
11039     }
11040 #line 11041 "MachineIndependent/glslang_tab.cpp"
11041     break;
11042
11043   case 563: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
11044 #line 3710 "MachineIndependent/glslang.y"
11045                              { (yyval.interm.intermNode) = 0; }
11046 #line 11047 "MachineIndependent/glslang_tab.cpp"
11047     break;
11048
11049   case 564: /* $@5: %empty  */
11050 #line 3711 "MachineIndependent/glslang.y"
11051                  {
11052         parseContext.symbolTable.push();
11053         ++parseContext.statementNestingLevel;
11054     }
11055 #line 11056 "MachineIndependent/glslang_tab.cpp"
11056     break;
11057
11058   case 565: /* $@6: %empty  */
11059 #line 3715 "MachineIndependent/glslang.y"
11060                      {
11061         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11062         --parseContext.statementNestingLevel;
11063     }
11064 #line 11065 "MachineIndependent/glslang_tab.cpp"
11065     break;
11066
11067   case 566: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
11068 #line 3719 "MachineIndependent/glslang.y"
11069                   {
11070         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
11071             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11072         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
11073     }
11074 #line 11075 "MachineIndependent/glslang_tab.cpp"
11075     break;
11076
11077   case 567: /* statement_no_new_scope: compound_statement_no_new_scope  */
11078 #line 3727 "MachineIndependent/glslang.y"
11079                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11080 #line 11081 "MachineIndependent/glslang_tab.cpp"
11081     break;
11082
11083   case 568: /* statement_no_new_scope: simple_statement  */
11084 #line 3728 "MachineIndependent/glslang.y"
11085                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
11086 #line 11087 "MachineIndependent/glslang_tab.cpp"
11087     break;
11088
11089   case 569: /* $@7: %empty  */
11090 #line 3732 "MachineIndependent/glslang.y"
11091       {
11092         ++parseContext.controlFlowNestingLevel;
11093     }
11094 #line 11095 "MachineIndependent/glslang_tab.cpp"
11095     break;
11096
11097   case 570: /* statement_scoped: $@7 compound_statement  */
11098 #line 3735 "MachineIndependent/glslang.y"
11099                           {
11100         --parseContext.controlFlowNestingLevel;
11101         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11102     }
11103 #line 11104 "MachineIndependent/glslang_tab.cpp"
11104     break;
11105
11106   case 571: /* $@8: %empty  */
11107 #line 3739 "MachineIndependent/glslang.y"
11108       {
11109         parseContext.symbolTable.push();
11110         ++parseContext.statementNestingLevel;
11111         ++parseContext.controlFlowNestingLevel;
11112     }
11113 #line 11114 "MachineIndependent/glslang_tab.cpp"
11114     break;
11115
11116   case 572: /* statement_scoped: $@8 simple_statement  */
11117 #line 3744 "MachineIndependent/glslang.y"
11118                        {
11119         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11120         --parseContext.statementNestingLevel;
11121         --parseContext.controlFlowNestingLevel;
11122         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11123     }
11124 #line 11125 "MachineIndependent/glslang_tab.cpp"
11125     break;
11126
11127   case 573: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
11128 #line 3753 "MachineIndependent/glslang.y"
11129                              {
11130         (yyval.interm.intermNode) = 0;
11131     }
11132 #line 11133 "MachineIndependent/glslang_tab.cpp"
11133     break;
11134
11135   case 574: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
11136 #line 3756 "MachineIndependent/glslang.y"
11137                                             {
11138         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
11139             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11140         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
11141     }
11142 #line 11143 "MachineIndependent/glslang_tab.cpp"
11143     break;
11144
11145   case 575: /* statement_list: statement  */
11146 #line 3764 "MachineIndependent/glslang.y"
11147                 {
11148         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
11149         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11150                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11151             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
11152             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
11153         }
11154     }
11155 #line 11156 "MachineIndependent/glslang_tab.cpp"
11156     break;
11157
11158   case 576: /* statement_list: statement_list statement  */
11159 #line 3772 "MachineIndependent/glslang.y"
11160                                {
11161         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
11162                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
11163             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
11164             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
11165         } else
11166             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11167     }
11168 #line 11169 "MachineIndependent/glslang_tab.cpp"
11169     break;
11170
11171   case 577: /* expression_statement: SEMICOLON  */
11172 #line 3783 "MachineIndependent/glslang.y"
11173                  { (yyval.interm.intermNode) = 0; }
11174 #line 11175 "MachineIndependent/glslang_tab.cpp"
11175     break;
11176
11177   case 578: /* expression_statement: expression SEMICOLON  */
11178 #line 3784 "MachineIndependent/glslang.y"
11179                             { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
11180 #line 11181 "MachineIndependent/glslang_tab.cpp"
11181     break;
11182
11183   case 579: /* selection_statement: selection_statement_nonattributed  */
11184 #line 3788 "MachineIndependent/glslang.y"
11185                                         {
11186         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11187     }
11188 #line 11189 "MachineIndependent/glslang_tab.cpp"
11189     break;
11190
11191   case 580: /* selection_statement: attribute selection_statement_nonattributed  */
11192 #line 3792 "MachineIndependent/glslang.y"
11193                                                   {
11194         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11195         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11196         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11197     }
11198 #line 11199 "MachineIndependent/glslang_tab.cpp"
11199     break;
11200
11201   case 581: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
11202 #line 3800 "MachineIndependent/glslang.y"
11203                                                                     {
11204         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11205         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
11206     }
11207 #line 11208 "MachineIndependent/glslang_tab.cpp"
11208     break;
11209
11210   case 582: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
11211 #line 3807 "MachineIndependent/glslang.y"
11212                                              {
11213         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
11214         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
11215     }
11216 #line 11217 "MachineIndependent/glslang_tab.cpp"
11217     break;
11218
11219   case 583: /* selection_rest_statement: statement_scoped  */
11220 #line 3811 "MachineIndependent/glslang.y"
11221                        {
11222         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
11223         (yyval.interm.nodePair).node2 = 0;
11224     }
11225 #line 11226 "MachineIndependent/glslang_tab.cpp"
11226     break;
11227
11228   case 584: /* condition: expression  */
11229 #line 3819 "MachineIndependent/glslang.y"
11230                  {
11231         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11232         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
11233     }
11234 #line 11235 "MachineIndependent/glslang_tab.cpp"
11235     break;
11236
11237   case 585: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
11238 #line 3823 "MachineIndependent/glslang.y"
11239                                                         {
11240         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
11241
11242         TType type((yyvsp[-3].interm.type));
11243         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
11244         if (initNode)
11245             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
11246         else
11247             (yyval.interm.intermTypedNode) = 0;
11248     }
11249 #line 11250 "MachineIndependent/glslang_tab.cpp"
11250     break;
11251
11252   case 586: /* switch_statement: switch_statement_nonattributed  */
11253 #line 3836 "MachineIndependent/glslang.y"
11254                                      {
11255         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11256     }
11257 #line 11258 "MachineIndependent/glslang_tab.cpp"
11258     break;
11259
11260   case 587: /* switch_statement: attribute switch_statement_nonattributed  */
11261 #line 3840 "MachineIndependent/glslang.y"
11262                                                {
11263         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11264         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11265         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11266     }
11267 #line 11268 "MachineIndependent/glslang_tab.cpp"
11268     break;
11269
11270   case 588: /* $@9: %empty  */
11271 #line 3848 "MachineIndependent/glslang.y"
11272                                                {
11273         // start new switch sequence on the switch stack
11274         ++parseContext.controlFlowNestingLevel;
11275         ++parseContext.statementNestingLevel;
11276         parseContext.switchSequenceStack.push_back(new TIntermSequence);
11277         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
11278         parseContext.symbolTable.push();
11279     }
11280 #line 11281 "MachineIndependent/glslang_tab.cpp"
11281     break;
11282
11283   case 589: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
11284 #line 3856 "MachineIndependent/glslang.y"
11285                                                  {
11286         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
11287         delete parseContext.switchSequenceStack.back();
11288         parseContext.switchSequenceStack.pop_back();
11289         parseContext.switchLevel.pop_back();
11290         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11291         --parseContext.statementNestingLevel;
11292         --parseContext.controlFlowNestingLevel;
11293     }
11294 #line 11295 "MachineIndependent/glslang_tab.cpp"
11295     break;
11296
11297   case 590: /* switch_statement_list: %empty  */
11298 #line 3868 "MachineIndependent/glslang.y"
11299                     {
11300         (yyval.interm.intermNode) = 0;
11301     }
11302 #line 11303 "MachineIndependent/glslang_tab.cpp"
11303     break;
11304
11305   case 591: /* switch_statement_list: statement_list  */
11306 #line 3871 "MachineIndependent/glslang.y"
11307                      {
11308         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11309     }
11310 #line 11311 "MachineIndependent/glslang_tab.cpp"
11311     break;
11312
11313   case 592: /* case_label: CASE expression COLON  */
11314 #line 3877 "MachineIndependent/glslang.y"
11315                             {
11316         (yyval.interm.intermNode) = 0;
11317         if (parseContext.switchLevel.size() == 0)
11318             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
11319         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11320             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
11321         else {
11322             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
11323             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
11324             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
11325         }
11326     }
11327 #line 11328 "MachineIndependent/glslang_tab.cpp"
11328     break;
11329
11330   case 593: /* case_label: DEFAULT COLON  */
11331 #line 3889 "MachineIndependent/glslang.y"
11332                     {
11333         (yyval.interm.intermNode) = 0;
11334         if (parseContext.switchLevel.size() == 0)
11335             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
11336         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
11337             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
11338         else
11339             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
11340     }
11341 #line 11342 "MachineIndependent/glslang_tab.cpp"
11342     break;
11343
11344   case 594: /* iteration_statement: iteration_statement_nonattributed  */
11345 #line 3901 "MachineIndependent/glslang.y"
11346                                         {
11347         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11348     }
11349 #line 11350 "MachineIndependent/glslang_tab.cpp"
11350     break;
11351
11352   case 595: /* iteration_statement: attribute iteration_statement_nonattributed  */
11353 #line 3905 "MachineIndependent/glslang.y"
11354                                                   {
11355         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
11356         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
11357         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11358     }
11359 #line 11360 "MachineIndependent/glslang_tab.cpp"
11360     break;
11361
11362   case 596: /* $@10: %empty  */
11363 #line 3913 "MachineIndependent/glslang.y"
11364                        {
11365         if (! parseContext.limits.whileLoops)
11366             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
11367         parseContext.symbolTable.push();
11368         ++parseContext.loopNestingLevel;
11369         ++parseContext.statementNestingLevel;
11370         ++parseContext.controlFlowNestingLevel;
11371     }
11372 #line 11373 "MachineIndependent/glslang_tab.cpp"
11373     break;
11374
11375   case 597: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
11376 #line 3921 "MachineIndependent/glslang.y"
11377                                                    {
11378         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11379         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
11380         --parseContext.loopNestingLevel;
11381         --parseContext.statementNestingLevel;
11382         --parseContext.controlFlowNestingLevel;
11383     }
11384 #line 11385 "MachineIndependent/glslang_tab.cpp"
11385     break;
11386
11387   case 598: /* $@11: %empty  */
11388 #line 3928 "MachineIndependent/glslang.y"
11389          {
11390         parseContext.symbolTable.push();
11391         ++parseContext.loopNestingLevel;
11392         ++parseContext.statementNestingLevel;
11393         ++parseContext.controlFlowNestingLevel;
11394     }
11395 #line 11396 "MachineIndependent/glslang_tab.cpp"
11396     break;
11397
11398   case 599: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
11399 #line 3934 "MachineIndependent/glslang.y"
11400                                                                   {
11401         if (! parseContext.limits.whileLoops)
11402             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
11403
11404         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
11405
11406         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
11407         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11408         --parseContext.loopNestingLevel;
11409         --parseContext.statementNestingLevel;
11410         --parseContext.controlFlowNestingLevel;
11411     }
11412 #line 11413 "MachineIndependent/glslang_tab.cpp"
11413     break;
11414
11415   case 600: /* $@12: %empty  */
11416 #line 3946 "MachineIndependent/glslang.y"
11417                      {
11418         parseContext.symbolTable.push();
11419         ++parseContext.loopNestingLevel;
11420         ++parseContext.statementNestingLevel;
11421         ++parseContext.controlFlowNestingLevel;
11422     }
11423 #line 11424 "MachineIndependent/glslang_tab.cpp"
11424     break;
11425
11426   case 601: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
11427 #line 3952 "MachineIndependent/glslang.y"
11428                                                                                {
11429         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11430         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
11431         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);
11432         if (! parseContext.limits.nonInductiveForLoops)
11433             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
11434         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
11435         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
11436         --parseContext.loopNestingLevel;
11437         --parseContext.statementNestingLevel;
11438         --parseContext.controlFlowNestingLevel;
11439     }
11440 #line 11441 "MachineIndependent/glslang_tab.cpp"
11441     break;
11442
11443   case 602: /* for_init_statement: expression_statement  */
11444 #line 3967 "MachineIndependent/glslang.y"
11445                            {
11446         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11447     }
11448 #line 11449 "MachineIndependent/glslang_tab.cpp"
11449     break;
11450
11451   case 603: /* for_init_statement: declaration_statement  */
11452 #line 3970 "MachineIndependent/glslang.y"
11453                             {
11454         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11455     }
11456 #line 11457 "MachineIndependent/glslang_tab.cpp"
11457     break;
11458
11459   case 604: /* conditionopt: condition  */
11460 #line 3976 "MachineIndependent/glslang.y"
11461                 {
11462         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
11463     }
11464 #line 11465 "MachineIndependent/glslang_tab.cpp"
11465     break;
11466
11467   case 605: /* conditionopt: %empty  */
11468 #line 3979 "MachineIndependent/glslang.y"
11469                         {
11470         (yyval.interm.intermTypedNode) = 0;
11471     }
11472 #line 11473 "MachineIndependent/glslang_tab.cpp"
11473     break;
11474
11475   case 606: /* for_rest_statement: conditionopt SEMICOLON  */
11476 #line 3985 "MachineIndependent/glslang.y"
11477                              {
11478         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
11479         (yyval.interm.nodePair).node2 = 0;
11480     }
11481 #line 11482 "MachineIndependent/glslang_tab.cpp"
11482     break;
11483
11484   case 607: /* for_rest_statement: conditionopt SEMICOLON expression  */
11485 #line 3989 "MachineIndependent/glslang.y"
11486                                          {
11487         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
11488         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
11489     }
11490 #line 11491 "MachineIndependent/glslang_tab.cpp"
11491     break;
11492
11493   case 608: /* jump_statement: CONTINUE SEMICOLON  */
11494 #line 3996 "MachineIndependent/glslang.y"
11495                          {
11496         if (parseContext.loopNestingLevel <= 0)
11497             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
11498         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
11499     }
11500 #line 11501 "MachineIndependent/glslang_tab.cpp"
11501     break;
11502
11503   case 609: /* jump_statement: BREAK SEMICOLON  */
11504 #line 4001 "MachineIndependent/glslang.y"
11505                       {
11506         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
11507             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
11508         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
11509     }
11510 #line 11511 "MachineIndependent/glslang_tab.cpp"
11511     break;
11512
11513   case 610: /* jump_statement: RETURN SEMICOLON  */
11514 #line 4006 "MachineIndependent/glslang.y"
11515                        {
11516         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
11517         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
11518             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
11519         if (parseContext.inMain)
11520             parseContext.postEntryPointReturn = true;
11521     }
11522 #line 11523 "MachineIndependent/glslang_tab.cpp"
11523     break;
11524
11525   case 611: /* jump_statement: RETURN expression SEMICOLON  */
11526 #line 4013 "MachineIndependent/glslang.y"
11527                                   {
11528         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
11529     }
11530 #line 11531 "MachineIndependent/glslang_tab.cpp"
11531     break;
11532
11533   case 612: /* jump_statement: DISCARD SEMICOLON  */
11534 #line 4016 "MachineIndependent/glslang.y"
11535                         {
11536         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
11537         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
11538     }
11539 #line 11540 "MachineIndependent/glslang_tab.cpp"
11540     break;
11541
11542   case 613: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
11543 #line 4020 "MachineIndependent/glslang.y"
11544                                      {
11545         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
11546         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
11547     }
11548 #line 11549 "MachineIndependent/glslang_tab.cpp"
11549     break;
11550
11551   case 614: /* jump_statement: TERMINATE_RAY SEMICOLON  */
11552 #line 4025 "MachineIndependent/glslang.y"
11553                               {
11554         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
11555         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
11556     }
11557 #line 11558 "MachineIndependent/glslang_tab.cpp"
11558     break;
11559
11560   case 615: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
11561 #line 4029 "MachineIndependent/glslang.y"
11562                                     {
11563         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
11564         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
11565     }
11566 #line 11567 "MachineIndependent/glslang_tab.cpp"
11567     break;
11568
11569   case 616: /* translation_unit: external_declaration  */
11570 #line 4039 "MachineIndependent/glslang.y"
11571                            {
11572         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11573         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11574     }
11575 #line 11576 "MachineIndependent/glslang_tab.cpp"
11576     break;
11577
11578   case 617: /* translation_unit: translation_unit external_declaration  */
11579 #line 4043 "MachineIndependent/glslang.y"
11580                                             {
11581         if ((yyvsp[0].interm.intermNode) != nullptr) {
11582             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
11583             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
11584         }
11585     }
11586 #line 11587 "MachineIndependent/glslang_tab.cpp"
11587     break;
11588
11589   case 618: /* external_declaration: function_definition  */
11590 #line 4052 "MachineIndependent/glslang.y"
11591                           {
11592         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11593     }
11594 #line 11595 "MachineIndependent/glslang_tab.cpp"
11595     break;
11596
11597   case 619: /* external_declaration: declaration  */
11598 #line 4055 "MachineIndependent/glslang.y"
11599                   {
11600         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
11601     }
11602 #line 11603 "MachineIndependent/glslang_tab.cpp"
11603     break;
11604
11605   case 620: /* external_declaration: SEMICOLON  */
11606 #line 4059 "MachineIndependent/glslang.y"
11607                 {
11608         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
11609         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
11610         (yyval.interm.intermNode) = nullptr;
11611     }
11612 #line 11613 "MachineIndependent/glslang_tab.cpp"
11613     break;
11614
11615   case 621: /* $@13: %empty  */
11616 #line 4068 "MachineIndependent/glslang.y"
11617                          {
11618         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
11619         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
11620
11621         // For ES 100 only, according to ES shading language 100 spec: A function
11622         // body has a scope nested inside the function's definition.
11623         if (parseContext.profile == EEsProfile && parseContext.version == 100)
11624         {
11625             parseContext.symbolTable.push();
11626             ++parseContext.statementNestingLevel;
11627         }
11628     }
11629 #line 11630 "MachineIndependent/glslang_tab.cpp"
11630     break;
11631
11632   case 622: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
11633 #line 4080 "MachineIndependent/glslang.y"
11634                                     {
11635         //   May be best done as post process phase on intermediate code
11636         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
11637             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
11638         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11639         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
11640         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
11641         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
11642
11643         // store the pragma information for debug and optimize and other vendor specific
11644         // information. This information can be queried from the parse tree
11645         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
11646         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
11647         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
11648
11649         // Set currentFunctionType to empty pointer when goes outside of the function
11650         parseContext.currentFunctionType = nullptr;
11651
11652         // For ES 100 only, according to ES shading language 100 spec: A function
11653         // body has a scope nested inside the function's definition.
11654         if (parseContext.profile == EEsProfile && parseContext.version == 100)
11655         {
11656             parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11657             --parseContext.statementNestingLevel;
11658         }
11659     }
11660 #line 11661 "MachineIndependent/glslang_tab.cpp"
11661     break;
11662
11663   case 623: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
11664 #line 4110 "MachineIndependent/glslang.y"
11665                                                                            {
11666         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
11667     }
11668 #line 11669 "MachineIndependent/glslang_tab.cpp"
11669     break;
11670
11671   case 624: /* attribute_list: single_attribute  */
11672 #line 4115 "MachineIndependent/glslang.y"
11673                        {
11674         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
11675     }
11676 #line 11677 "MachineIndependent/glslang_tab.cpp"
11677     break;
11678
11679   case 625: /* attribute_list: attribute_list COMMA single_attribute  */
11680 #line 4118 "MachineIndependent/glslang.y"
11681                                             {
11682         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
11683     }
11684 #line 11685 "MachineIndependent/glslang_tab.cpp"
11685     break;
11686
11687   case 626: /* single_attribute: IDENTIFIER  */
11688 #line 4123 "MachineIndependent/glslang.y"
11689                  {
11690         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
11691     }
11692 #line 11693 "MachineIndependent/glslang_tab.cpp"
11693     break;
11694
11695   case 627: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
11696 #line 4126 "MachineIndependent/glslang.y"
11697                                                             {
11698         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
11699     }
11700 #line 11701 "MachineIndependent/glslang_tab.cpp"
11701     break;
11702
11703   case 628: /* spirv_requirements_list: spirv_requirements_parameter  */
11704 #line 4133 "MachineIndependent/glslang.y"
11705                                    {
11706         (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
11707     }
11708 #line 11709 "MachineIndependent/glslang_tab.cpp"
11709     break;
11710
11711   case 629: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
11712 #line 4136 "MachineIndependent/glslang.y"
11713                                                                  {
11714         (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
11715     }
11716 #line 11717 "MachineIndependent/glslang_tab.cpp"
11717     break;
11718
11719   case 630: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
11720 #line 4141 "MachineIndependent/glslang.y"
11721                                                                        {
11722         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
11723     }
11724 #line 11725 "MachineIndependent/glslang_tab.cpp"
11725     break;
11726
11727   case 631: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
11728 #line 4144 "MachineIndependent/glslang.y"
11729                                                                         {
11730         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11731     }
11732 #line 11733 "MachineIndependent/glslang_tab.cpp"
11733     break;
11734
11735   case 632: /* spirv_extension_list: STRING_LITERAL  */
11736 #line 4149 "MachineIndependent/glslang.y"
11737                      {
11738         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11739     }
11740 #line 11741 "MachineIndependent/glslang_tab.cpp"
11741     break;
11742
11743   case 633: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
11744 #line 4152 "MachineIndependent/glslang.y"
11745                                                 {
11746         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
11747     }
11748 #line 11749 "MachineIndependent/glslang_tab.cpp"
11749     break;
11750
11751   case 634: /* spirv_capability_list: INTCONSTANT  */
11752 #line 4157 "MachineIndependent/glslang.y"
11753                   {
11754         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11755     }
11756 #line 11757 "MachineIndependent/glslang_tab.cpp"
11757     break;
11758
11759   case 635: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
11760 #line 4160 "MachineIndependent/glslang.y"
11761                                               {
11762         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
11763     }
11764 #line 11765 "MachineIndependent/glslang_tab.cpp"
11765     break;
11766
11767   case 636: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
11768 #line 4165 "MachineIndependent/glslang.y"
11769                                                               {
11770         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11771         (yyval.interm.intermNode) = 0;
11772     }
11773 #line 11774 "MachineIndependent/glslang_tab.cpp"
11774     break;
11775
11776   case 637: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
11777 #line 4169 "MachineIndependent/glslang.y"
11778                                                                                             {
11779         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11780         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
11781         (yyval.interm.intermNode) = 0;
11782     }
11783 #line 11784 "MachineIndependent/glslang_tab.cpp"
11784     break;
11785
11786   case 638: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
11787 #line 4174 "MachineIndependent/glslang.y"
11788                                                                                                         {
11789         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11790         (yyval.interm.intermNode) = 0;
11791     }
11792 #line 11793 "MachineIndependent/glslang_tab.cpp"
11793     break;
11794
11795   case 639: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
11796 #line 4178 "MachineIndependent/glslang.y"
11797                                                                                                                                       {
11798         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11799         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11800         (yyval.interm.intermNode) = 0;
11801     }
11802 #line 11803 "MachineIndependent/glslang_tab.cpp"
11803     break;
11804
11805   case 640: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
11806 #line 4183 "MachineIndependent/glslang.y"
11807                                                                                                               {
11808         parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11809         (yyval.interm.intermNode) = 0;
11810     }
11811 #line 11812 "MachineIndependent/glslang_tab.cpp"
11812     break;
11813
11814   case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
11815 #line 4187 "MachineIndependent/glslang.y"
11816                                                                                                                                             {
11817         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11818         parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11819         (yyval.interm.intermNode) = 0;
11820     }
11821 #line 11822 "MachineIndependent/glslang_tab.cpp"
11822     break;
11823
11824   case 642: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
11825 #line 4194 "MachineIndependent/glslang.y"
11826                                      {
11827         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
11828     }
11829 #line 11830 "MachineIndependent/glslang_tab.cpp"
11830     break;
11831
11832   case 643: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
11833 #line 4197 "MachineIndependent/glslang.y"
11834                                                                                {
11835         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
11836     }
11837 #line 11838 "MachineIndependent/glslang_tab.cpp"
11838     break;
11839
11840   case 644: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
11841 #line 4202 "MachineIndependent/glslang.y"
11842                     {
11843         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
11844     }
11845 #line 11846 "MachineIndependent/glslang_tab.cpp"
11846     break;
11847
11848   case 645: /* spirv_execution_mode_parameter: INTCONSTANT  */
11849 #line 4205 "MachineIndependent/glslang.y"
11850                   {
11851         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
11852     }
11853 #line 11854 "MachineIndependent/glslang_tab.cpp"
11854     break;
11855
11856   case 646: /* spirv_execution_mode_parameter: UINTCONSTANT  */
11857 #line 4208 "MachineIndependent/glslang.y"
11858                    {
11859         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
11860     }
11861 #line 11862 "MachineIndependent/glslang_tab.cpp"
11862     break;
11863
11864   case 647: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
11865 #line 4211 "MachineIndependent/glslang.y"
11866                    {
11867         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
11868     }
11869 #line 11870 "MachineIndependent/glslang_tab.cpp"
11870     break;
11871
11872   case 648: /* spirv_execution_mode_parameter: STRING_LITERAL  */
11873 #line 4214 "MachineIndependent/glslang.y"
11874                      {
11875         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
11876     }
11877 #line 11878 "MachineIndependent/glslang_tab.cpp"
11878     break;
11879
11880   case 649: /* spirv_execution_mode_id_parameter_list: constant_expression  */
11881 #line 4219 "MachineIndependent/glslang.y"
11882                           {
11883         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
11884             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
11885             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
11886             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
11887             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
11888             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
11889         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
11890     }
11891 #line 11892 "MachineIndependent/glslang_tab.cpp"
11892     break;
11893
11894   case 650: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
11895 #line 4228 "MachineIndependent/glslang.y"
11896                                                                        {
11897         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
11898             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
11899             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
11900             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
11901             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
11902             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
11903         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
11904     }
11905 #line 11906 "MachineIndependent/glslang_tab.cpp"
11906     break;
11907
11908   case 651: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
11909 #line 4239 "MachineIndependent/glslang.y"
11910                                                              {
11911         (yyval.interm.type).init((yyvsp[-3].lex).loc);
11912         (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
11913         (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
11914     }
11915 #line 11916 "MachineIndependent/glslang_tab.cpp"
11916     break;
11917
11918   case 652: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
11919 #line 4244 "MachineIndependent/glslang.y"
11920                                                                                            {
11921         (yyval.interm.type).init((yyvsp[-5].lex).loc);
11922         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11923         (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
11924         (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
11925     }
11926 #line 11927 "MachineIndependent/glslang_tab.cpp"
11927     break;
11928
11929   case 653: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
11930 #line 4252 "MachineIndependent/glslang.y"
11931                                                        {
11932         (yyval.interm.type).init((yyvsp[-3].lex).loc);
11933         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
11934     }
11935 #line 11936 "MachineIndependent/glslang_tab.cpp"
11936     break;
11937
11938   case 654: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
11939 #line 4256 "MachineIndependent/glslang.y"
11940                                                                                      {
11941         (yyval.interm.type).init((yyvsp[-5].lex).loc);
11942         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
11943         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
11944     }
11945 #line 11946 "MachineIndependent/glslang_tab.cpp"
11946     break;
11947
11948   case 655: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
11949 #line 4261 "MachineIndependent/glslang.y"
11950                                                                                             {
11951         (yyval.interm.type).init((yyvsp[-5].lex).loc);
11952         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11953     }
11954 #line 11955 "MachineIndependent/glslang_tab.cpp"
11955     break;
11956
11957   case 656: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
11958 #line 4265 "MachineIndependent/glslang.y"
11959                                                                                                                           {
11960         (yyval.interm.type).init((yyvsp[-7].lex).loc);
11961         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11962         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11963     }
11964 #line 11965 "MachineIndependent/glslang_tab.cpp"
11965     break;
11966
11967   case 657: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
11968 #line 4270 "MachineIndependent/glslang.y"
11969                                                                                                   {
11970         (yyval.interm.type).init((yyvsp[-5].lex).loc);
11971         (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11972     }
11973 #line 11974 "MachineIndependent/glslang_tab.cpp"
11974     break;
11975
11976   case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
11977 #line 4274 "MachineIndependent/glslang.y"
11978                                                                                                                                 {
11979         (yyval.interm.type).init((yyvsp[-7].lex).loc);
11980         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
11981         (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11982     }
11983 #line 11984 "MachineIndependent/glslang_tab.cpp"
11984     break;
11985
11986   case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
11987 #line 4279 "MachineIndependent/glslang.y"
11988                                                                                                           {
11989         (yyval.interm.type).init((yyvsp[-5].lex).loc);
11990         (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
11991     }
11992 #line 11993 "MachineIndependent/glslang_tab.cpp"
11993     break;
11994
11995   case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
11996 #line 4283 "MachineIndependent/glslang.y"
11997                                                                                                                                         {
11998         (yyval.interm.type).init((yyvsp[-7].lex).loc);
11999         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12000         (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
12001     }
12002 #line 12003 "MachineIndependent/glslang_tab.cpp"
12003     break;
12004
12005   case 661: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
12006 #line 4290 "MachineIndependent/glslang.y"
12007                                {
12008         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12009     }
12010 #line 12011 "MachineIndependent/glslang_tab.cpp"
12011     break;
12012
12013   case 662: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
12014 #line 4293 "MachineIndependent/glslang.y"
12015                                                                    {
12016         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
12017     }
12018 #line 12019 "MachineIndependent/glslang_tab.cpp"
12019     break;
12020
12021   case 663: /* spirv_decorate_parameter: FLOATCONSTANT  */
12022 #line 4298 "MachineIndependent/glslang.y"
12023                     {
12024         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
12025     }
12026 #line 12027 "MachineIndependent/glslang_tab.cpp"
12027     break;
12028
12029   case 664: /* spirv_decorate_parameter: INTCONSTANT  */
12030 #line 4301 "MachineIndependent/glslang.y"
12031                   {
12032         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
12033     }
12034 #line 12035 "MachineIndependent/glslang_tab.cpp"
12035     break;
12036
12037   case 665: /* spirv_decorate_parameter: UINTCONSTANT  */
12038 #line 4304 "MachineIndependent/glslang.y"
12039                    {
12040         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
12041     }
12042 #line 12043 "MachineIndependent/glslang_tab.cpp"
12043     break;
12044
12045   case 666: /* spirv_decorate_parameter: BOOLCONSTANT  */
12046 #line 4307 "MachineIndependent/glslang.y"
12047                    {
12048         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
12049     }
12050 #line 12051 "MachineIndependent/glslang_tab.cpp"
12051     break;
12052
12053   case 667: /* spirv_decorate_id_parameter_list: constant_expression  */
12054 #line 4312 "MachineIndependent/glslang.y"
12055                           {
12056         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12057             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12058             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12059             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
12060             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12061         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
12062     }
12063 #line 12064 "MachineIndependent/glslang_tab.cpp"
12064     break;
12065
12066   case 668: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression  */
12067 #line 4320 "MachineIndependent/glslang.y"
12068                                                                  {
12069         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
12070             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
12071             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
12072             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
12073             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
12074         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
12075     }
12076 #line 12077 "MachineIndependent/glslang_tab.cpp"
12077     break;
12078
12079   case 669: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
12080 #line 4330 "MachineIndependent/glslang.y"
12081                      {
12082         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
12083             parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12084     }
12085 #line 12086 "MachineIndependent/glslang_tab.cpp"
12086     break;
12087
12088   case 670: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
12089 #line 4334 "MachineIndependent/glslang.y"
12090                                                                 {
12091         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
12092     }
12093 #line 12094 "MachineIndependent/glslang_tab.cpp"
12094     break;
12095
12096   case 671: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
12097 #line 4339 "MachineIndependent/glslang.y"
12098                                                                                                          {
12099         (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12100         (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12101     }
12102 #line 12103 "MachineIndependent/glslang_tab.cpp"
12103     break;
12104
12105   case 672: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
12106 #line 4343 "MachineIndependent/glslang.y"
12107                                                                                                                                        {
12108         (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
12109         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
12110         (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
12111     }
12112 #line 12113 "MachineIndependent/glslang_tab.cpp"
12113     break;
12114
12115   case 673: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
12116 #line 4348 "MachineIndependent/glslang.y"
12117                                                                          {
12118         (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
12119         (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12120     }
12121 #line 12122 "MachineIndependent/glslang_tab.cpp"
12122     break;
12123
12124   case 674: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
12125 #line 4352 "MachineIndependent/glslang.y"
12126                                                                                                        {
12127         (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
12128         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12129         (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
12130     }
12131 #line 12132 "MachineIndependent/glslang_tab.cpp"
12132     break;
12133
12134   case 675: /* spirv_type_parameter_list: spirv_type_parameter  */
12135 #line 4359 "MachineIndependent/glslang.y"
12136                            {
12137         (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
12138     }
12139 #line 12140 "MachineIndependent/glslang_tab.cpp"
12140     break;
12141
12142   case 676: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
12143 #line 4362 "MachineIndependent/glslang.y"
12144                                                            {
12145         (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
12146     }
12147 #line 12148 "MachineIndependent/glslang_tab.cpp"
12148     break;
12149
12150   case 677: /* spirv_type_parameter: constant_expression  */
12151 #line 4367 "MachineIndependent/glslang.y"
12152                           {
12153         (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
12154     }
12155 #line 12156 "MachineIndependent/glslang_tab.cpp"
12156     break;
12157
12158   case 678: /* spirv_type_parameter: type_specifier  */
12159 #line 4370 "MachineIndependent/glslang.y"
12160                      {
12161         (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type));
12162     }
12163 #line 12164 "MachineIndependent/glslang_tab.cpp"
12164     break;
12165
12166   case 679: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
12167 #line 4375 "MachineIndependent/glslang.y"
12168                                                                                 {
12169         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12170     }
12171 #line 12172 "MachineIndependent/glslang_tab.cpp"
12172     break;
12173
12174   case 680: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
12175 #line 4378 "MachineIndependent/glslang.y"
12176                                                                                                               {
12177         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
12178         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
12179     }
12180 #line 12181 "MachineIndependent/glslang_tab.cpp"
12181     break;
12182
12183   case 681: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
12184 #line 4384 "MachineIndependent/glslang.y"
12185                                      {
12186         (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
12187     }
12188 #line 12189 "MachineIndependent/glslang_tab.cpp"
12189     break;
12190
12191   case 682: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
12192 #line 4387 "MachineIndependent/glslang.y"
12193                                                                             {
12194         (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
12195     }
12196 #line 12197 "MachineIndependent/glslang_tab.cpp"
12197     break;
12198
12199   case 683: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
12200 #line 4392 "MachineIndependent/glslang.y"
12201                                       {
12202         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
12203     }
12204 #line 12205 "MachineIndependent/glslang_tab.cpp"
12205     break;
12206
12207   case 684: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
12208 #line 4395 "MachineIndependent/glslang.y"
12209                                    {
12210         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
12211     }
12212 #line 12213 "MachineIndependent/glslang_tab.cpp"
12213     break;
12214
12215
12216 #line 12217 "MachineIndependent/glslang_tab.cpp"
12217
12218       default: break;
12219     }
12220   /* User semantic actions sometimes alter yychar, and that requires
12221      that yytoken be updated with the new translation.  We take the
12222      approach of translating immediately before every use of yytoken.
12223      One alternative is translating here after every semantic action,
12224      but that translation would be missed if the semantic action invokes
12225      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
12226      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
12227      incorrect destructor might then be invoked immediately.  In the
12228      case of YYERROR or YYBACKUP, subsequent parser actions might lead
12229      to an incorrect destructor call or verbose syntax error message
12230      before the lookahead is translated.  */
12231   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
12232
12233   YYPOPSTACK (yylen);
12234   yylen = 0;
12235
12236   *++yyvsp = yyval;
12237
12238   /* Now 'shift' the result of the reduction.  Determine what state
12239      that goes to, based on the state we popped back to and the rule
12240      number reduced by.  */
12241   {
12242     const int yylhs = yyr1[yyn] - YYNTOKENS;
12243     const int yyi = yypgoto[yylhs] + *yyssp;
12244     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
12245                ? yytable[yyi]
12246                : yydefgoto[yylhs]);
12247   }
12248
12249   goto yynewstate;
12250
12251
12252 /*--------------------------------------.
12253 | yyerrlab -- here on detecting error.  |
12254 `--------------------------------------*/
12255 yyerrlab:
12256   /* Make sure we have latest lookahead translation.  See comments at
12257      user semantic actions for why this is necessary.  */
12258   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
12259   /* If not already recovering from an error, report this error.  */
12260   if (!yyerrstatus)
12261     {
12262       ++yynerrs;
12263       {
12264         yypcontext_t yyctx
12265           = {yyssp, yytoken};
12266         char const *yymsgp = YY_("syntax error");
12267         int yysyntax_error_status;
12268         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12269         if (yysyntax_error_status == 0)
12270           yymsgp = yymsg;
12271         else if (yysyntax_error_status == -1)
12272           {
12273             if (yymsg != yymsgbuf)
12274               YYSTACK_FREE (yymsg);
12275             yymsg = YY_CAST (char *,
12276                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
12277             if (yymsg)
12278               {
12279                 yysyntax_error_status
12280                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
12281                 yymsgp = yymsg;
12282               }
12283             else
12284               {
12285                 yymsg = yymsgbuf;
12286                 yymsg_alloc = sizeof yymsgbuf;
12287                 yysyntax_error_status = YYENOMEM;
12288               }
12289           }
12290         yyerror (pParseContext, yymsgp);
12291         if (yysyntax_error_status == YYENOMEM)
12292           goto yyexhaustedlab;
12293       }
12294     }
12295
12296   if (yyerrstatus == 3)
12297     {
12298       /* If just tried and failed to reuse lookahead token after an
12299          error, discard it.  */
12300
12301       if (yychar <= YYEOF)
12302         {
12303           /* Return failure if at end of input.  */
12304           if (yychar == YYEOF)
12305             YYABORT;
12306         }
12307       else
12308         {
12309           yydestruct ("Error: discarding",
12310                       yytoken, &yylval, pParseContext);
12311           yychar = YYEMPTY;
12312         }
12313     }
12314
12315   /* Else will try to reuse lookahead token after shifting the error
12316      token.  */
12317   goto yyerrlab1;
12318
12319
12320 /*---------------------------------------------------.
12321 | yyerrorlab -- error raised explicitly by YYERROR.  |
12322 `---------------------------------------------------*/
12323 yyerrorlab:
12324   /* Pacify compilers when the user code never invokes YYERROR and the
12325      label yyerrorlab therefore never appears in user code.  */
12326   if (0)
12327     YYERROR;
12328
12329   /* Do not reclaim the symbols of the rule whose action triggered
12330      this YYERROR.  */
12331   YYPOPSTACK (yylen);
12332   yylen = 0;
12333   YY_STACK_PRINT (yyss, yyssp);
12334   yystate = *yyssp;
12335   goto yyerrlab1;
12336
12337
12338 /*-------------------------------------------------------------.
12339 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
12340 `-------------------------------------------------------------*/
12341 yyerrlab1:
12342   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
12343
12344   /* Pop stack until we find a state that shifts the error token.  */
12345   for (;;)
12346     {
12347       yyn = yypact[yystate];
12348       if (!yypact_value_is_default (yyn))
12349         {
12350           yyn += YYSYMBOL_YYerror;
12351           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
12352             {
12353               yyn = yytable[yyn];
12354               if (0 < yyn)
12355                 break;
12356             }
12357         }
12358
12359       /* Pop the current state because it cannot handle the error token.  */
12360       if (yyssp == yyss)
12361         YYABORT;
12362
12363
12364       yydestruct ("Error: popping",
12365                   YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
12366       YYPOPSTACK (1);
12367       yystate = *yyssp;
12368       YY_STACK_PRINT (yyss, yyssp);
12369     }
12370
12371   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
12372   *++yyvsp = yylval;
12373   YY_IGNORE_MAYBE_UNINITIALIZED_END
12374
12375
12376   /* Shift the error token.  */
12377   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
12378
12379   yystate = yyn;
12380   goto yynewstate;
12381
12382
12383 /*-------------------------------------.
12384 | yyacceptlab -- YYACCEPT comes here.  |
12385 `-------------------------------------*/
12386 yyacceptlab:
12387   yyresult = 0;
12388   goto yyreturn;
12389
12390
12391 /*-----------------------------------.
12392 | yyabortlab -- YYABORT comes here.  |
12393 `-----------------------------------*/
12394 yyabortlab:
12395   yyresult = 1;
12396   goto yyreturn;
12397
12398
12399 #if 1
12400 /*-------------------------------------------------.
12401 | yyexhaustedlab -- memory exhaustion comes here.  |
12402 `-------------------------------------------------*/
12403 yyexhaustedlab:
12404   yyerror (pParseContext, YY_("memory exhausted"));
12405   yyresult = 2;
12406   goto yyreturn;
12407 #endif
12408
12409
12410 /*-------------------------------------------------------.
12411 | yyreturn -- parsing is finished, clean up and return.  |
12412 `-------------------------------------------------------*/
12413 yyreturn:
12414   if (yychar != YYEMPTY)
12415     {
12416       /* Make sure we have latest lookahead translation.  See comments at
12417          user semantic actions for why this is necessary.  */
12418       yytoken = YYTRANSLATE (yychar);
12419       yydestruct ("Cleanup: discarding lookahead",
12420                   yytoken, &yylval, pParseContext);
12421     }
12422   /* Do not reclaim the symbols of the rule whose action triggered
12423      this YYABORT or YYACCEPT.  */
12424   YYPOPSTACK (yylen);
12425   YY_STACK_PRINT (yyss, yyssp);
12426   while (yyssp != yyss)
12427     {
12428       yydestruct ("Cleanup: popping",
12429                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
12430       YYPOPSTACK (1);
12431     }
12432 #ifndef yyoverflow
12433   if (yyss != yyssa)
12434     YYSTACK_FREE (yyss);
12435 #endif
12436   if (yymsg != yymsgbuf)
12437     YYSTACK_FREE (yymsg);
12438   return yyresult;
12439 }
12440
12441 #line 4400 "MachineIndependent/glslang.y"
12442