Merge pull request #2511 from alan-baker/GL_EXT_null_initializer
[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_LEFT_OP = 317,                  /* LEFT_OP  */
442   YYSYMBOL_RIGHT_OP = 318,                 /* RIGHT_OP  */
443   YYSYMBOL_INC_OP = 319,                   /* INC_OP  */
444   YYSYMBOL_DEC_OP = 320,                   /* DEC_OP  */
445   YYSYMBOL_LE_OP = 321,                    /* LE_OP  */
446   YYSYMBOL_GE_OP = 322,                    /* GE_OP  */
447   YYSYMBOL_EQ_OP = 323,                    /* EQ_OP  */
448   YYSYMBOL_NE_OP = 324,                    /* NE_OP  */
449   YYSYMBOL_AND_OP = 325,                   /* AND_OP  */
450   YYSYMBOL_OR_OP = 326,                    /* OR_OP  */
451   YYSYMBOL_XOR_OP = 327,                   /* XOR_OP  */
452   YYSYMBOL_MUL_ASSIGN = 328,               /* MUL_ASSIGN  */
453   YYSYMBOL_DIV_ASSIGN = 329,               /* DIV_ASSIGN  */
454   YYSYMBOL_ADD_ASSIGN = 330,               /* ADD_ASSIGN  */
455   YYSYMBOL_MOD_ASSIGN = 331,               /* MOD_ASSIGN  */
456   YYSYMBOL_LEFT_ASSIGN = 332,              /* LEFT_ASSIGN  */
457   YYSYMBOL_RIGHT_ASSIGN = 333,             /* RIGHT_ASSIGN  */
458   YYSYMBOL_AND_ASSIGN = 334,               /* AND_ASSIGN  */
459   YYSYMBOL_XOR_ASSIGN = 335,               /* XOR_ASSIGN  */
460   YYSYMBOL_OR_ASSIGN = 336,                /* OR_ASSIGN  */
461   YYSYMBOL_SUB_ASSIGN = 337,               /* SUB_ASSIGN  */
462   YYSYMBOL_STRING_LITERAL = 338,           /* STRING_LITERAL  */
463   YYSYMBOL_LEFT_PAREN = 339,               /* LEFT_PAREN  */
464   YYSYMBOL_RIGHT_PAREN = 340,              /* RIGHT_PAREN  */
465   YYSYMBOL_LEFT_BRACKET = 341,             /* LEFT_BRACKET  */
466   YYSYMBOL_RIGHT_BRACKET = 342,            /* RIGHT_BRACKET  */
467   YYSYMBOL_LEFT_BRACE = 343,               /* LEFT_BRACE  */
468   YYSYMBOL_RIGHT_BRACE = 344,              /* RIGHT_BRACE  */
469   YYSYMBOL_DOT = 345,                      /* DOT  */
470   YYSYMBOL_COMMA = 346,                    /* COMMA  */
471   YYSYMBOL_COLON = 347,                    /* COLON  */
472   YYSYMBOL_EQUAL = 348,                    /* EQUAL  */
473   YYSYMBOL_SEMICOLON = 349,                /* SEMICOLON  */
474   YYSYMBOL_BANG = 350,                     /* BANG  */
475   YYSYMBOL_DASH = 351,                     /* DASH  */
476   YYSYMBOL_TILDE = 352,                    /* TILDE  */
477   YYSYMBOL_PLUS = 353,                     /* PLUS  */
478   YYSYMBOL_STAR = 354,                     /* STAR  */
479   YYSYMBOL_SLASH = 355,                    /* SLASH  */
480   YYSYMBOL_PERCENT = 356,                  /* PERCENT  */
481   YYSYMBOL_LEFT_ANGLE = 357,               /* LEFT_ANGLE  */
482   YYSYMBOL_RIGHT_ANGLE = 358,              /* RIGHT_ANGLE  */
483   YYSYMBOL_VERTICAL_BAR = 359,             /* VERTICAL_BAR  */
484   YYSYMBOL_CARET = 360,                    /* CARET  */
485   YYSYMBOL_AMPERSAND = 361,                /* AMPERSAND  */
486   YYSYMBOL_QUESTION = 362,                 /* QUESTION  */
487   YYSYMBOL_INVARIANT = 363,                /* INVARIANT  */
488   YYSYMBOL_HIGH_PRECISION = 364,           /* HIGH_PRECISION  */
489   YYSYMBOL_MEDIUM_PRECISION = 365,         /* MEDIUM_PRECISION  */
490   YYSYMBOL_LOW_PRECISION = 366,            /* LOW_PRECISION  */
491   YYSYMBOL_PRECISION = 367,                /* PRECISION  */
492   YYSYMBOL_PACKED = 368,                   /* PACKED  */
493   YYSYMBOL_RESOURCE = 369,                 /* RESOURCE  */
494   YYSYMBOL_SUPERP = 370,                   /* SUPERP  */
495   YYSYMBOL_FLOATCONSTANT = 371,            /* FLOATCONSTANT  */
496   YYSYMBOL_INTCONSTANT = 372,              /* INTCONSTANT  */
497   YYSYMBOL_UINTCONSTANT = 373,             /* UINTCONSTANT  */
498   YYSYMBOL_BOOLCONSTANT = 374,             /* BOOLCONSTANT  */
499   YYSYMBOL_IDENTIFIER = 375,               /* IDENTIFIER  */
500   YYSYMBOL_TYPE_NAME = 376,                /* TYPE_NAME  */
501   YYSYMBOL_CENTROID = 377,                 /* CENTROID  */
502   YYSYMBOL_IN = 378,                       /* IN  */
503   YYSYMBOL_OUT = 379,                      /* OUT  */
504   YYSYMBOL_INOUT = 380,                    /* INOUT  */
505   YYSYMBOL_STRUCT = 381,                   /* STRUCT  */
506   YYSYMBOL_VOID = 382,                     /* VOID  */
507   YYSYMBOL_WHILE = 383,                    /* WHILE  */
508   YYSYMBOL_BREAK = 384,                    /* BREAK  */
509   YYSYMBOL_CONTINUE = 385,                 /* CONTINUE  */
510   YYSYMBOL_DO = 386,                       /* DO  */
511   YYSYMBOL_ELSE = 387,                     /* ELSE  */
512   YYSYMBOL_FOR = 388,                      /* FOR  */
513   YYSYMBOL_IF = 389,                       /* IF  */
514   YYSYMBOL_DISCARD = 390,                  /* DISCARD  */
515   YYSYMBOL_RETURN = 391,                   /* RETURN  */
516   YYSYMBOL_SWITCH = 392,                   /* SWITCH  */
517   YYSYMBOL_CASE = 393,                     /* CASE  */
518   YYSYMBOL_DEFAULT = 394,                  /* DEFAULT  */
519   YYSYMBOL_TERMINATE_INVOCATION = 395,     /* TERMINATE_INVOCATION  */
520   YYSYMBOL_TERMINATE_RAY = 396,            /* TERMINATE_RAY  */
521   YYSYMBOL_IGNORE_INTERSECTION = 397,      /* IGNORE_INTERSECTION  */
522   YYSYMBOL_UNIFORM = 398,                  /* UNIFORM  */
523   YYSYMBOL_SHARED = 399,                   /* SHARED  */
524   YYSYMBOL_BUFFER = 400,                   /* BUFFER  */
525   YYSYMBOL_FLAT = 401,                     /* FLAT  */
526   YYSYMBOL_SMOOTH = 402,                   /* SMOOTH  */
527   YYSYMBOL_LAYOUT = 403,                   /* LAYOUT  */
528   YYSYMBOL_DOUBLECONSTANT = 404,           /* DOUBLECONSTANT  */
529   YYSYMBOL_INT16CONSTANT = 405,            /* INT16CONSTANT  */
530   YYSYMBOL_UINT16CONSTANT = 406,           /* UINT16CONSTANT  */
531   YYSYMBOL_FLOAT16CONSTANT = 407,          /* FLOAT16CONSTANT  */
532   YYSYMBOL_INT32CONSTANT = 408,            /* INT32CONSTANT  */
533   YYSYMBOL_UINT32CONSTANT = 409,           /* UINT32CONSTANT  */
534   YYSYMBOL_INT64CONSTANT = 410,            /* INT64CONSTANT  */
535   YYSYMBOL_UINT64CONSTANT = 411,           /* UINT64CONSTANT  */
536   YYSYMBOL_SUBROUTINE = 412,               /* SUBROUTINE  */
537   YYSYMBOL_DEMOTE = 413,                   /* DEMOTE  */
538   YYSYMBOL_PAYLOADNV = 414,                /* PAYLOADNV  */
539   YYSYMBOL_PAYLOADINNV = 415,              /* PAYLOADINNV  */
540   YYSYMBOL_HITATTRNV = 416,                /* HITATTRNV  */
541   YYSYMBOL_CALLDATANV = 417,               /* CALLDATANV  */
542   YYSYMBOL_CALLDATAINNV = 418,             /* CALLDATAINNV  */
543   YYSYMBOL_PAYLOADEXT = 419,               /* PAYLOADEXT  */
544   YYSYMBOL_PAYLOADINEXT = 420,             /* PAYLOADINEXT  */
545   YYSYMBOL_HITATTREXT = 421,               /* HITATTREXT  */
546   YYSYMBOL_CALLDATAEXT = 422,              /* CALLDATAEXT  */
547   YYSYMBOL_CALLDATAINEXT = 423,            /* CALLDATAINEXT  */
548   YYSYMBOL_PATCH = 424,                    /* PATCH  */
549   YYSYMBOL_SAMPLE = 425,                   /* SAMPLE  */
550   YYSYMBOL_NONUNIFORM = 426,               /* NONUNIFORM  */
551   YYSYMBOL_COHERENT = 427,                 /* COHERENT  */
552   YYSYMBOL_VOLATILE = 428,                 /* VOLATILE  */
553   YYSYMBOL_RESTRICT = 429,                 /* RESTRICT  */
554   YYSYMBOL_READONLY = 430,                 /* READONLY  */
555   YYSYMBOL_WRITEONLY = 431,                /* WRITEONLY  */
556   YYSYMBOL_DEVICECOHERENT = 432,           /* DEVICECOHERENT  */
557   YYSYMBOL_QUEUEFAMILYCOHERENT = 433,      /* QUEUEFAMILYCOHERENT  */
558   YYSYMBOL_WORKGROUPCOHERENT = 434,        /* WORKGROUPCOHERENT  */
559   YYSYMBOL_SUBGROUPCOHERENT = 435,         /* SUBGROUPCOHERENT  */
560   YYSYMBOL_NONPRIVATE = 436,               /* NONPRIVATE  */
561   YYSYMBOL_SHADERCALLCOHERENT = 437,       /* SHADERCALLCOHERENT  */
562   YYSYMBOL_NOPERSPECTIVE = 438,            /* NOPERSPECTIVE  */
563   YYSYMBOL_EXPLICITINTERPAMD = 439,        /* EXPLICITINTERPAMD  */
564   YYSYMBOL_PERVERTEXNV = 440,              /* PERVERTEXNV  */
565   YYSYMBOL_PERPRIMITIVENV = 441,           /* PERPRIMITIVENV  */
566   YYSYMBOL_PERVIEWNV = 442,                /* PERVIEWNV  */
567   YYSYMBOL_PERTASKNV = 443,                /* PERTASKNV  */
568   YYSYMBOL_PRECISE = 444,                  /* PRECISE  */
569   YYSYMBOL_YYACCEPT = 445,                 /* $accept  */
570   YYSYMBOL_variable_identifier = 446,      /* variable_identifier  */
571   YYSYMBOL_primary_expression = 447,       /* primary_expression  */
572   YYSYMBOL_postfix_expression = 448,       /* postfix_expression  */
573   YYSYMBOL_integer_expression = 449,       /* integer_expression  */
574   YYSYMBOL_function_call = 450,            /* function_call  */
575   YYSYMBOL_function_call_or_method = 451,  /* function_call_or_method  */
576   YYSYMBOL_function_call_generic = 452,    /* function_call_generic  */
577   YYSYMBOL_function_call_header_no_parameters = 453, /* function_call_header_no_parameters  */
578   YYSYMBOL_function_call_header_with_parameters = 454, /* function_call_header_with_parameters  */
579   YYSYMBOL_function_call_header = 455,     /* function_call_header  */
580   YYSYMBOL_function_identifier = 456,      /* function_identifier  */
581   YYSYMBOL_unary_expression = 457,         /* unary_expression  */
582   YYSYMBOL_unary_operator = 458,           /* unary_operator  */
583   YYSYMBOL_multiplicative_expression = 459, /* multiplicative_expression  */
584   YYSYMBOL_additive_expression = 460,      /* additive_expression  */
585   YYSYMBOL_shift_expression = 461,         /* shift_expression  */
586   YYSYMBOL_relational_expression = 462,    /* relational_expression  */
587   YYSYMBOL_equality_expression = 463,      /* equality_expression  */
588   YYSYMBOL_and_expression = 464,           /* and_expression  */
589   YYSYMBOL_exclusive_or_expression = 465,  /* exclusive_or_expression  */
590   YYSYMBOL_inclusive_or_expression = 466,  /* inclusive_or_expression  */
591   YYSYMBOL_logical_and_expression = 467,   /* logical_and_expression  */
592   YYSYMBOL_logical_xor_expression = 468,   /* logical_xor_expression  */
593   YYSYMBOL_logical_or_expression = 469,    /* logical_or_expression  */
594   YYSYMBOL_conditional_expression = 470,   /* conditional_expression  */
595   YYSYMBOL_471_1 = 471,                    /* $@1  */
596   YYSYMBOL_assignment_expression = 472,    /* assignment_expression  */
597   YYSYMBOL_assignment_operator = 473,      /* assignment_operator  */
598   YYSYMBOL_expression = 474,               /* expression  */
599   YYSYMBOL_constant_expression = 475,      /* constant_expression  */
600   YYSYMBOL_declaration = 476,              /* declaration  */
601   YYSYMBOL_block_structure = 477,          /* block_structure  */
602   YYSYMBOL_478_2 = 478,                    /* $@2  */
603   YYSYMBOL_identifier_list = 479,          /* identifier_list  */
604   YYSYMBOL_function_prototype = 480,       /* function_prototype  */
605   YYSYMBOL_function_declarator = 481,      /* function_declarator  */
606   YYSYMBOL_function_header_with_parameters = 482, /* function_header_with_parameters  */
607   YYSYMBOL_function_header = 483,          /* function_header  */
608   YYSYMBOL_parameter_declarator = 484,     /* parameter_declarator  */
609   YYSYMBOL_parameter_declaration = 485,    /* parameter_declaration  */
610   YYSYMBOL_parameter_type_specifier = 486, /* parameter_type_specifier  */
611   YYSYMBOL_init_declarator_list = 487,     /* init_declarator_list  */
612   YYSYMBOL_single_declaration = 488,       /* single_declaration  */
613   YYSYMBOL_fully_specified_type = 489,     /* fully_specified_type  */
614   YYSYMBOL_invariant_qualifier = 490,      /* invariant_qualifier  */
615   YYSYMBOL_interpolation_qualifier = 491,  /* interpolation_qualifier  */
616   YYSYMBOL_layout_qualifier = 492,         /* layout_qualifier  */
617   YYSYMBOL_layout_qualifier_id_list = 493, /* layout_qualifier_id_list  */
618   YYSYMBOL_layout_qualifier_id = 494,      /* layout_qualifier_id  */
619   YYSYMBOL_precise_qualifier = 495,        /* precise_qualifier  */
620   YYSYMBOL_type_qualifier = 496,           /* type_qualifier  */
621   YYSYMBOL_single_type_qualifier = 497,    /* single_type_qualifier  */
622   YYSYMBOL_storage_qualifier = 498,        /* storage_qualifier  */
623   YYSYMBOL_non_uniform_qualifier = 499,    /* non_uniform_qualifier  */
624   YYSYMBOL_type_name_list = 500,           /* type_name_list  */
625   YYSYMBOL_type_specifier = 501,           /* type_specifier  */
626   YYSYMBOL_array_specifier = 502,          /* array_specifier  */
627   YYSYMBOL_type_parameter_specifier_opt = 503, /* type_parameter_specifier_opt  */
628   YYSYMBOL_type_parameter_specifier = 504, /* type_parameter_specifier  */
629   YYSYMBOL_type_parameter_specifier_list = 505, /* type_parameter_specifier_list  */
630   YYSYMBOL_type_specifier_nonarray = 506,  /* type_specifier_nonarray  */
631   YYSYMBOL_precision_qualifier = 507,      /* precision_qualifier  */
632   YYSYMBOL_struct_specifier = 508,         /* struct_specifier  */
633   YYSYMBOL_509_3 = 509,                    /* $@3  */
634   YYSYMBOL_510_4 = 510,                    /* $@4  */
635   YYSYMBOL_struct_declaration_list = 511,  /* struct_declaration_list  */
636   YYSYMBOL_struct_declaration = 512,       /* struct_declaration  */
637   YYSYMBOL_struct_declarator_list = 513,   /* struct_declarator_list  */
638   YYSYMBOL_struct_declarator = 514,        /* struct_declarator  */
639   YYSYMBOL_initializer = 515,              /* initializer  */
640   YYSYMBOL_initializer_list = 516,         /* initializer_list  */
641   YYSYMBOL_declaration_statement = 517,    /* declaration_statement  */
642   YYSYMBOL_statement = 518,                /* statement  */
643   YYSYMBOL_simple_statement = 519,         /* simple_statement  */
644   YYSYMBOL_demote_statement = 520,         /* demote_statement  */
645   YYSYMBOL_compound_statement = 521,       /* compound_statement  */
646   YYSYMBOL_522_5 = 522,                    /* $@5  */
647   YYSYMBOL_523_6 = 523,                    /* $@6  */
648   YYSYMBOL_statement_no_new_scope = 524,   /* statement_no_new_scope  */
649   YYSYMBOL_statement_scoped = 525,         /* statement_scoped  */
650   YYSYMBOL_526_7 = 526,                    /* $@7  */
651   YYSYMBOL_527_8 = 527,                    /* $@8  */
652   YYSYMBOL_compound_statement_no_new_scope = 528, /* compound_statement_no_new_scope  */
653   YYSYMBOL_statement_list = 529,           /* statement_list  */
654   YYSYMBOL_expression_statement = 530,     /* expression_statement  */
655   YYSYMBOL_selection_statement = 531,      /* selection_statement  */
656   YYSYMBOL_selection_statement_nonattributed = 532, /* selection_statement_nonattributed  */
657   YYSYMBOL_selection_rest_statement = 533, /* selection_rest_statement  */
658   YYSYMBOL_condition = 534,                /* condition  */
659   YYSYMBOL_switch_statement = 535,         /* switch_statement  */
660   YYSYMBOL_switch_statement_nonattributed = 536, /* switch_statement_nonattributed  */
661   YYSYMBOL_537_9 = 537,                    /* $@9  */
662   YYSYMBOL_switch_statement_list = 538,    /* switch_statement_list  */
663   YYSYMBOL_case_label = 539,               /* case_label  */
664   YYSYMBOL_iteration_statement = 540,      /* iteration_statement  */
665   YYSYMBOL_iteration_statement_nonattributed = 541, /* iteration_statement_nonattributed  */
666   YYSYMBOL_542_10 = 542,                   /* $@10  */
667   YYSYMBOL_543_11 = 543,                   /* $@11  */
668   YYSYMBOL_544_12 = 544,                   /* $@12  */
669   YYSYMBOL_for_init_statement = 545,       /* for_init_statement  */
670   YYSYMBOL_conditionopt = 546,             /* conditionopt  */
671   YYSYMBOL_for_rest_statement = 547,       /* for_rest_statement  */
672   YYSYMBOL_jump_statement = 548,           /* jump_statement  */
673   YYSYMBOL_translation_unit = 549,         /* translation_unit  */
674   YYSYMBOL_external_declaration = 550,     /* external_declaration  */
675   YYSYMBOL_function_definition = 551,      /* function_definition  */
676   YYSYMBOL_552_13 = 552,                   /* $@13  */
677   YYSYMBOL_attribute = 553,                /* attribute  */
678   YYSYMBOL_attribute_list = 554,           /* attribute_list  */
679   YYSYMBOL_single_attribute = 555          /* single_attribute  */
680 };
681 typedef enum yysymbol_kind_t yysymbol_kind_t;
682
683
684 /* Second part of user prologue.  */
685 #line 133 "MachineIndependent/glslang.y"
686
687
688 /* windows only pragma */
689 #ifdef _MSC_VER
690     #pragma warning(disable : 4065)
691     #pragma warning(disable : 4127)
692     #pragma warning(disable : 4244)
693 #endif
694
695 #define parseContext (*pParseContext)
696 #define yyerror(context, msg) context->parserError(msg)
697
698 extern int yylex(YYSTYPE*, TParseContext&);
699
700
701 #line 702 "MachineIndependent/glslang_tab.cpp"
702
703
704 #ifdef short
705 # undef short
706 #endif
707
708 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
709    <limits.h> and (if available) <stdint.h> are included
710    so that the code can choose integer types of a good width.  */
711
712 #ifndef __PTRDIFF_MAX__
713 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
714 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
715 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
716 #  define YY_STDINT_H
717 # endif
718 #endif
719
720 /* Narrow types that promote to a signed type and that can represent a
721    signed or unsigned integer of at least N bits.  In tables they can
722    save space and decrease cache pressure.  Promoting to a signed type
723    helps avoid bugs in integer arithmetic.  */
724
725 #ifdef __INT_LEAST8_MAX__
726 typedef __INT_LEAST8_TYPE__ yytype_int8;
727 #elif defined YY_STDINT_H
728 typedef int_least8_t yytype_int8;
729 #else
730 typedef signed char yytype_int8;
731 #endif
732
733 #ifdef __INT_LEAST16_MAX__
734 typedef __INT_LEAST16_TYPE__ yytype_int16;
735 #elif defined YY_STDINT_H
736 typedef int_least16_t yytype_int16;
737 #else
738 typedef short yytype_int16;
739 #endif
740
741 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
742 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
743 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
744        && UINT_LEAST8_MAX <= INT_MAX)
745 typedef uint_least8_t yytype_uint8;
746 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
747 typedef unsigned char yytype_uint8;
748 #else
749 typedef short yytype_uint8;
750 #endif
751
752 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
753 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
754 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
755        && UINT_LEAST16_MAX <= INT_MAX)
756 typedef uint_least16_t yytype_uint16;
757 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
758 typedef unsigned short yytype_uint16;
759 #else
760 typedef int yytype_uint16;
761 #endif
762
763 #ifndef YYPTRDIFF_T
764 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
765 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
766 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
767 # elif defined PTRDIFF_MAX
768 #  ifndef ptrdiff_t
769 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
770 #  endif
771 #  define YYPTRDIFF_T ptrdiff_t
772 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
773 # else
774 #  define YYPTRDIFF_T long
775 #  define YYPTRDIFF_MAXIMUM LONG_MAX
776 # endif
777 #endif
778
779 #ifndef YYSIZE_T
780 # ifdef __SIZE_TYPE__
781 #  define YYSIZE_T __SIZE_TYPE__
782 # elif defined size_t
783 #  define YYSIZE_T size_t
784 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
785 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
786 #  define YYSIZE_T size_t
787 # else
788 #  define YYSIZE_T unsigned
789 # endif
790 #endif
791
792 #define YYSIZE_MAXIMUM                                  \
793   YY_CAST (YYPTRDIFF_T,                                 \
794            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
795             ? YYPTRDIFF_MAXIMUM                         \
796             : YY_CAST (YYSIZE_T, -1)))
797
798 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
799
800
801 /* Stored state numbers (used for stacks). */
802 typedef yytype_int16 yy_state_t;
803
804 /* State numbers in computations.  */
805 typedef int yy_state_fast_t;
806
807 #ifndef YY_
808 # if defined YYENABLE_NLS && YYENABLE_NLS
809 #  if ENABLE_NLS
810 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
811 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
812 #  endif
813 # endif
814 # ifndef YY_
815 #  define YY_(Msgid) Msgid
816 # endif
817 #endif
818
819
820 #ifndef YY_ATTRIBUTE_PURE
821 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
822 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
823 # else
824 #  define YY_ATTRIBUTE_PURE
825 # endif
826 #endif
827
828 #ifndef YY_ATTRIBUTE_UNUSED
829 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
830 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
831 # else
832 #  define YY_ATTRIBUTE_UNUSED
833 # endif
834 #endif
835
836 /* Suppress unused-variable warnings by "using" E.  */
837 #if ! defined lint || defined __GNUC__
838 # define YYUSE(E) ((void) (E))
839 #else
840 # define YYUSE(E) /* empty */
841 #endif
842
843 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
844 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
845 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
846     _Pragma ("GCC diagnostic push")                                     \
847     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
848     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
849 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
850     _Pragma ("GCC diagnostic pop")
851 #else
852 # define YY_INITIAL_VALUE(Value) Value
853 #endif
854 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
855 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
856 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
857 #endif
858 #ifndef YY_INITIAL_VALUE
859 # define YY_INITIAL_VALUE(Value) /* Nothing. */
860 #endif
861
862 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
863 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
864     _Pragma ("GCC diagnostic push")                            \
865     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
866 # define YY_IGNORE_USELESS_CAST_END            \
867     _Pragma ("GCC diagnostic pop")
868 #endif
869 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
870 # define YY_IGNORE_USELESS_CAST_BEGIN
871 # define YY_IGNORE_USELESS_CAST_END
872 #endif
873
874
875 #define YY_ASSERT(E) ((void) (0 && (E)))
876
877 #if 1
878
879 /* The parser invokes alloca or malloc; define the necessary symbols.  */
880
881 # ifdef YYSTACK_USE_ALLOCA
882 #  if YYSTACK_USE_ALLOCA
883 #   ifdef __GNUC__
884 #    define YYSTACK_ALLOC __builtin_alloca
885 #   elif defined __BUILTIN_VA_ARG_INCR
886 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
887 #   elif defined _AIX
888 #    define YYSTACK_ALLOC __alloca
889 #   elif defined _MSC_VER
890 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
891 #    define alloca _alloca
892 #   else
893 #    define YYSTACK_ALLOC alloca
894 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
895 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
896       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
897 #     ifndef EXIT_SUCCESS
898 #      define EXIT_SUCCESS 0
899 #     endif
900 #    endif
901 #   endif
902 #  endif
903 # endif
904
905 # ifdef YYSTACK_ALLOC
906    /* Pacify GCC's 'empty if-body' warning.  */
907 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
908 #  ifndef YYSTACK_ALLOC_MAXIMUM
909     /* The OS might guarantee only one guard page at the bottom of the stack,
910        and a page size can be as small as 4096 bytes.  So we cannot safely
911        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
912        to allow for a few compiler-allocated temporary stack slots.  */
913 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
914 #  endif
915 # else
916 #  define YYSTACK_ALLOC YYMALLOC
917 #  define YYSTACK_FREE YYFREE
918 #  ifndef YYSTACK_ALLOC_MAXIMUM
919 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
920 #  endif
921 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
922        && ! ((defined YYMALLOC || defined malloc) \
923              && (defined YYFREE || defined free)))
924 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
925 #   ifndef EXIT_SUCCESS
926 #    define EXIT_SUCCESS 0
927 #   endif
928 #  endif
929 #  ifndef YYMALLOC
930 #   define YYMALLOC malloc
931 #   if ! defined malloc && ! defined EXIT_SUCCESS
932 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
933 #   endif
934 #  endif
935 #  ifndef YYFREE
936 #   define YYFREE free
937 #   if ! defined free && ! defined EXIT_SUCCESS
938 void free (void *); /* INFRINGES ON USER NAME SPACE */
939 #   endif
940 #  endif
941 # endif
942 #endif /* 1 */
943
944 #if (! defined yyoverflow \
945      && (! defined __cplusplus \
946          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
947
948 /* A type that is properly aligned for any stack member.  */
949 union yyalloc
950 {
951   yy_state_t yyss_alloc;
952   YYSTYPE yyvs_alloc;
953 };
954
955 /* The size of the maximum gap between one aligned stack and the next.  */
956 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
957
958 /* The size of an array large to enough to hold all stacks, each with
959    N elements.  */
960 # define YYSTACK_BYTES(N) \
961      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
962       + YYSTACK_GAP_MAXIMUM)
963
964 # define YYCOPY_NEEDED 1
965
966 /* Relocate STACK from its old location to the new one.  The
967    local variables YYSIZE and YYSTACKSIZE give the old and new number of
968    elements in the stack, and YYPTR gives the new location of the
969    stack.  Advance YYPTR to a properly aligned location for the next
970    stack.  */
971 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
972     do                                                                  \
973       {                                                                 \
974         YYPTRDIFF_T yynewbytes;                                         \
975         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
976         Stack = &yyptr->Stack_alloc;                                    \
977         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
978         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
979       }                                                                 \
980     while (0)
981
982 #endif
983
984 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
985 /* Copy COUNT objects from SRC to DST.  The source and destination do
986    not overlap.  */
987 # ifndef YYCOPY
988 #  if defined __GNUC__ && 1 < __GNUC__
989 #   define YYCOPY(Dst, Src, Count) \
990       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
991 #  else
992 #   define YYCOPY(Dst, Src, Count)              \
993       do                                        \
994         {                                       \
995           YYPTRDIFF_T yyi;                      \
996           for (yyi = 0; yyi < (Count); yyi++)   \
997             (Dst)[yyi] = (Src)[yyi];            \
998         }                                       \
999       while (0)
1000 #  endif
1001 # endif
1002 #endif /* !YYCOPY_NEEDED */
1003
1004 /* YYFINAL -- State number of the termination state.  */
1005 #define YYFINAL  416
1006 /* YYLAST -- Last index in YYTABLE.  */
1007 #define YYLAST   10537
1008
1009 /* YYNTOKENS -- Number of terminals.  */
1010 #define YYNTOKENS  445
1011 /* YYNNTS -- Number of nonterminals.  */
1012 #define YYNNTS  111
1013 /* YYNRULES -- Number of rules.  */
1014 #define YYNRULES  617
1015 /* YYNSTATES -- Number of states.  */
1016 #define YYNSTATES  765
1017
1018 /* YYMAXUTOK -- Last valid token kind.  */
1019 #define YYMAXUTOK   699
1020
1021
1022 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1023    as returned by yylex, with out-of-bounds checking.  */
1024 #define YYTRANSLATE(YYX)                                \
1025   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1026    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1027    : YYSYMBOL_YYUNDEF)
1028
1029 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1030    as returned by yylex.  */
1031 static const yytype_int16 yytranslate[] =
1032 {
1033        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1034        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1035        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1036        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1037        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1038        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1039        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1040        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1041        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1042        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1043        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1044        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1045        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1046        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1047        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1048        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1049        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1050        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1051        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1052        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1053        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1054        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1055        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1056        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1057        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1058        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
1059        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1060       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1061       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1062       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1063       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1064       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1065       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1066       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1067       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1068       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1069      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1070      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1071      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1072      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1073      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1074      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1075      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1076      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1077      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1078      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1079      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1080      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1081      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1082      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1083      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1084      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1085      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1086      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1087      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1088      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1089      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1090      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1091      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1092      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1093      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1094      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1095      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1096      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1097      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1098      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1099      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1100      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1101      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1102      435,   436,   437,   438,   439,   440,   441,   442,   443,   444
1103 };
1104
1105 #if YYDEBUG
1106   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1107 static const yytype_int16 yyrline[] =
1108 {
1109        0,   371,   371,   377,   380,   385,   388,   391,   395,   399,
1110      402,   406,   410,   414,   418,   422,   426,   432,   440,   443,
1111      446,   449,   452,   457,   465,   472,   479,   485,   489,   496,
1112      499,   505,   512,   522,   530,   535,   563,   572,   578,   582,
1113      586,   606,   607,   608,   609,   615,   616,   621,   626,   635,
1114      636,   641,   649,   650,   656,   665,   666,   671,   676,   681,
1115      689,   690,   699,   711,   712,   721,   722,   731,   732,   741,
1116      742,   750,   751,   759,   760,   768,   769,   769,   787,   788,
1117      804,   808,   812,   816,   821,   825,   829,   833,   837,   841,
1118      845,   852,   855,   866,   873,   878,   883,   890,   894,   898,
1119      902,   907,   912,   921,   921,   932,   936,   943,   950,   953,
1120      960,   968,   988,  1011,  1026,  1051,  1062,  1072,  1082,  1092,
1121     1101,  1104,  1108,  1112,  1117,  1125,  1132,  1137,  1142,  1147,
1122     1156,  1166,  1193,  1202,  1209,  1217,  1224,  1231,  1239,  1249,
1123     1256,  1267,  1273,  1276,  1283,  1287,  1291,  1300,  1310,  1313,
1124     1324,  1327,  1330,  1334,  1338,  1343,  1347,  1354,  1358,  1363,
1125     1369,  1375,  1382,  1387,  1395,  1401,  1413,  1427,  1433,  1438,
1126     1446,  1454,  1462,  1470,  1478,  1486,  1494,  1502,  1509,  1516,
1127     1520,  1525,  1530,  1535,  1540,  1545,  1550,  1554,  1558,  1562,
1128     1566,  1572,  1583,  1590,  1593,  1602,  1607,  1617,  1622,  1630,
1129     1634,  1644,  1647,  1653,  1659,  1666,  1676,  1680,  1684,  1688,
1130     1693,  1697,  1702,  1707,  1712,  1717,  1722,  1727,  1732,  1737,
1131     1742,  1748,  1754,  1760,  1765,  1770,  1775,  1780,  1785,  1790,
1132     1795,  1800,  1805,  1810,  1815,  1821,  1828,  1833,  1838,  1843,
1133     1848,  1853,  1858,  1863,  1868,  1873,  1878,  1883,  1891,  1899,
1134     1907,  1913,  1919,  1925,  1931,  1937,  1943,  1949,  1955,  1961,
1135     1967,  1973,  1979,  1985,  1991,  1997,  2003,  2009,  2015,  2021,
1136     2027,  2033,  2039,  2045,  2051,  2057,  2063,  2069,  2075,  2081,
1137     2087,  2093,  2099,  2105,  2113,  2121,  2129,  2137,  2145,  2153,
1138     2161,  2169,  2177,  2185,  2193,  2201,  2207,  2213,  2219,  2225,
1139     2231,  2237,  2243,  2249,  2255,  2261,  2267,  2273,  2279,  2285,
1140     2291,  2297,  2303,  2309,  2315,  2321,  2327,  2333,  2339,  2345,
1141     2351,  2357,  2363,  2369,  2375,  2381,  2387,  2393,  2399,  2405,
1142     2411,  2417,  2421,  2425,  2429,  2434,  2440,  2445,  2450,  2455,
1143     2460,  2465,  2470,  2476,  2481,  2486,  2491,  2496,  2501,  2507,
1144     2513,  2519,  2525,  2531,  2537,  2543,  2549,  2555,  2561,  2567,
1145     2573,  2579,  2585,  2590,  2595,  2600,  2605,  2610,  2615,  2621,
1146     2626,  2631,  2636,  2641,  2646,  2651,  2656,  2662,  2667,  2672,
1147     2677,  2682,  2687,  2692,  2697,  2702,  2707,  2712,  2717,  2722,
1148     2727,  2732,  2738,  2743,  2748,  2754,  2760,  2765,  2770,  2775,
1149     2781,  2786,  2791,  2796,  2802,  2807,  2812,  2817,  2823,  2828,
1150     2833,  2838,  2844,  2850,  2856,  2862,  2867,  2873,  2879,  2885,
1151     2890,  2895,  2900,  2905,  2910,  2916,  2921,  2926,  2931,  2937,
1152     2942,  2947,  2952,  2958,  2963,  2968,  2973,  2979,  2984,  2989,
1153     2994,  3000,  3005,  3010,  3015,  3021,  3026,  3031,  3036,  3042,
1154     3047,  3052,  3057,  3063,  3068,  3073,  3078,  3084,  3089,  3094,
1155     3099,  3105,  3110,  3115,  3120,  3126,  3131,  3136,  3141,  3147,
1156     3152,  3157,  3162,  3168,  3173,  3178,  3183,  3189,  3194,  3199,
1157     3204,  3210,  3215,  3220,  3225,  3230,  3235,  3240,  3245,  3250,
1158     3255,  3260,  3265,  3270,  3275,  3280,  3285,  3290,  3295,  3300,
1159     3305,  3310,  3315,  3320,  3325,  3330,  3336,  3342,  3348,  3354,
1160     3361,  3368,  3374,  3380,  3386,  3392,  3398,  3404,  3411,  3416,
1161     3432,  3437,  3442,  3450,  3450,  3461,  3461,  3471,  3474,  3487,
1162     3509,  3536,  3540,  3546,  3551,  3562,  3566,  3572,  3578,  3589,
1163     3592,  3599,  3603,  3604,  3610,  3611,  3612,  3613,  3614,  3615,
1164     3616,  3618,  3624,  3633,  3634,  3638,  3634,  3650,  3651,  3655,
1165     3655,  3662,  3662,  3676,  3679,  3687,  3695,  3706,  3707,  3711,
1166     3715,  3722,  3729,  3733,  3741,  3745,  3758,  3762,  3769,  3769,
1167     3789,  3792,  3798,  3810,  3822,  3826,  3833,  3833,  3848,  3848,
1168     3864,  3864,  3885,  3888,  3894,  3897,  3903,  3907,  3914,  3919,
1169     3924,  3931,  3934,  3938,  3943,  3947,  3957,  3961,  3970,  3973,
1170     3977,  3986,  3986,  4028,  4034,  4037,  4042,  4045
1171 };
1172 #endif
1173
1174 /** Accessing symbol of state STATE.  */
1175 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1176
1177 #if 1
1178 /* The user-facing name of the symbol whose (internal) number is
1179    YYSYMBOL.  No bounds checking.  */
1180 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1181
1182 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1183    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1184 static const char *const yytname[] =
1185 {
1186   "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1187   "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1188   "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1189   "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1190   "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1191   "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1192   "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1193   "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1194   "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1195   "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1196   "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1197   "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1198   "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
1199   "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
1200   "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
1201   "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
1202   "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
1203   "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
1204   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1205   "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1206   "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1207   "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
1208   "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
1209   "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
1210   "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
1211   "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
1212   "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
1213   "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
1214   "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
1215   "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
1216   "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
1217   "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
1218   "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
1219   "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1220   "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
1221   "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1222   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1223   "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
1224   "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1225   "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1226   "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1227   "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1228   "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1229   "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1230   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1231   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1232   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1233   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1234   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1235   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1236   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1237   "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1238   "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1239   "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1240   "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1241   "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1242   "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1243   "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1244   "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1245   "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1246   "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1247   "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1248   "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1249   "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1250   "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1251   "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1252   "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1253   "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1254   "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1255   "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1256   "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1257   "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1258   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1259   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1260   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1261   "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1262   "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1263   "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1264   "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1265   "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1266   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
1267   "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1268   "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1269   "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1270   "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
1271   "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
1272   "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1273   "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1274   "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1275   "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1276   "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1277   "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1278   "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1279   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1280   "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1281   "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1282   "$accept", "variable_identifier", "primary_expression",
1283   "postfix_expression", "integer_expression", "function_call",
1284   "function_call_or_method", "function_call_generic",
1285   "function_call_header_no_parameters",
1286   "function_call_header_with_parameters", "function_call_header",
1287   "function_identifier", "unary_expression", "unary_operator",
1288   "multiplicative_expression", "additive_expression", "shift_expression",
1289   "relational_expression", "equality_expression", "and_expression",
1290   "exclusive_or_expression", "inclusive_or_expression",
1291   "logical_and_expression", "logical_xor_expression",
1292   "logical_or_expression", "conditional_expression", "$@1",
1293   "assignment_expression", "assignment_operator", "expression",
1294   "constant_expression", "declaration", "block_structure", "$@2",
1295   "identifier_list", "function_prototype", "function_declarator",
1296   "function_header_with_parameters", "function_header",
1297   "parameter_declarator", "parameter_declaration",
1298   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1299   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1300   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1301   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1302   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1303   "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1304   "type_parameter_specifier", "type_parameter_specifier_list",
1305   "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1306   "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1307   "struct_declarator_list", "struct_declarator", "initializer",
1308   "initializer_list", "declaration_statement", "statement",
1309   "simple_statement", "demote_statement", "compound_statement", "$@5",
1310   "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1311   "compound_statement_no_new_scope", "statement_list",
1312   "expression_statement", "selection_statement",
1313   "selection_statement_nonattributed", "selection_rest_statement",
1314   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1315   "switch_statement_list", "case_label", "iteration_statement",
1316   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1317   "for_init_statement", "conditionopt", "for_rest_statement",
1318   "jump_statement", "translation_unit", "external_declaration",
1319   "function_definition", "$@13", "attribute", "attribute_list",
1320   "single_attribute", YY_NULLPTR
1321 };
1322
1323 static const char *
1324 yysymbol_name (yysymbol_kind_t yysymbol)
1325 {
1326   return yytname[yysymbol];
1327 }
1328 #endif
1329
1330 #ifdef YYPRINT
1331 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1332    (internal) symbol number NUM (which must be that of a token).  */
1333 static const yytype_int16 yytoknum[] =
1334 {
1335        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1336      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1337      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1338      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1339      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1340      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1341      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1342      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1343      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1344      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1345      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1346      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1347      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1348      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1349      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1350      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1351      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1352      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1353      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1354      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1355      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1356      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1357      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1358      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1359      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1360      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1361      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1362      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1363      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1364      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1365      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1366      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1367      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1368      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1369      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1370      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1371      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1372      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1373      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1374      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1375      655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
1376      665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
1377      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
1378      685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
1379      695,   696,   697,   698,   699
1380 };
1381 #endif
1382
1383 #define YYPACT_NINF (-733)
1384
1385 #define yypact_value_is_default(Yyn) \
1386   ((Yyn) == YYPACT_NINF)
1387
1388 #define YYTABLE_NINF (-560)
1389
1390 #define yytable_value_is_error(Yyn) \
1391   0
1392
1393   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1394      STATE-NUM.  */
1395 static const yytype_int16 yypact[] =
1396 {
1397     4304,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1398     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1399     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1400     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1401     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1402     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1403     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1404     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1405     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1406     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1407     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1408     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1409     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1410     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1411     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1412     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1413     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1414     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1415     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1416     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1417     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1418     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1419     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1420     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1421     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1422     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1423     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1424     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1425     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1426     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1427     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1428     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1429      109,  -733,  -733,  -733,  -733,  -733,     3,  -733,  -733,  -733,
1430     -733,  -733,  -733,  -322,  -261,  -733,  -733,  -733,  -733,  -733,
1431     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1432     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1433     -733,  -733,  -733,  -733,  -733,  -733,  -733,    19,   101,   140,
1434       79,  6514,    57,  -733,    96,  -733,  -733,  -733,  -733,  4746,
1435     -733,  -733,  -733,  -733,   133,  -733,  -733,   768,  -733,  -733,
1436       16,  -733,   151,   -32,   125,  -733,  -335,  -733,   158,  -733,
1437     6514,  -733,  -733,  -733,  6514,   127,   128,  -733,    13,  -733,
1438       72,  -733,  -733,  9493,   163,  -733,  -733,  -733,   156,  6514,
1439     -733,   160,  -733,    20,  -733,  -733,    61,  7801,  -733,    10,
1440     1210,  -733,  -733,  -733,  -733,   163,  -330,  -733,  8224,    14,
1441     -733,   134,  -733,    88,  9493,  9493,  -733,  9493,  -733,  -733,
1442     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1443     -733,  -733,  -733,  -733,  -733,  -733,  -733,    54,  -733,  -733,
1444     -733,   166,    62,  9916,   171,  -733,  9493,  -733,  -733,  -343,
1445      173,  -733,  6514,   137,  5188,  -733,  6514,  9493,  -733,   -32,
1446     -733,   141,  -733,  -733,   122,    93,    39,    28,    41,   157,
1447      159,   161,   192,   195,    21,   181,  8647,  -733,   183,   182,
1448     -733,  -733,   186,   178,   179,  -733,   190,   191,   184,  9070,
1449      196,  9493,   187,   188,   189,   194,   197,   131,  -733,  -733,
1450       99,  -733,   101,   200,   205,  -733,  -733,  -733,  -733,  -733,
1451     1652,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1452     -376,   173,  8224,    36,  6955,  -733,  -733,  8224,  6514,  -733,
1453      170,  -733,  -733,  -733,    71,  -733,  -733,  9493,   176,  -733,
1454     -733,  9493,   208,  -733,  -733,  -733,  9493,  -733,   137,   163,
1455      106,  -733,  -733,  -733,  5630,  -733,  -733,  -733,  -733,  9493,
1456     9493,  9493,  9493,  9493,  9493,  9493,  9493,  9493,  9493,  9493,
1457     9493,  9493,  9493,  9493,  9493,  9493,  9493,  9493,  -733,  -733,
1458     -733,   210,   180,  -733,  2094,  -733,  -733,  -733,  2094,  -733,
1459     9493,  -733,  -733,   108,  9493,    29,  -733,  -733,  -733,  -733,
1460     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1461     -733,  -733,  9493,  9493,  -733,  -733,  -733,  -733,  -733,  -733,
1462     -733,  8224,  -733,  -733,   139,  -733,  6072,  -733,  -733,   211,
1463      185,  -733,  -733,  -733,   123,   173,   137,  -733,  -733,  -733,
1464     -733,  -733,   122,   122,    93,    93,    39,    39,    39,    39,
1465       28,    28,    41,   157,   159,   161,   192,   195,  9493,  -733,
1466      215,    85,  -733,  2094,  3862,   153,  3420,    76,  -733,    80,
1467     -733,  -733,  -733,  -733,  -733,  7378,  -733,  -733,  -733,  -733,
1468       86,  9493,   214,   180,   216,   185,   193,  6514,   219,   222,
1469     -733,  -733,  3862,   220,  -733,  -733,  -733,  9493,   224,  -733,
1470     -733,  -733,   217,  2536,  9493,  -733,   213,   226,   199,   227,
1471     2978,  -733,   228,  -733,  -733,  8224,  -733,  -733,  -733,    83,
1472     9493,  2536,   220,  -733,  -733,  2094,  -733,   223,   185,  -733,
1473     -733,  2094,   225,  -733,  -733
1474 };
1475
1476   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1477      Performed when YYTABLE does not specify something else to do.  Zero
1478      means the default is an error.  */
1479 static const yytype_int16 yydefact[] =
1480 {
1481        0,   157,   210,   208,   209,   207,   214,   215,   216,   217,
1482      218,   219,   220,   221,   222,   211,   212,   213,   223,   224,
1483      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1484      336,   337,   338,   339,   340,   341,   342,   362,   363,   364,
1485      365,   366,   367,   368,   377,   390,   391,   378,   379,   381,
1486      380,   382,   383,   384,   385,   386,   387,   388,   389,   165,
1487      166,   236,   237,   235,   238,   245,   246,   243,   244,   241,
1488      242,   239,   240,   268,   269,   270,   280,   281,   282,   265,
1489      266,   267,   277,   278,   279,   262,   263,   264,   274,   275,
1490      276,   259,   260,   261,   271,   272,   273,   247,   248,   249,
1491      283,   284,   285,   250,   251,   252,   295,   296,   297,   253,
1492      254,   255,   307,   308,   309,   256,   257,   258,   319,   320,
1493      321,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1494      298,   299,   300,   301,   302,   303,   304,   305,   306,   310,
1495      311,   312,   313,   314,   315,   316,   317,   318,   322,   323,
1496      324,   325,   326,   327,   328,   329,   330,   334,   331,   332,
1497      333,   515,   516,   517,   346,   347,   370,   373,   335,   344,
1498      345,   361,   343,   392,   393,   396,   397,   398,   400,   401,
1499      402,   404,   405,   406,   408,   409,   505,   506,   369,   371,
1500      372,   348,   349,   350,   394,   351,   355,   356,   359,   399,
1501      403,   407,   352,   353,   357,   358,   395,   354,   360,   439,
1502      441,   442,   443,   445,   446,   447,   449,   450,   451,   453,
1503      454,   455,   457,   458,   459,   461,   462,   463,   465,   466,
1504      467,   469,   470,   471,   473,   474,   475,   477,   478,   479,
1505      481,   482,   440,   444,   448,   452,   456,   464,   468,   472,
1506      460,   476,   480,   483,   484,   485,   486,   487,   488,   489,
1507      490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
1508      500,   501,   502,   503,   504,   374,   375,   376,   410,   419,
1509      421,   415,   420,   422,   423,   425,   426,   427,   429,   430,
1510      431,   433,   434,   435,   437,   438,   411,   412,   413,   424,
1511      414,   416,   417,   418,   428,   432,   436,   507,   508,   511,
1512      512,   513,   514,   509,   510,   610,   132,   520,   521,   522,
1513        0,   519,   161,   159,   160,   158,     0,   206,   162,   163,
1514      164,   134,   133,     0,   190,   171,   173,   169,   175,   177,
1515      172,   174,   170,   176,   178,   167,   168,   192,   179,   186,
1516      187,   188,   189,   180,   181,   182,   183,   184,   185,   135,
1517      136,   137,   138,   139,   140,   147,   609,     0,   611,     0,
1518      109,   108,     0,   120,   125,   154,   153,   151,   155,     0,
1519      148,   150,   156,   130,   202,   152,   518,     0,   606,   608,
1520        0,   525,     0,     0,     0,    97,     0,    94,     0,   107,
1521        0,   116,   110,   118,     0,   119,     0,    95,   126,   100,
1522        0,   149,   131,     0,   195,   201,     1,   607,     0,     0,
1523      523,   144,   146,     0,   142,   193,     0,     0,    98,     0,
1524        0,   612,   111,   115,   117,   113,   121,   112,     0,   127,
1525      103,     0,   101,     0,     0,     0,     9,     0,    43,    42,
1526       44,    41,     5,     6,     7,     8,     2,    16,    14,    15,
1527       17,    10,    11,    12,    13,     3,    18,    37,    20,    25,
1528       26,     0,     0,    30,     0,   204,     0,    36,    34,     0,
1529      196,    96,     0,     0,     0,   527,     0,     0,   141,     0,
1530      191,     0,   197,    45,    49,    52,    55,    60,    63,    65,
1531       67,    69,    71,    73,    75,     0,     0,    99,     0,   554,
1532      563,   567,     0,     0,     0,   588,     0,     0,     0,     0,
1533        0,     0,     0,     0,     0,     0,     0,    45,    78,    91,
1534        0,   541,     0,   156,   130,   544,   565,   543,   551,   542,
1535        0,   545,   546,   569,   547,   576,   548,   549,   584,   550,
1536        0,   114,     0,   122,     0,   535,   129,     0,     0,   105,
1537        0,   102,    38,    39,     0,    22,    23,     0,     0,    28,
1538       27,     0,   206,    31,    33,    40,     0,   203,     0,   533,
1539        0,   531,   526,   528,     0,    93,   145,   143,   194,     0,
1540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1541        0,     0,     0,     0,     0,     0,     0,     0,    76,   198,
1542      199,     0,     0,   553,     0,   586,   599,   598,     0,   590,
1543        0,   602,   600,     0,     0,     0,   583,   603,   604,   605,
1544      552,    81,    82,    84,    83,    86,    87,    88,    89,    90,
1545       85,    80,     0,     0,   568,   564,   566,   570,   577,   585,
1546      124,     0,   538,   539,     0,   128,     0,   106,     4,     0,
1547       24,    21,    32,   205,     0,   534,     0,   529,   524,    46,
1548       47,    48,    51,    50,    53,    54,    58,    59,    56,    57,
1549       61,    62,    64,    66,    68,    70,    72,    74,     0,   200,
1550      616,     0,   614,   555,     0,     0,     0,     0,   601,     0,
1551      582,    79,    92,   123,   536,     0,   104,    19,   530,   532,
1552        0,     0,     0,     0,     0,   574,     0,     0,     0,     0,
1553      593,   592,   595,   561,   578,   537,   540,     0,     0,   613,
1554      615,   556,     0,     0,     0,   594,     0,     0,   573,     0,
1555        0,   571,     0,    77,   617,     0,   558,   587,   557,     0,
1556      596,     0,   561,   560,   562,   580,   575,     0,   597,   591,
1557      572,   581,     0,   589,   579
1558 };
1559
1560   /* YYPGOTO[NTERM-NUM].  */
1561 static const yytype_int16 yypgoto[] =
1562 {
1563     -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,  -733,
1564     -733,  -733,  9826,  -733,  -105,   -98,  -156,  -102,   -29,   -28,
1565      -30,   -27,   -26,   -31,  -733,   -82,  -733,  -101,  -733,  -109,
1566     -134,     2,  -733,  -733,  -733,     4,  -733,  -733,  -733,   177,
1567      198,   201,  -733,  -733,  -341,  -733,  -733,  -733,  -733,    94,
1568     -733,   -37,   -46,  -733,     9,  -733,     0,   -66,  -733,  -733,
1569     -733,  -733,   262,  -733,  -733,  -733,  -481,  -149,    11,   -79,
1570     -213,  -733,  -108,  -204,  -732,  -733,  -148,  -733,  -733,  -161,
1571     -160,  -733,  -733,   202,  -274,  -100,  -733,    44,  -733,  -127,
1572     -733,    47,  -733,  -733,  -733,  -733,    49,  -733,  -733,  -733,
1573     -733,  -733,  -733,  -733,  -733,   221,  -733,  -733,  -733,  -733,
1574     -112
1575 };
1576
1577   /* YYDEFGOTO[NTERM-NUM].  */
1578 static const yytype_int16 yydefgoto[] =
1579 {
1580       -1,   465,   466,   467,   659,   468,   469,   470,   471,   472,
1581      473,   474,   527,   476,   494,   495,   496,   497,   498,   499,
1582      500,   501,   502,   503,   504,   528,   688,   529,   642,   530,
1583      586,   531,   367,   558,   443,   532,   369,   370,   371,   401,
1584      402,   403,   372,   373,   374,   375,   376,   377,   423,   424,
1585      378,   379,   380,   381,   477,   426,   478,   429,   414,   415,
1586      479,   384,   385,   386,   486,   419,   484,   485,   580,   581,
1587      556,   654,   535,   536,   537,   538,   539,   614,   714,   747,
1588      738,   739,   740,   748,   540,   541,   542,   543,   741,   718,
1589      544,   545,   742,   762,   546,   547,   548,   694,   618,   696,
1590      722,   736,   737,   549,   387,   388,   389,   398,   550,   691,
1591      692
1592 };
1593
1594   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1595      positive, shift that token.  If negative, reduce the rule whose
1596      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1597 static const yytype_int16 yytable[] =
1598 {
1599      383,   746,   366,   576,   368,   584,   427,   512,   754,   382,
1600      515,   427,   516,   517,   428,   577,   520,   393,   552,   746,
1601        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1602       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1603       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1604       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1605       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1606       52,    53,    54,    55,    56,    57,    58,   656,   394,    61,
1607       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1608       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1609       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1610       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1611      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1612      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1613      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1614      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1615      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1616      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1617      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1618      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1619      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1620      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1621      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1622      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1623      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1624      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1625      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1626      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1627      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1628      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1629      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1630      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1631      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1632      312,   313,   314,   411,   404,   583,   646,   555,   564,   650,
1633      693,   653,   439,   421,   655,   505,   391,   607,   480,   596,
1634      597,   506,   437,   716,   427,   506,   594,   595,   411,   507,
1635      488,   438,   557,   404,   600,   601,   489,   422,   395,   551,
1636      553,   405,   573,   565,   566,   643,   700,   506,   392,   412,
1637      382,   716,   482,   608,   651,   598,   599,   383,   382,   366,
1638      418,   368,   321,   -35,   396,   567,   382,   326,   327,   568,
1639      405,   490,   570,   406,   405,   585,   407,   491,   571,   382,
1640      623,   658,   625,   382,   695,   440,   723,   643,   441,   483,
1641      724,   442,   643,   757,   611,   400,   643,   712,   382,   643,
1642      534,   713,   643,   727,   560,   583,   411,   561,   703,   533,
1643      676,   677,   678,   679,   592,   643,   593,   482,   644,   482,
1644      397,   555,   666,   555,   643,   667,   555,   698,   660,   631,
1645      632,   633,   634,   635,   636,   637,   638,   639,   640,   666,
1646      662,   408,   708,   317,   318,   319,   589,   590,   591,   641,
1647      399,   761,   578,   704,   483,   705,   483,   672,   673,   646,
1648      413,   382,   726,   382,   420,   382,   674,   675,   680,   681,
1649      425,   430,   435,   436,   427,   481,   569,   583,   487,   559,
1650      574,   697,   579,   665,   506,   699,   588,   605,   602,   603,
1651      604,   482,   606,   609,   612,   615,   613,   616,   617,   619,
1652      620,   643,   756,   621,   626,   624,   719,   627,   628,   -36,
1653      534,   701,   702,   629,   -34,   657,   630,   482,   -29,   533,
1654      555,   661,   689,   707,   711,   690,   729,   646,   483,   733,
1655      731,   734,   750,  -559,   744,   745,   751,   382,   732,   764,
1656      509,   755,   763,   682,   684,   683,   687,   728,   685,   710,
1657      686,   433,   390,   587,   483,   715,   752,   709,   720,   664,
1658      759,   753,   760,   382,   647,   735,   721,   648,   432,   649,
1659      431,   730,     0,     0,   555,   434,     0,     0,   417,     0,
1660        0,     0,     0,   715,   534,     0,     0,     0,   534,   482,
1661        0,     0,     0,   533,     0,   749,   743,   533,     0,   585,
1662        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663        0,   758,     0,     0,   555,     0,     0,     0,     0,     0,
1664        0,     0,     0,     0,     0,     0,   483,   717,     0,     0,
1665        0,     0,     0,     0,     0,   382,     0,     0,     0,     0,
1666        0,   411,     0,     0,     0,     0,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,   717,     0,     0,     0,     0,
1668        0,     0,     0,   534,   534,     0,   534,     0,     0,     0,
1669        0,     0,   533,   533,     0,   533,     0,     0,     0,     0,
1670        0,     0,     0,     0,     0,     0,     0,   412,     0,     0,
1671        0,     0,   534,     0,     0,     0,   382,     0,     0,     0,
1672        0,   533,     0,   534,     0,     0,     0,     0,     0,     0,
1673      534,     0,   533,     0,     0,     0,     0,     0,     0,   533,
1674        0,   534,     0,     0,     0,   534,     0,     0,     0,     0,
1675      533,   534,     0,     0,   533,     0,     0,     0,   416,     0,
1676      533,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1677       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1678       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1679       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1680       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1681       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1682       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1683       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1684       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1685       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1686      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1687      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1688      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1689      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1690      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1691      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1692      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1693      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1694      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1695      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1696      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1697      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1698      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1699      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1700      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1701      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1702      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1703      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1704      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1705      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1706      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1707      310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
1708        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710        0,     0,     0,     0,     0,     0,     0,   315,     0,     0,
1711        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712        0,   316,   317,   318,   319,   320,     0,     0,     0,     0,
1713        0,     0,     0,     0,   321,   322,   323,   324,   325,   326,
1714      327,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1716      332,   333,     0,     0,     0,     0,     0,     0,     0,     0,
1717      334,     0,   335,   336,   337,   338,   339,   340,   341,   342,
1718      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1719      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1720      363,   364,   365,     1,     2,     3,     4,     5,     6,     7,
1721        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1722       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1723       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1724       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1725       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1726       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1727       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1728       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1729       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1730       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1731      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1732      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1733      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1734      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1735      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1736      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1737      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1738      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1739      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1740      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1741      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1742      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1743      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1744      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1745      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1746      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1747      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1748      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1749      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1750      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1751      308,   309,   310,   311,   312,   313,   314,     0,     0,   444,
1752      445,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753        0,     0,     0,     0,     0,     0,     0,     0,   446,   447,
1754        0,   508,     0,   509,   510,     0,     0,     0,     0,   511,
1755      448,   449,   450,   451,     0,     0,     0,     0,     0,     0,
1756        0,     0,     0,   316,   317,   318,   319,   320,     0,     0,
1757        0,   452,   453,   454,   455,   456,   321,   322,   323,   324,
1758      325,   326,   327,   512,   513,   514,   515,     0,   516,   517,
1759      518,   519,   520,   521,   522,   523,   524,   525,   328,   329,
1760      330,   331,   332,   333,   457,   458,   459,   460,   461,   462,
1761      463,   464,   334,   526,   335,   336,   337,   338,   339,   340,
1762      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1763      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1764      361,   362,   363,   364,   365,     1,     2,     3,     4,     5,
1765        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1766       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1767       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1768       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1769       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1770       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1771       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1772       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1773       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1774       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1775      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1776      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1777      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1778      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1779      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1780      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1781      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1782      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1783      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1784      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1785      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1786      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1787      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1788      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1789      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1790      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1791      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1792      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1793      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1794      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1795      306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
1796        0,   444,   445,     0,     0,     0,     0,     0,     0,     0,
1797        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1798      446,   447,     0,   508,     0,   509,   645,     0,     0,     0,
1799        0,   511,   448,   449,   450,   451,     0,     0,     0,     0,
1800        0,     0,     0,     0,     0,   316,   317,   318,   319,   320,
1801        0,     0,     0,   452,   453,   454,   455,   456,   321,   322,
1802      323,   324,   325,   326,   327,   512,   513,   514,   515,     0,
1803      516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
1804      328,   329,   330,   331,   332,   333,   457,   458,   459,   460,
1805      461,   462,   463,   464,   334,   526,   335,   336,   337,   338,
1806      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1807      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1808      359,   360,   361,   362,   363,   364,   365,     1,     2,     3,
1809        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1810       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1811       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1812       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1813       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1814       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1815       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1816       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1817       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1818       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1819      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1820      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1821      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1822      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1823      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1824      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1825      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1826      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1827      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1828      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1829      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1830      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1831      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1832      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1833      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1834      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1835      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1836      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1837      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1838      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1839      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1840      314,     0,     0,   444,   445,     0,     0,     0,     0,     0,
1841        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1842        0,     0,   446,   447,     0,   508,     0,   509,     0,     0,
1843        0,     0,     0,   511,   448,   449,   450,   451,     0,     0,
1844        0,     0,     0,     0,     0,     0,     0,   316,   317,   318,
1845      319,   320,     0,     0,     0,   452,   453,   454,   455,   456,
1846      321,   322,   323,   324,   325,   326,   327,   512,   513,   514,
1847      515,     0,   516,   517,   518,   519,   520,   521,   522,   523,
1848      524,   525,   328,   329,   330,   331,   332,   333,   457,   458,
1849      459,   460,   461,   462,   463,   464,   334,   526,   335,   336,
1850      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
1851      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
1852      357,   358,   359,   360,   361,   362,   363,   364,   365,     1,
1853        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1854       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1855       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1856       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1857       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1858       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1859       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1860       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1861       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1862       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1863      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1864      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1865      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1866      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1867      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1868      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1869      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1870      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1871      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1872      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1873      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1874      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1875      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1876      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1877      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1878      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1879      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1880      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1881      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1882      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1883      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1884      312,   313,   314,     0,     0,   444,   445,     0,     0,     0,
1885        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1886        0,     0,     0,     0,   446,   447,     0,   508,     0,   430,
1887        0,     0,     0,     0,     0,   511,   448,   449,   450,   451,
1888        0,     0,     0,     0,     0,     0,     0,     0,     0,   316,
1889      317,   318,   319,   320,     0,     0,     0,   452,   453,   454,
1890      455,   456,   321,   322,   323,   324,   325,   326,   327,   512,
1891      513,   514,   515,     0,   516,   517,   518,   519,   520,   521,
1892      522,   523,   524,   525,   328,   329,   330,   331,   332,   333,
1893      457,   458,   459,   460,   461,   462,   463,   464,   334,   526,
1894      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1895      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1896      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1897      365,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1898       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1899       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1900       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1901       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1902       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1903       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1904       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1905       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1906       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1907      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1908      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1909      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1910      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1911      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1912      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1913      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1914      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1915      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1916      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1917      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1918      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1919      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1920      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1921      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1922      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1923      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1924      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1925      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1926      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1927      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1928      310,   311,   312,   313,   314,     0,     0,   444,   445,     0,
1929        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1930        0,     0,     0,     0,     0,     0,   446,   447,     0,   508,
1931        0,     0,     0,     0,     0,     0,     0,   511,   448,   449,
1932      450,   451,     0,     0,     0,     0,     0,     0,     0,     0,
1933        0,   316,   317,   318,   319,   320,     0,     0,     0,   452,
1934      453,   454,   455,   456,   321,   322,   323,   324,   325,   326,
1935      327,   512,   513,   514,   515,     0,   516,   517,   518,   519,
1936      520,   521,   522,   523,   524,   525,   328,   329,   330,   331,
1937      332,   333,   457,   458,   459,   460,   461,   462,   463,   464,
1938      334,   526,   335,   336,   337,   338,   339,   340,   341,   342,
1939      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1940      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1941      363,   364,   365,     1,     2,     3,     4,     5,     6,     7,
1942        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1943       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1944       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1945       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1946       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1947       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1948       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1949       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1950       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1951       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1952      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1953      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1954      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1955      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1956      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1957      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1958      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1959      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1960      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1961      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1962      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1963      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1964      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1965      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1966      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1967      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1968      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1969      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1970      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1971      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1972      308,   309,   310,   311,   312,   313,   314,     0,     0,   444,
1973      445,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974        0,     0,     0,     0,     0,     0,     0,     0,   446,   447,
1975        0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
1976      448,   449,   450,   451,     0,     0,     0,     0,     0,     0,
1977        0,     0,     0,   316,   317,   318,   319,   320,     0,     0,
1978        0,   452,   453,   454,   455,   456,   321,   322,   323,   324,
1979      325,   326,   327,     0,     0,     0,     0,     0,     0,     0,
1980        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
1981      330,   331,   332,   333,   457,   458,   459,   460,   461,   462,
1982      463,   464,   334,     0,   335,   336,   337,   338,   339,   340,
1983      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1984      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1985      361,   362,   363,   364,   365,     1,     2,     3,     4,     5,
1986        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1987       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1988       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1989       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1990       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1991       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1992       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1993       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1994       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1995       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1996      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1997      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1998      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1999      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2000      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2001      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2002      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2003      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2004      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2005      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2006      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2007      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2008      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2009      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2010      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2011      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2012      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2013      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2014      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2015      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2016      306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
2017        0,   444,   445,     0,     0,     0,     0,     0,     0,     0,
2018        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2019      446,   447,     0,     0,     0,     0,     0,     0,     0,     0,
2020        0,     0,   448,   449,   450,   451,     0,     0,     0,     0,
2021        0,     0,     0,     0,     0,   316,   317,   318,   319,     0,
2022        0,     0,     0,   452,   453,   454,   455,   456,   321,   322,
2023      323,   324,   325,   326,   327,     0,     0,     0,     0,     0,
2024        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2025      328,   329,   330,   331,   332,   333,   457,   458,   459,   460,
2026      461,   462,   463,   464,   334,     0,   335,   336,   337,   338,
2027      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2028      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2029      359,   360,   361,   362,   363,   364,   365,     1,     2,     3,
2030        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2031       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2032       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2033       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2034       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2035       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2036       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2037       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2038       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2039       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2040      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2041      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2042      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2043      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2044      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2045      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2046      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2047      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2048      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2049      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2050      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2051      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2052      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2053      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2054      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2055      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2056      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2057      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2058      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2059      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2060      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2061      314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2062        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064        0,     0,     0,   315,     0,     0,     0,     0,     0,     0,
2065        0,     0,     0,     0,     0,     0,     0,   316,   317,   318,
2066      319,   320,     0,     0,     0,     0,     0,     0,     0,     0,
2067      321,   322,   323,   324,   325,   326,   327,     0,     0,     0,
2068        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2069        0,     0,   328,   329,   330,   331,   332,   333,     0,     0,
2070        0,     0,     0,     0,     0,     0,   334,     0,   335,   336,
2071      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2072      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2073      357,   358,   359,   360,   361,   362,   363,   364,   365,     1,
2074        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2075       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2076       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2077       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2078       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2079       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2080       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2081       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2082       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2083       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2084      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2085      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2086      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2087      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2088      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2089      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2090      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2091      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2092      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2093      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2094      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2095      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2096      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2097      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2098      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2099      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2100      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2101      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2102      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2103      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2104      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2105      312,   313,   314,     0,     0,     0,     0,     0,     0,     0,
2106        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2108        0,     0,     0,     0,     0,   409,     0,     0,     0,     0,
2109        0,     0,     0,     0,     0,     0,     0,     0,     0,   316,
2110      317,   318,   319,     0,     0,     0,     0,     0,     0,     0,
2111        0,   410,   321,   322,   323,   324,   325,   326,   327,     0,
2112        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2113        0,     0,     0,     0,   328,   329,   330,   331,   332,   333,
2114        0,     0,     0,     0,     0,     0,     0,     0,   334,     0,
2115      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2116      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2117      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
2118      365,     1,     2,     3,     4,     5,     6,     7,     8,     9,
2119       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2120       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2121       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2122       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2123       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2124       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2125       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2126       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2127       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2128      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2129      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2130      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2131      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2132      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2133      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2134      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2135      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2136      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2137      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2138      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2139      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2140      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2141      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2142      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2143      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2144      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2145      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2146      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2147      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2148      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2149      310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
2150        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2151        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2152        0,     0,   582,     0,     0,     0,     0,     0,     0,     0,
2153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154        0,   316,   317,   318,   319,     0,     0,     0,     0,     0,
2155        0,     0,     0,     0,   321,   322,   323,   324,   325,   326,
2156      327,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2157        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
2158      332,   333,     0,     0,     0,     0,     0,     0,     0,     0,
2159      334,     0,   335,   336,   337,   338,   339,   340,   341,   342,
2160      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2161      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
2162      363,   364,   365,     1,     2,     3,     4,     5,     6,     7,
2163        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2164       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2165       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2166       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2167       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2168       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2169       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2170       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2171       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2172       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2173      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2174      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2175      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2176      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2177      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2178      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2179      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2180      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2181      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2182      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2183      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2184      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2185      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2186      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2187      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2188      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2189      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2190      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2191      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2192      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2193      308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
2194        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2195        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2196        0,     0,     0,     0,   668,     0,     0,     0,     0,     0,
2197        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2198        0,     0,     0,   316,   317,   318,   319,     0,     0,     0,
2199        0,     0,     0,     0,     0,     0,   321,   322,   323,   324,
2200      325,   326,   327,     0,     0,     0,     0,     0,     0,     0,
2201        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
2202      330,   331,   332,   333,     0,     0,     0,     0,     0,     0,
2203        0,     0,   334,     0,   335,   336,   337,   338,   339,   340,
2204      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2205      351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
2206      361,   362,   363,   364,   365,     1,     2,     3,     4,     5,
2207        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2208       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2209       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2210       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2211       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2212       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2213       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2214       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2215       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2216       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2217      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2218      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2219      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2220      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2221      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2222      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2223      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2224      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2225      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2226      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2227      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2228      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2229      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2230      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2231      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2232      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2233      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2234      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2235      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2236      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2237      306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
2238        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2239        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2240        0,     0,     0,     0,     0,     0,   706,     0,     0,     0,
2241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2242        0,     0,     0,     0,     0,   316,   317,   318,   319,     0,
2243        0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
2244      323,   324,   325,   326,   327,     0,     0,     0,     0,     0,
2245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2246      328,   329,   330,   331,   332,   333,     0,     0,     0,     0,
2247        0,     0,     0,     0,   334,     0,   335,   336,   337,   338,
2248      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2249      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2250      359,   360,   361,   362,   363,   364,   365,     1,     2,     3,
2251        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2252       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2253       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2254       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2255       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2256       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2257       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2258       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2259       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2260       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2261      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2262      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2263      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2264      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2265      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2266      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2267      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2268      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2269      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2270      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2271      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2272      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2273      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2274      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2275      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2276      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2277      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2278      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2279      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2280      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2281      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2282      314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2283        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2284        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2285        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2286        0,     0,     0,     0,     0,     0,     0,   316,   317,   318,
2287      319,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2288      321,   322,   323,   324,   325,   326,   327,     0,     0,     0,
2289        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2290        0,     0,   328,   329,   330,   331,   332,   333,     0,     0,
2291        0,     0,     0,     0,     0,     0,   334,     0,   335,   336,
2292      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2293      347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2294      357,   358,   359,   360,   361,   362,   363,   364,   365,     2,
2295        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2296       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2297       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2298       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2299       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2300       53,    54,    55,    56,    57,    58,     0,     0,    61,    62,
2301       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2302       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2303       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2304       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2305      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2306      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2307      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2308      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2309      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2310      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2311      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2312      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2313      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2314      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2315      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2316      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2317      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2318      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2319      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2320      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2321      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2322      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2323      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2324      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2325      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2326      313,   314,     0,     0,   444,   445,     0,     0,     0,     0,
2327        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2328        0,     0,     0,   446,   447,     0,     0,     0,   554,   652,
2329        0,     0,     0,     0,     0,   448,   449,   450,   451,     0,
2330        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2331        0,     0,     0,     0,     0,     0,   452,   453,   454,   455,
2332      456,   321,     0,     0,     0,     0,   326,   327,     0,     0,
2333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2334        0,     0,     0,     0,     0,     0,     0,     0,     0,   457,
2335      458,   459,   460,   461,   462,   463,   464,     0,     0,     0,
2336        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2337        0,   347,     2,     3,     4,     5,     6,     7,     8,     9,
2338       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2339       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2340       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2341       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2342       50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
2343        0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2344       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2345       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2346       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2347      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2348      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2349      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2350      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2351      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2352      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2353      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2354      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2355      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2356      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2357      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2358      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2359      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2360      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2361      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2362      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2363      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2364      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2365      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2366      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2367      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2368      310,   311,   312,   313,   314,     0,     0,   444,   445,     0,
2369        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2370        0,     0,     0,     0,     0,     0,   446,   447,     0,     0,
2371        0,   554,   725,     0,     0,     0,     0,     0,   448,   449,
2372      450,   451,     0,     0,     0,     0,     0,     0,     0,     0,
2373        0,     0,     0,     0,     0,     0,     0,     0,     0,   452,
2374      453,   454,   455,   456,   321,     0,     0,     0,     0,   326,
2375      327,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2376        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2377        0,     0,   457,   458,   459,   460,   461,   462,   463,   464,
2378        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2379        0,     0,     0,     0,   347,     2,     3,     4,     5,     6,
2380        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2381       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2382       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2383       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2384       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2385       57,    58,     0,     0,    61,    62,    63,    64,    65,    66,
2386       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2387       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2388       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2389       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2390      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2391      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2392      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2393      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2394      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2395      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2396      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2397      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2398      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2399      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2400      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2401      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2402      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2403      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2404      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2405      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2406      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2407      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2408      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2409      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2410      307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
2411      444,   445,     0,     0,     0,     0,     0,     0,     0,     0,
2412        0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
2413      447,     0,     0,   492,     0,     0,     0,     0,     0,     0,
2414        0,   448,   449,   450,   451,     0,     0,     0,     0,     0,
2415        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2416        0,     0,   452,   453,   454,   455,   456,   321,     0,     0,
2417        0,     0,   326,   327,     0,     0,     0,     0,     0,     0,
2418        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2419        0,     0,     0,     0,     0,   457,   458,   459,   460,   461,
2420      462,   463,   464,     0,     0,     0,     0,     0,     0,     0,
2421        0,     0,     0,     0,     0,     0,     0,   347,     2,     3,
2422        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2423       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2424       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2425       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2426       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2427       54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
2428       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2429       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2430       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2431       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2432      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2433      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2434      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2435      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2436      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2437      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2438      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2439      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2440      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2441      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2442      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2443      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2444      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2445      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2446      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2447      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2448      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2449      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2450      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2451      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2452      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2453      314,     0,     0,   444,   445,     0,     0,     0,     0,     0,
2454        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2455        0,     0,   446,   447,     0,     0,     0,   554,     0,     0,
2456        0,     0,     0,     0,   448,   449,   450,   451,     0,     0,
2457        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2458        0,     0,     0,     0,     0,   452,   453,   454,   455,   456,
2459      321,     0,     0,     0,     0,   326,   327,     0,     0,     0,
2460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2461        0,     0,     0,     0,     0,     0,     0,     0,   457,   458,
2462      459,   460,   461,   462,   463,   464,     0,     0,     0,     0,
2463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2464      347,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2465       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2466       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2467       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2468       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2469       51,    52,    53,    54,    55,    56,    57,    58,     0,     0,
2470       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2471       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2472       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2473       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2474      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2475      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2476      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2477      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2478      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2479      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2480      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2481      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2482      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2483      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2484      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2485      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2486      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2487      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2488      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2489      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2490      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2491      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2492      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2493      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2494      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2495      311,   312,   313,   314,     0,     0,   444,   445,     0,     0,
2496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2497        0,     0,     0,     0,     0,   446,   447,     0,     0,   610,
2498        0,     0,     0,     0,     0,     0,     0,   448,   449,   450,
2499      451,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2500        0,     0,     0,     0,     0,     0,     0,     0,   452,   453,
2501      454,   455,   456,   321,     0,     0,     0,     0,   326,   327,
2502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2503        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2504        0,   457,   458,   459,   460,   461,   462,   463,   464,     0,
2505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2506        0,     0,     0,   347,     2,     3,     4,     5,     6,     7,
2507        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2508       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2509       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2510       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2511       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2512       58,     0,     0,    61,    62,    63,    64,    65,    66,    67,
2513       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2514       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2515       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2516       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2517      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2518      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2519      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2520      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2521      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2522      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2523      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2524      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2525      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2526      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2527      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2528      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2529      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2530      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2531      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2532      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2533      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2534      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2535      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2536      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2537      308,   309,   310,   311,   312,   313,   314,     0,     0,   444,
2538      445,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2539        0,     0,     0,     0,     0,     0,     0,     0,   446,   447,
2540        0,     0,     0,     0,     0,     0,     0,     0,     0,   622,
2541      448,   449,   450,   451,     0,     0,     0,     0,     0,     0,
2542        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2543        0,   452,   453,   454,   455,   456,   321,     0,     0,     0,
2544        0,   326,   327,     0,     0,     0,     0,     0,     0,     0,
2545        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2546        0,     0,     0,     0,   457,   458,   459,   460,   461,   462,
2547      463,   464,     0,     0,     0,     0,     0,     0,     0,     0,
2548        0,     0,     0,     0,     0,     0,   347,     2,     3,     4,
2549        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2550       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2551       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2552       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2553       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2554       55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
2555       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2556       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2557       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2558       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2559      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2560      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2561      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2562      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2563      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2564      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2565      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2566      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2567      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2568      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2569      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2570      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2571      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2572      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2573      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2574      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2575      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2576      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2577      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2578      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2579      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2580        0,     0,   444,   445,     0,     0,     0,     0,     0,     0,
2581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2582        0,   446,   447,     0,     0,     0,     0,     0,     0,     0,
2583        0,     0,     0,   448,   449,   450,   451,     0,     0,     0,
2584        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2585        0,     0,     0,     0,   452,   453,   454,   455,   456,   321,
2586        0,     0,     0,     0,   326,   327,     0,     0,     0,     0,
2587        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2588        0,     0,     0,     0,     0,     0,     0,   457,   458,   459,
2589      460,   461,   462,   463,   464,     0,     0,     0,     0,     0,
2590        0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
2591        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2592       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2593       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2594       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2595       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2596       52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
2597       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2598       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2599       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2600       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2601      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2602      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2603      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2604      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2605      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2606      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2607      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2608      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2609      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2610      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2611      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2612      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2613      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2614      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2615      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2616      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2617      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2618      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2619      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2620      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2621      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2622      312,   313,   314,     0,     0,   444,   445,     0,     0,   475,
2623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2624        0,     0,     0,   493,   446,   447,     0,     0,     0,     0,
2625        0,     0,     0,     0,     0,     0,   448,   449,   450,   451,
2626      562,   563,     0,     0,     0,     0,     0,     0,     0,     0,
2627        0,     0,     0,     0,     0,     0,     0,   452,   453,   454,
2628      455,   456,   321,     0,     0,     0,     0,   326,   572,     0,
2629        0,     0,   575,     0,     0,     0,     0,     0,     0,     0,
2630        0,     0,     0,   493,     0,     0,     0,     0,     0,     0,
2631      457,   458,   459,   460,   461,   462,   463,   464,     0,     0,
2632        0,     0,   493,     0,     0,     0,     0,     0,     0,     0,
2633        0,     0,   347,     0,     0,     0,     0,     0,     0,     0,
2634        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2635        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2636        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2637        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2639        0,     0,   663,     0,     0,     0,     0,     0,     0,     0,
2640        0,     0,     0,     0,     0,   669,   670,   671,   493,   493,
2641      493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
2642      493,   493,   493,   493,     0,     0,     0,     0,     0,     0,
2643        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2645        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2647        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2648        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2649        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2651        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2652        0,     0,     0,     0,     0,     0,     0,   493
2653 };
2654
2655 static const yytype_int16 yycheck[] =
2656 {
2657        0,   733,     0,   346,     0,   486,   341,   383,   740,     0,
2658      386,   341,   388,   389,   349,   358,   392,   339,   348,   751,
2659        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2660       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2661       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2662       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2663       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2664       54,    55,    56,    57,    58,    59,    60,   558,   339,    63,
2665       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2666       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2667       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2668       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2669      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2670      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2671      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2672      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2673      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2674      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2675      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2676      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2677      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2678      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2679      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2680      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2681      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2682      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2683      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2684      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2685      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2686      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2687      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2688      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2689      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2690      314,   315,   316,   379,   371,   484,   540,   438,   447,   552,
2691      614,   554,   408,   375,   557,   427,   343,   326,   414,   321,
2692      322,   341,   339,   694,   341,   341,   317,   318,   404,   349,
2693      340,   348,   348,   400,   323,   324,   346,   399,   349,   435,
2694      436,   371,   473,   319,   320,   346,   347,   341,   375,   379,
2695      371,   722,   419,   362,   348,   357,   358,   387,   379,   387,
2696      390,   387,   376,   339,   375,   341,   387,   381,   382,   345,
2697      400,   340,   340,   346,   404,   487,   349,   346,   346,   400,
2698      519,   340,   521,   404,   618,   343,   340,   346,   346,   419,
2699      340,   349,   346,   340,   506,   346,   346,   342,   419,   346,
2700      430,   346,   346,   347,   346,   584,   482,   349,   651,   430,
2701      596,   597,   598,   599,   351,   346,   353,   484,   349,   486,
2702      349,   552,   346,   554,   346,   349,   557,   349,   567,   328,
2703      329,   330,   331,   332,   333,   334,   335,   336,   337,   346,
2704      571,   375,   349,   364,   365,   366,   354,   355,   356,   348,
2705      340,   755,   482,   344,   484,   346,   486,   592,   593,   693,
2706      357,   482,   705,   484,   343,   486,   594,   595,   600,   601,
2707      375,   343,   375,   375,   341,   349,   340,   656,   348,   375,
2708      339,   620,   375,   579,   341,   624,   375,   325,   361,   360,
2709      359,   558,   327,   342,   341,   339,   344,   349,   349,   339,
2710      339,   346,   745,   349,   347,   339,   383,   349,   349,   339,
2711      540,   642,   643,   349,   339,   375,   349,   584,   340,   540,
2712      651,   375,   342,   342,   339,   375,   342,   761,   558,   340,
2713      344,   339,   349,   343,   340,   348,   340,   558,   375,   344,
2714      343,   343,   349,   602,   604,   603,   607,   711,   605,   688,
2715      606,   404,   320,   489,   584,   694,   387,   666,   696,   578,
2716      751,   739,   752,   584,   550,   722,   696,   550,   400,   550,
2717      398,   713,    -1,    -1,   705,   404,    -1,    -1,   387,    -1,
2718       -1,    -1,    -1,   722,   614,    -1,    -1,    -1,   618,   656,
2719       -1,    -1,    -1,   614,    -1,   734,   727,   618,    -1,   711,
2720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2721       -1,   750,    -1,    -1,   745,    -1,    -1,    -1,    -1,    -1,
2722       -1,    -1,    -1,    -1,    -1,    -1,   656,   694,    -1,    -1,
2723       -1,    -1,    -1,    -1,    -1,   656,    -1,    -1,    -1,    -1,
2724       -1,   717,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2725       -1,    -1,    -1,    -1,    -1,   722,    -1,    -1,    -1,    -1,
2726       -1,    -1,    -1,   693,   694,    -1,   696,    -1,    -1,    -1,
2727       -1,    -1,   693,   694,    -1,   696,    -1,    -1,    -1,    -1,
2728       -1,    -1,    -1,    -1,    -1,    -1,    -1,   717,    -1,    -1,
2729       -1,    -1,   722,    -1,    -1,    -1,   717,    -1,    -1,    -1,
2730       -1,   722,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,
2731      740,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,   740,
2732       -1,   751,    -1,    -1,    -1,   755,    -1,    -1,    -1,    -1,
2733      751,   761,    -1,    -1,   755,    -1,    -1,    -1,     0,    -1,
2734      761,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2735       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2736       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2737       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2738       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2739       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2740       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2741       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2742       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2743       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2744      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2745      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2746      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2747      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2748      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2749      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2750      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2751      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2752      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2753      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2754      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2755      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2756      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2757      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2758      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2759      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2760      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2761      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2762      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2763      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2764      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2765      312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,
2766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2767       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2768       -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,    -1,    -1,
2769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2770       -1,   363,   364,   365,   366,   367,    -1,    -1,    -1,    -1,
2771       -1,    -1,    -1,    -1,   376,   377,   378,   379,   380,   381,
2772      382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2773       -1,    -1,    -1,    -1,    -1,    -1,   398,   399,   400,   401,
2774      402,   403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2775      412,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
2776      422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2777      432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2778      442,   443,   444,     3,     4,     5,     6,     7,     8,     9,
2779       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2780       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2781       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2782       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2783       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2784       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2785       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2786       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2787       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2788      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2789      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2790      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2791      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2792      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2793      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2794      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2795      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2796      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2797      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2798      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2799      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2800      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2801      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2802      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2803      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2804      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2805      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2806      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2807      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2808      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2809      310,   311,   312,   313,   314,   315,   316,    -1,    -1,   319,
2810      320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2811       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,   339,
2812       -1,   341,    -1,   343,   344,    -1,    -1,    -1,    -1,   349,
2813      350,   351,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,
2814       -1,    -1,    -1,   363,   364,   365,   366,   367,    -1,    -1,
2815       -1,   371,   372,   373,   374,   375,   376,   377,   378,   379,
2816      380,   381,   382,   383,   384,   385,   386,    -1,   388,   389,
2817      390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
2818      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
2819      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
2820      420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
2821      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
2822      440,   441,   442,   443,   444,     3,     4,     5,     6,     7,
2823        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2824       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2825       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2826       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2827       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2828       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2829       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2830       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2831       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2832       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2833      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2834      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2835      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2836      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2837      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2838      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2839      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2840      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2841      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2842      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2843      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2844      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2845      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2846      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2847      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2848      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2849      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2850      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2851      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2852      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2853      308,   309,   310,   311,   312,   313,   314,   315,   316,    -1,
2854       -1,   319,   320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2856      338,   339,    -1,   341,    -1,   343,   344,    -1,    -1,    -1,
2857       -1,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
2858       -1,    -1,    -1,    -1,    -1,   363,   364,   365,   366,   367,
2859       -1,    -1,    -1,   371,   372,   373,   374,   375,   376,   377,
2860      378,   379,   380,   381,   382,   383,   384,   385,   386,    -1,
2861      388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
2862      398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2863      408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2864      418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
2865      428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
2866      438,   439,   440,   441,   442,   443,   444,     3,     4,     5,
2867        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2868       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2869       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2870       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2871       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2872       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2873       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2874       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2875       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2876       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2877      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2878      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2879      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2880      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2881      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2882      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2883      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2884      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2885      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2886      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2887      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2888      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2889      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2890      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2891      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2892      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2893      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2894      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2895      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2896      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2897      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2898      316,    -1,    -1,   319,   320,    -1,    -1,    -1,    -1,    -1,
2899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2900       -1,    -1,   338,   339,    -1,   341,    -1,   343,    -1,    -1,
2901       -1,    -1,    -1,   349,   350,   351,   352,   353,    -1,    -1,
2902       -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,   364,   365,
2903      366,   367,    -1,    -1,    -1,   371,   372,   373,   374,   375,
2904      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
2905      386,    -1,   388,   389,   390,   391,   392,   393,   394,   395,
2906      396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2907      406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2908      416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
2909      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
2910      436,   437,   438,   439,   440,   441,   442,   443,   444,     3,
2911        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2912       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2913       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2914       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2915       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2916       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2917       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2918       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2919       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2920       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2921      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2922      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2923      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2924      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2925      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2926      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2927      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2928      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2929      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2930      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2931      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2932      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2933      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2934      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2935      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2936      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2937      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2938      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2939      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2940      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2941      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2942      314,   315,   316,    -1,    -1,   319,   320,    -1,    -1,    -1,
2943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2944       -1,    -1,    -1,    -1,   338,   339,    -1,   341,    -1,   343,
2945       -1,    -1,    -1,    -1,    -1,   349,   350,   351,   352,   353,
2946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,
2947      364,   365,   366,   367,    -1,    -1,    -1,   371,   372,   373,
2948      374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
2949      384,   385,   386,    -1,   388,   389,   390,   391,   392,   393,
2950      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2951      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2952      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2953      424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2954      434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2955      444,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2956       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2957       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2958       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2959       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2960       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2961       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2962       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2963       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2964       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2965      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2966      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2967      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2968      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2969      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2970      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2971      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2972      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2973      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2974      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2975      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2976      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2977      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2978      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2979      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2980      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2981      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2982      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2983      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2984      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2985      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2986      312,   313,   314,   315,   316,    -1,    -1,   319,   320,    -1,
2987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2988       -1,    -1,    -1,    -1,    -1,    -1,   338,   339,    -1,   341,
2989       -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,   350,   351,
2990      352,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2991       -1,   363,   364,   365,   366,   367,    -1,    -1,    -1,   371,
2992      372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
2993      382,   383,   384,   385,   386,    -1,   388,   389,   390,   391,
2994      392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
2995      402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
2996      412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2997      422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2998      432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2999      442,   443,   444,     3,     4,     5,     6,     7,     8,     9,
3000       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3001       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3002       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3003       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3004       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3005       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3006       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3007       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3008       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3009      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3010      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3011      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3012      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3013      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3014      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3015      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3016      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3017      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3018      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3019      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3020      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3021      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3022      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3023      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3024      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3025      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3026      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3027      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3028      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3029      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3030      310,   311,   312,   313,   314,   315,   316,    -1,    -1,   319,
3031      320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,   339,
3033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,
3034      350,   351,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,
3035       -1,    -1,    -1,   363,   364,   365,   366,   367,    -1,    -1,
3036       -1,   371,   372,   373,   374,   375,   376,   377,   378,   379,
3037      380,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,   399,
3039      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
3040      410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
3041      420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
3042      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
3043      440,   441,   442,   443,   444,     3,     4,     5,     6,     7,
3044        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
3045       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3046       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3047       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3048       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3049       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3050       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3051       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
3052       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
3053       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3054      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3055      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
3056      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3057      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3058      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3059      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3060      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3061      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3062      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3063      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3064      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3065      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3066      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3067      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3068      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3069      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3070      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3071      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3072      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3073      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3074      308,   309,   310,   311,   312,   313,   314,   315,   316,    -1,
3075       -1,   319,   320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3076       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3077      338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3078       -1,    -1,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
3079       -1,    -1,    -1,    -1,    -1,   363,   364,   365,   366,    -1,
3080       -1,    -1,    -1,   371,   372,   373,   374,   375,   376,   377,
3081      378,   379,   380,   381,   382,    -1,    -1,    -1,    -1,    -1,
3082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3083      398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
3084      408,   409,   410,   411,   412,    -1,   414,   415,   416,   417,
3085      418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
3086      428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
3087      438,   439,   440,   441,   442,   443,   444,     3,     4,     5,
3088        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3089       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3090       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3091       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3092       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3093       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
3094       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3095       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3096       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3097       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3098      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3099      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3100      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3101      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3102      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3103      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3104      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3105      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3106      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3107      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3108      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3109      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3110      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3111      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3112      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3113      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3114      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3115      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3116      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3117      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3118      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3119      316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3120       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3122       -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,    -1,
3123       -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,   364,   365,
3124      366,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3125      376,   377,   378,   379,   380,   381,   382,    -1,    -1,    -1,
3126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3127       -1,    -1,   398,   399,   400,   401,   402,   403,    -1,    -1,
3128       -1,    -1,    -1,    -1,    -1,    -1,   412,    -1,   414,   415,
3129      416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
3130      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
3131      436,   437,   438,   439,   440,   441,   442,   443,   444,     3,
3132        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3133       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3134       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3135       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3136       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3137       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
3138       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3139       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3140       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3141       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3142      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3143      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3144      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3145      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3146      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3147      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3148      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3149      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3150      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3151      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3152      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3153      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3154      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3155      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3156      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3157      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3158      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3159      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3160      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3161      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3162      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3163      314,   315,   316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3166       -1,    -1,    -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,
3167       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,
3168      364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3169       -1,   375,   376,   377,   378,   379,   380,   381,   382,    -1,
3170       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3171       -1,    -1,    -1,    -1,   398,   399,   400,   401,   402,   403,
3172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   412,    -1,
3173      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
3174      424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
3175      434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
3176      444,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3177       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3178       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3179       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3180       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3181       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3182       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3183       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3184       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
3185       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
3186      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3187      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3188      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
3189      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3190      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3191      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3192      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3193      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3194      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3195      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3196      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3197      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3198      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3199      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3200      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3201      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3202      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3203      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3204      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3205      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3206      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3207      312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,
3208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3210       -1,    -1,   344,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3211       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3212       -1,   363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,
3213       -1,    -1,    -1,    -1,   376,   377,   378,   379,   380,   381,
3214      382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3215       -1,    -1,    -1,    -1,    -1,    -1,   398,   399,   400,   401,
3216      402,   403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3217      412,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
3218      422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
3219      432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
3220      442,   443,   444,     3,     4,     5,     6,     7,     8,     9,
3221       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3222       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3223       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3224       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3225       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3226       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3227       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3228       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3229       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3230      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3231      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3232      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3233      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3234      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3235      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3236      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3237      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3238      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3239      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3240      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3241      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3242      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3243      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3244      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3245      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3246      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3247      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3248      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3249      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3250      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3251      310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
3252       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3253       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3254       -1,    -1,    -1,    -1,   344,    -1,    -1,    -1,    -1,    -1,
3255       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3256       -1,    -1,    -1,   363,   364,   365,   366,    -1,    -1,    -1,
3257       -1,    -1,    -1,    -1,    -1,    -1,   376,   377,   378,   379,
3258      380,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3259       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,   399,
3260      400,   401,   402,   403,    -1,    -1,    -1,    -1,    -1,    -1,
3261       -1,    -1,   412,    -1,   414,   415,   416,   417,   418,   419,
3262      420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
3263      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
3264      440,   441,   442,   443,   444,     3,     4,     5,     6,     7,
3265        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
3266       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3267       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3268       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3269       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3270       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3271       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3272       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
3273       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
3274       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3275      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3276      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
3277      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3278      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3279      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3280      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3281      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3282      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3283      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3284      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3285      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3286      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3287      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3288      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3289      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3290      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3291      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3292      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3293      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3294      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3295      308,   309,   310,   311,   312,   313,   314,   315,   316,    -1,
3296       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3297       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3298       -1,    -1,    -1,    -1,    -1,    -1,   344,    -1,    -1,    -1,
3299       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3300       -1,    -1,    -1,    -1,    -1,   363,   364,   365,   366,    -1,
3301       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,   377,
3302      378,   379,   380,   381,   382,    -1,    -1,    -1,    -1,    -1,
3303       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3304      398,   399,   400,   401,   402,   403,    -1,    -1,    -1,    -1,
3305       -1,    -1,    -1,    -1,   412,    -1,   414,   415,   416,   417,
3306      418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
3307      428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
3308      438,   439,   440,   441,   442,   443,   444,     3,     4,     5,
3309        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3310       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3311       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3312       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3313       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3314       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
3315       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3316       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3317       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3318       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3319      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3320      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3321      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3322      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3323      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3324      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3325      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3326      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3327      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3328      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3329      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3330      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3331      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3332      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3333      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3334      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3335      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3336      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3337      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3338      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3339      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3340      316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3341       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3343       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3344       -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,   364,   365,
3345      366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3346      376,   377,   378,   379,   380,   381,   382,    -1,    -1,    -1,
3347       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3348       -1,    -1,   398,   399,   400,   401,   402,   403,    -1,    -1,
3349       -1,    -1,    -1,    -1,    -1,    -1,   412,    -1,   414,   415,
3350      416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
3351      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
3352      436,   437,   438,   439,   440,   441,   442,   443,   444,     4,
3353        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3354       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3355       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3356       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3357       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3358       55,    56,    57,    58,    59,    60,    -1,    -1,    63,    64,
3359       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3360       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3361       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3362       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3363      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3364      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3365      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3366      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3367      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3368      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3369      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3370      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3371      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3372      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3373      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3374      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3375      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3376      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3377      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3378      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3379      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3380      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3381      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3382      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3383      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3384      315,   316,    -1,    -1,   319,   320,    -1,    -1,    -1,    -1,
3385       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3386       -1,    -1,    -1,   338,   339,    -1,    -1,    -1,   343,   344,
3387       -1,    -1,    -1,    -1,    -1,   350,   351,   352,   353,    -1,
3388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3389       -1,    -1,    -1,    -1,    -1,    -1,   371,   372,   373,   374,
3390      375,   376,    -1,    -1,    -1,    -1,   381,   382,    -1,    -1,
3391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
3393      405,   406,   407,   408,   409,   410,   411,    -1,    -1,    -1,
3394       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3395       -1,   426,     4,     5,     6,     7,     8,     9,    10,    11,
3396       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3397       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3398       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3399       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3400       52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
3401       -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3402       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3403       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
3404       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
3405      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3406      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3407      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
3408      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3409      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3410      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3411      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3412      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3413      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3414      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3415      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3416      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3417      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3418      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3419      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3420      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3421      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3422      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3423      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3424      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3425      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3426      312,   313,   314,   315,   316,    -1,    -1,   319,   320,    -1,
3427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3428       -1,    -1,    -1,    -1,    -1,    -1,   338,   339,    -1,    -1,
3429       -1,   343,   344,    -1,    -1,    -1,    -1,    -1,   350,   351,
3430      352,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3431       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
3432      372,   373,   374,   375,   376,    -1,    -1,    -1,    -1,   381,
3433      382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3434       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3435       -1,    -1,   404,   405,   406,   407,   408,   409,   410,   411,
3436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3437       -1,    -1,    -1,    -1,   426,     4,     5,     6,     7,     8,
3438        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3439       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3440       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3441       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3442       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3443       59,    60,    -1,    -1,    63,    64,    65,    66,    67,    68,
3444       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3445       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3446       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3447       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3448      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3449      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3450      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3451      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3452      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3453      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3454      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3455      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3456      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3457      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3458      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3459      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3460      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3461      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3462      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3463      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3464      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3465      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3466      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3467      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3468      309,   310,   311,   312,   313,   314,   315,   316,    -1,    -1,
3469      319,   320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,
3471      339,    -1,    -1,   342,    -1,    -1,    -1,    -1,    -1,    -1,
3472       -1,   350,   351,   352,   353,    -1,    -1,    -1,    -1,    -1,
3473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3474       -1,    -1,   371,   372,   373,   374,   375,   376,    -1,    -1,
3475       -1,    -1,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,
3476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3477       -1,    -1,    -1,    -1,    -1,   404,   405,   406,   407,   408,
3478      409,   410,   411,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3479       -1,    -1,    -1,    -1,    -1,    -1,    -1,   426,     4,     5,
3480        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3481       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3482       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3483       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3484       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3485       56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
3486       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3487       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3488       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3489       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3490      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3491      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3492      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3493      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3494      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3495      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3496      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3497      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3498      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3499      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3500      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3501      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3502      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3503      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3504      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3505      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3506      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3507      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3508      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3509      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3510      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3511      316,    -1,    -1,   319,   320,    -1,    -1,    -1,    -1,    -1,
3512       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3513       -1,    -1,   338,   339,    -1,    -1,    -1,   343,    -1,    -1,
3514       -1,    -1,    -1,    -1,   350,   351,   352,   353,    -1,    -1,
3515       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3516       -1,    -1,    -1,    -1,    -1,   371,   372,   373,   374,   375,
3517      376,    -1,    -1,    -1,    -1,   381,   382,    -1,    -1,    -1,
3518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,   405,
3520      406,   407,   408,   409,   410,   411,    -1,    -1,    -1,    -1,
3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3522      426,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3523       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3524       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3525       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3526       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3527       53,    54,    55,    56,    57,    58,    59,    60,    -1,    -1,
3528       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3529       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3530       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3531       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3532      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3533      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3534      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3535      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3536      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3537      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3538      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3539      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3540      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3541      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3542      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3543      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3544      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3545      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3546      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3547      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3548      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3549      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3550      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3551      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3552      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3553      313,   314,   315,   316,    -1,    -1,   319,   320,    -1,    -1,
3554       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3555       -1,    -1,    -1,    -1,    -1,   338,   339,    -1,    -1,   342,
3556       -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,   352,
3557      353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,   372,
3559      373,   374,   375,   376,    -1,    -1,    -1,    -1,   381,   382,
3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3562       -1,   404,   405,   406,   407,   408,   409,   410,   411,    -1,
3563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3564       -1,    -1,    -1,   426,     4,     5,     6,     7,     8,     9,
3565       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3566       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3567       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3568       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3569       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3570       60,    -1,    -1,    63,    64,    65,    66,    67,    68,    69,
3571       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3572       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3573       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3574      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3575      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3576      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3577      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3578      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3579      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3580      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3581      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3582      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3583      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3584      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3585      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3586      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3587      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3588      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3589      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3590      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3591      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3592      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3593      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3594      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3595      310,   311,   312,   313,   314,   315,   316,    -1,    -1,   319,
3596      320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,   339,
3598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,
3599      350,   351,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,
3600       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3601       -1,   371,   372,   373,   374,   375,   376,    -1,    -1,    -1,
3602       -1,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3604       -1,    -1,    -1,    -1,   404,   405,   406,   407,   408,   409,
3605      410,   411,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3606       -1,    -1,    -1,    -1,    -1,    -1,   426,     4,     5,     6,
3607        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3608       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3609       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3610       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3611       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3612       57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
3613       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3614       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3615       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3616       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3617      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3618      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3619      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3620      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3621      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3622      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3623      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3624      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3625      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3626      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3627      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3628      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3629      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3630      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3631      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3632      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3633      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3634      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3635      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3636      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3637      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3638       -1,    -1,   319,   320,    -1,    -1,    -1,    -1,    -1,    -1,
3639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3640       -1,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3641       -1,    -1,    -1,   350,   351,   352,   353,    -1,    -1,    -1,
3642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3643       -1,    -1,    -1,    -1,   371,   372,   373,   374,   375,   376,
3644       -1,    -1,    -1,    -1,   381,   382,    -1,    -1,    -1,    -1,
3645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3646       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,   405,   406,
3647      407,   408,   409,   410,   411,    -1,    -1,    -1,    -1,    -1,
3648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   426,
3649        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3650       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3651       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3652       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3653       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3654       54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
3655       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3656       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3657       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3658       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3659      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3660      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3661      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3662      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3663      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3664      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3665      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3666      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3667      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3668      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3669      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3670      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3671      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3672      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3673      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3674      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3675      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3676      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3677      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3678      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3679      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3680      314,   315,   316,    -1,    -1,   319,   320,    -1,    -1,   413,
3681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3682       -1,    -1,    -1,   427,   338,   339,    -1,    -1,    -1,    -1,
3683       -1,    -1,    -1,    -1,    -1,    -1,   350,   351,   352,   353,
3684      444,   445,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3685       -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,   372,   373,
3686      374,   375,   376,    -1,    -1,    -1,    -1,   381,   382,    -1,
3687       -1,    -1,   476,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3688       -1,    -1,    -1,   487,    -1,    -1,    -1,    -1,    -1,    -1,
3689      404,   405,   406,   407,   408,   409,   410,   411,    -1,    -1,
3690       -1,    -1,   506,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3691       -1,    -1,   426,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3694       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3695       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3696       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3697       -1,    -1,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3698       -1,    -1,    -1,    -1,    -1,   589,   590,   591,   592,   593,
3699      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
3700      604,   605,   606,   607,    -1,    -1,    -1,    -1,    -1,    -1,
3701       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3709       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3710       -1,    -1,    -1,    -1,    -1,    -1,    -1,   711
3711 };
3712
3713   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3714      symbol of state STATE-NUM.  */
3715 static const yytype_int16 yystos[] =
3716 {
3717        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3718       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3719       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3720       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3721       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3722       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3723       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3724       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3725       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
3726       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
3727      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3728      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3729      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
3730      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3731      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3732      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3733      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3734      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3735      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3736      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3737      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3738      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3739      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3740      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3741      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3742      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3743      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3744      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3745      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3746      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3747      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3748      312,   313,   314,   315,   316,   349,   363,   364,   365,   366,
3749      367,   376,   377,   378,   379,   380,   381,   382,   398,   399,
3750      400,   401,   402,   403,   412,   414,   415,   416,   417,   418,
3751      419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
3752      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
3753      439,   440,   441,   442,   443,   444,   476,   477,   480,   481,
3754      482,   483,   487,   488,   489,   490,   491,   492,   495,   496,
3755      497,   498,   499,   501,   506,   507,   508,   549,   550,   551,
3756      507,   343,   375,   339,   339,   349,   375,   349,   552,   340,
3757      346,   484,   485,   486,   496,   501,   346,   349,   375,   349,
3758      375,   497,   501,   357,   503,   504,     0,   550,   501,   510,
3759      343,   375,   399,   493,   494,   375,   500,   341,   349,   502,
3760      343,   528,   485,   484,   486,   375,   375,   339,   348,   502,
3761      343,   346,   349,   479,   319,   320,   338,   339,   350,   351,
3762      352,   353,   371,   372,   373,   374,   375,   404,   405,   406,
3763      407,   408,   409,   410,   411,   446,   447,   448,   450,   451,
3764      452,   453,   454,   455,   456,   457,   458,   499,   501,   505,
3765      502,   349,   496,   501,   511,   512,   509,   348,   340,   346,
3766      340,   346,   342,   457,   459,   460,   461,   462,   463,   464,
3767      465,   466,   467,   468,   469,   470,   341,   349,   341,   343,
3768      344,   349,   383,   384,   385,   386,   388,   389,   390,   391,
3769      392,   393,   394,   395,   396,   397,   413,   457,   470,   472,
3770      474,   476,   480,   499,   501,   517,   518,   519,   520,   521,
3771      529,   530,   531,   532,   535,   536,   539,   540,   541,   548,
3772      553,   502,   348,   502,   343,   472,   515,   348,   478,   375,
3773      346,   349,   457,   457,   474,   319,   320,   341,   345,   340,
3774      340,   346,   382,   472,   339,   457,   346,   358,   501,   375,
3775      513,   514,   344,   512,   511,   470,   475,   494,   375,   354,
3776      355,   356,   351,   353,   317,   318,   321,   322,   357,   358,
3777      323,   324,   361,   360,   359,   325,   327,   326,   362,   342,
3778      342,   470,   341,   344,   522,   339,   349,   349,   543,   339,
3779      339,   349,   349,   474,   339,   474,   347,   349,   349,   349,
3780      349,   328,   329,   330,   331,   332,   333,   334,   335,   336,
3781      337,   348,   473,   346,   349,   344,   518,   532,   536,   541,
3782      515,   348,   344,   515,   516,   515,   511,   375,   340,   449,
3783      474,   375,   472,   457,   513,   502,   346,   349,   344,   457,
3784      457,   457,   459,   459,   460,   460,   461,   461,   461,   461,
3785      462,   462,   463,   464,   465,   466,   467,   468,   471,   342,
3786      375,   554,   555,   529,   542,   518,   544,   474,   349,   474,
3787      347,   472,   472,   515,   344,   346,   344,   342,   349,   514,
3788      474,   339,   342,   346,   523,   474,   489,   496,   534,   383,
3789      517,   530,   545,   340,   340,   344,   515,   347,   475,   342,
3790      555,   344,   375,   340,   339,   534,   546,   547,   525,   526,
3791      527,   533,   537,   472,   340,   348,   519,   524,   528,   474,
3792      349,   340,   387,   521,   519,   343,   515,   340,   474,   524,
3793      525,   529,   538,   349,   344
3794 };
3795
3796   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
3797 static const yytype_int16 yyr1[] =
3798 {
3799        0,   445,   446,   447,   447,   447,   447,   447,   447,   447,
3800      447,   447,   447,   447,   447,   447,   447,   447,   448,   448,
3801      448,   448,   448,   448,   449,   450,   451,   452,   452,   453,
3802      453,   454,   454,   455,   456,   456,   456,   457,   457,   457,
3803      457,   458,   458,   458,   458,   459,   459,   459,   459,   460,
3804      460,   460,   461,   461,   461,   462,   462,   462,   462,   462,
3805      463,   463,   463,   464,   464,   465,   465,   466,   466,   467,
3806      467,   468,   468,   469,   469,   470,   471,   470,   472,   472,
3807      473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
3808      473,   474,   474,   475,   476,   476,   476,   476,   476,   476,
3809      476,   476,   476,   478,   477,   479,   479,   480,   481,   481,
3810      482,   482,   483,   484,   484,   485,   485,   485,   485,   486,
3811      487,   487,   487,   487,   487,   488,   488,   488,   488,   488,
3812      489,   489,   490,   491,   491,   491,   491,   491,   491,   491,
3813      491,   492,   493,   493,   494,   494,   494,   495,   496,   496,
3814      497,   497,   497,   497,   497,   497,   497,   498,   498,   498,
3815      498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
3816      498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
3817      498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
3818      498,   498,   499,   500,   500,   501,   501,   502,   502,   502,
3819      502,   503,   503,   504,   505,   505,   506,   506,   506,   506,
3820      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3821      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3822      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3823      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3824      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3825      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3826      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3827      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3828      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3829      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3830      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3831      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3832      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3833      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3834      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3835      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3836      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3837      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3838      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3839      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3840      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3841      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3842      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3843      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3844      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3845      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3846      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3847      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3848      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3849      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3850      506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
3851      507,   507,   507,   509,   508,   510,   508,   511,   511,   512,
3852      512,   513,   513,   514,   514,   515,   515,   515,   515,   516,
3853      516,   517,   518,   518,   519,   519,   519,   519,   519,   519,
3854      519,   519,   520,   521,   522,   523,   521,   524,   524,   526,
3855      525,   527,   525,   528,   528,   529,   529,   530,   530,   531,
3856      531,   532,   533,   533,   534,   534,   535,   535,   537,   536,
3857      538,   538,   539,   539,   540,   540,   542,   541,   543,   541,
3858      544,   541,   545,   545,   546,   546,   547,   547,   548,   548,
3859      548,   548,   548,   548,   548,   548,   549,   549,   550,   550,
3860      550,   552,   551,   553,   554,   554,   555,   555
3861 };
3862
3863   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
3864 static const yytype_int8 yyr2[] =
3865 {
3866        0,     2,     1,     1,     3,     1,     1,     1,     1,     1,
3867        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
3868        1,     3,     2,     2,     1,     1,     1,     2,     2,     2,
3869        1,     2,     3,     2,     1,     1,     1,     1,     2,     2,
3870        2,     1,     1,     1,     1,     1,     3,     3,     3,     1,
3871        3,     3,     1,     3,     3,     1,     3,     3,     3,     3,
3872        1,     3,     3,     1,     3,     1,     3,     1,     3,     1,
3873        3,     1,     3,     1,     3,     1,     0,     6,     1,     3,
3874        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3875        1,     1,     3,     1,     2,     2,     4,     2,     3,     4,
3876        2,     3,     4,     0,     6,     2,     3,     2,     1,     1,
3877        2,     3,     3,     2,     3,     2,     1,     2,     1,     1,
3878        1,     3,     4,     6,     5,     1,     2,     3,     5,     4,
3879        1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
3880        1,     4,     1,     3,     1,     3,     1,     1,     1,     2,
3881        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3882        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3883        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3884        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3885        1,     4,     1,     1,     3,     2,     3,     2,     3,     3,
3886        4,     1,     0,     3,     1,     3,     1,     1,     1,     1,
3887        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3888        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3889        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3890        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3891        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3892        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3893        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3894        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3895        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3896        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3897        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3898        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3899        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3900        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3901        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3902        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3903        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3904        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3905        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3906        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3907        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3908        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3909        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3910        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3911        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3912        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3913        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3914        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3915        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3916        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3917        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3918        1,     1,     1,     0,     6,     0,     5,     1,     2,     3,
3919        4,     1,     3,     1,     2,     1,     3,     4,     2,     1,
3920        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3921        1,     1,     2,     2,     0,     0,     5,     1,     1,     0,
3922        2,     0,     2,     2,     3,     1,     2,     1,     2,     1,
3923        2,     5,     3,     1,     1,     4,     1,     2,     0,     8,
3924        0,     1,     3,     2,     1,     2,     0,     6,     0,     8,
3925        0,     7,     1,     1,     1,     0,     2,     3,     2,     2,
3926        2,     3,     2,     2,     2,     2,     1,     2,     1,     1,
3927        1,     0,     3,     5,     1,     3,     1,     4
3928 };
3929
3930
3931 enum { YYENOMEM = -2 };
3932
3933 #define yyerrok         (yyerrstatus = 0)
3934 #define yyclearin       (yychar = YYEMPTY)
3935
3936 #define YYACCEPT        goto yyacceptlab
3937 #define YYABORT         goto yyabortlab
3938 #define YYERROR         goto yyerrorlab
3939
3940
3941 #define YYRECOVERING()  (!!yyerrstatus)
3942
3943 #define YYBACKUP(Token, Value)                                    \
3944   do                                                              \
3945     if (yychar == YYEMPTY)                                        \
3946       {                                                           \
3947         yychar = (Token);                                         \
3948         yylval = (Value);                                         \
3949         YYPOPSTACK (yylen);                                       \
3950         yystate = *yyssp;                                         \
3951         goto yybackup;                                            \
3952       }                                                           \
3953     else                                                          \
3954       {                                                           \
3955         yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3956         YYERROR;                                                  \
3957       }                                                           \
3958   while (0)
3959
3960 /* Backward compatibility with an undocumented macro.
3961    Use YYerror or YYUNDEF. */
3962 #define YYERRCODE YYUNDEF
3963
3964
3965 /* Enable debugging if requested.  */
3966 #if YYDEBUG
3967
3968 # ifndef YYFPRINTF
3969 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3970 #  define YYFPRINTF fprintf
3971 # endif
3972
3973 # define YYDPRINTF(Args)                        \
3974 do {                                            \
3975   if (yydebug)                                  \
3976     YYFPRINTF Args;                             \
3977 } while (0)
3978
3979 /* This macro is provided for backward compatibility. */
3980 # ifndef YY_LOCATION_PRINT
3981 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3982 # endif
3983
3984
3985 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
3986 do {                                                                      \
3987   if (yydebug)                                                            \
3988     {                                                                     \
3989       YYFPRINTF (stderr, "%s ", Title);                                   \
3990       yy_symbol_print (stderr,                                            \
3991                   Kind, Value, pParseContext); \
3992       YYFPRINTF (stderr, "\n");                                           \
3993     }                                                                     \
3994 } while (0)
3995
3996
3997 /*-----------------------------------.
3998 | Print this symbol's value on YYO.  |
3999 `-----------------------------------*/
4000
4001 static void
4002 yy_symbol_value_print (FILE *yyo,
4003                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4004 {
4005   FILE *yyoutput = yyo;
4006   YYUSE (yyoutput);
4007   YYUSE (pParseContext);
4008   if (!yyvaluep)
4009     return;
4010 # ifdef YYPRINT
4011   if (yykind < YYNTOKENS)
4012     YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
4013 # endif
4014   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4015   YYUSE (yykind);
4016   YY_IGNORE_MAYBE_UNINITIALIZED_END
4017 }
4018
4019
4020 /*---------------------------.
4021 | Print this symbol on YYO.  |
4022 `---------------------------*/
4023
4024 static void
4025 yy_symbol_print (FILE *yyo,
4026                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
4027 {
4028   YYFPRINTF (yyo, "%s %s (",
4029              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
4030
4031   yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
4032   YYFPRINTF (yyo, ")");
4033 }
4034
4035 /*------------------------------------------------------------------.
4036 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4037 | TOP (included).                                                   |
4038 `------------------------------------------------------------------*/
4039
4040 static void
4041 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
4042 {
4043   YYFPRINTF (stderr, "Stack now");
4044   for (; yybottom <= yytop; yybottom++)
4045     {
4046       int yybot = *yybottom;
4047       YYFPRINTF (stderr, " %d", yybot);
4048     }
4049   YYFPRINTF (stderr, "\n");
4050 }
4051
4052 # define YY_STACK_PRINT(Bottom, Top)                            \
4053 do {                                                            \
4054   if (yydebug)                                                  \
4055     yy_stack_print ((Bottom), (Top));                           \
4056 } while (0)
4057
4058
4059 /*------------------------------------------------.
4060 | Report that the YYRULE is going to be reduced.  |
4061 `------------------------------------------------*/
4062
4063 static void
4064 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
4065                  int yyrule, glslang::TParseContext* pParseContext)
4066 {
4067   int yylno = yyrline[yyrule];
4068   int yynrhs = yyr2[yyrule];
4069   int yyi;
4070   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
4071              yyrule - 1, yylno);
4072   /* The symbols being reduced.  */
4073   for (yyi = 0; yyi < yynrhs; yyi++)
4074     {
4075       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
4076       yy_symbol_print (stderr,
4077                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
4078                        &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
4079       YYFPRINTF (stderr, "\n");
4080     }
4081 }
4082
4083 # define YY_REDUCE_PRINT(Rule)          \
4084 do {                                    \
4085   if (yydebug)                          \
4086     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
4087 } while (0)
4088
4089 /* Nonzero means print parse trace.  It is left uninitialized so that
4090    multiple parsers can coexist.  */
4091 int yydebug;
4092 #else /* !YYDEBUG */
4093 # define YYDPRINTF(Args) ((void) 0)
4094 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
4095 # define YY_STACK_PRINT(Bottom, Top)
4096 # define YY_REDUCE_PRINT(Rule)
4097 #endif /* !YYDEBUG */
4098
4099
4100 /* YYINITDEPTH -- initial size of the parser's stacks.  */
4101 #ifndef YYINITDEPTH
4102 # define YYINITDEPTH 200
4103 #endif
4104
4105 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4106    if the built-in stack extension method is used).
4107
4108    Do not make this value too large; the results are undefined if
4109    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4110    evaluated with infinite-precision integer arithmetic.  */
4111
4112 #ifndef YYMAXDEPTH
4113 # define YYMAXDEPTH 10000
4114 #endif
4115
4116
4117 /* Context of a parse error.  */
4118 typedef struct
4119 {
4120   yy_state_t *yyssp;
4121   yysymbol_kind_t yytoken;
4122 } yypcontext_t;
4123
4124 /* Put in YYARG at most YYARGN of the expected tokens given the
4125    current YYCTX, and return the number of tokens stored in YYARG.  If
4126    YYARG is null, return the number of expected tokens (guaranteed to
4127    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
4128    Return 0 if there are more than YYARGN expected tokens, yet fill
4129    YYARG up to YYARGN. */
4130 static int
4131 yypcontext_expected_tokens (const yypcontext_t *yyctx,
4132                             yysymbol_kind_t yyarg[], int yyargn)
4133 {
4134   /* Actual size of YYARG. */
4135   int yycount = 0;
4136   int yyn = yypact[+*yyctx->yyssp];
4137   if (!yypact_value_is_default (yyn))
4138     {
4139       /* Start YYX at -YYN if negative to avoid negative indexes in
4140          YYCHECK.  In other words, skip the first -YYN actions for
4141          this state because they are default actions.  */
4142       int yyxbegin = yyn < 0 ? -yyn : 0;
4143       /* Stay within bounds of both yycheck and yytname.  */
4144       int yychecklim = YYLAST - yyn + 1;
4145       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4146       int yyx;
4147       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4148         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
4149             && !yytable_value_is_error (yytable[yyx + yyn]))
4150           {
4151             if (!yyarg)
4152               ++yycount;
4153             else if (yycount == yyargn)
4154               return 0;
4155             else
4156               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
4157           }
4158     }
4159   if (yyarg && yycount == 0 && 0 < yyargn)
4160     yyarg[0] = YYSYMBOL_YYEMPTY;
4161   return yycount;
4162 }
4163
4164
4165
4166
4167 #ifndef yystrlen
4168 # if defined __GLIBC__ && defined _STRING_H
4169 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
4170 # else
4171 /* Return the length of YYSTR.  */
4172 static YYPTRDIFF_T
4173 yystrlen (const char *yystr)
4174 {
4175   YYPTRDIFF_T yylen;
4176   for (yylen = 0; yystr[yylen]; yylen++)
4177     continue;
4178   return yylen;
4179 }
4180 # endif
4181 #endif
4182
4183 #ifndef yystpcpy
4184 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4185 #  define yystpcpy stpcpy
4186 # else
4187 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4188    YYDEST.  */
4189 static char *
4190 yystpcpy (char *yydest, const char *yysrc)
4191 {
4192   char *yyd = yydest;
4193   const char *yys = yysrc;
4194
4195   while ((*yyd++ = *yys++) != '\0')
4196     continue;
4197
4198   return yyd - 1;
4199 }
4200 # endif
4201 #endif
4202
4203 #ifndef yytnamerr
4204 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4205    quotes and backslashes, so that it's suitable for yyerror.  The
4206    heuristic is that double-quoting is unnecessary unless the string
4207    contains an apostrophe, a comma, or backslash (other than
4208    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
4209    null, do not copy; instead, return the length of what the result
4210    would have been.  */
4211 static YYPTRDIFF_T
4212 yytnamerr (char *yyres, const char *yystr)
4213 {
4214   if (*yystr == '"')
4215     {
4216       YYPTRDIFF_T yyn = 0;
4217       char const *yyp = yystr;
4218       for (;;)
4219         switch (*++yyp)
4220           {
4221           case '\'':
4222           case ',':
4223             goto do_not_strip_quotes;
4224
4225           case '\\':
4226             if (*++yyp != '\\')
4227               goto do_not_strip_quotes;
4228             else
4229               goto append;
4230
4231           append:
4232           default:
4233             if (yyres)
4234               yyres[yyn] = *yyp;
4235             yyn++;
4236             break;
4237
4238           case '"':
4239             if (yyres)
4240               yyres[yyn] = '\0';
4241             return yyn;
4242           }
4243     do_not_strip_quotes: ;
4244     }
4245
4246   if (yyres)
4247     return yystpcpy (yyres, yystr) - yyres;
4248   else
4249     return yystrlen (yystr);
4250 }
4251 #endif
4252
4253
4254 static int
4255 yy_syntax_error_arguments (const yypcontext_t *yyctx,
4256                            yysymbol_kind_t yyarg[], int yyargn)
4257 {
4258   /* Actual size of YYARG. */
4259   int yycount = 0;
4260   /* There are many possibilities here to consider:
4261      - If this state is a consistent state with a default action, then
4262        the only way this function was invoked is if the default action
4263        is an error action.  In that case, don't check for expected
4264        tokens because there are none.
4265      - The only way there can be no lookahead present (in yychar) is if
4266        this state is a consistent state with a default action.  Thus,
4267        detecting the absence of a lookahead is sufficient to determine
4268        that there is no unexpected or expected token to report.  In that
4269        case, just report a simple "syntax error".
4270      - Don't assume there isn't a lookahead just because this state is a
4271        consistent state with a default action.  There might have been a
4272        previous inconsistent state, consistent state with a non-default
4273        action, or user semantic action that manipulated yychar.
4274      - Of course, the expected token list depends on states to have
4275        correct lookahead information, and it depends on the parser not
4276        to perform extra reductions after fetching a lookahead from the
4277        scanner and before detecting a syntax error.  Thus, state merging
4278        (from LALR or IELR) and default reductions corrupt the expected
4279        token list.  However, the list is correct for canonical LR with
4280        one exception: it will still contain any token that will not be
4281        accepted due to an error action in a later state.
4282   */
4283   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
4284     {
4285       int yyn;
4286       if (yyarg)
4287         yyarg[yycount] = yyctx->yytoken;
4288       ++yycount;
4289       yyn = yypcontext_expected_tokens (yyctx,
4290                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4291       if (yyn == YYENOMEM)
4292         return YYENOMEM;
4293       else
4294         yycount += yyn;
4295     }
4296   return yycount;
4297 }
4298
4299 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
4300    about the unexpected token YYTOKEN for the state stack whose top is
4301    YYSSP.
4302
4303    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
4304    not large enough to hold the message.  In that case, also set
4305    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
4306    required number of bytes is too large to store.  */
4307 static int
4308 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
4309                 const yypcontext_t *yyctx)
4310 {
4311   enum { YYARGS_MAX = 5 };
4312   /* Internationalized format string. */
4313   const char *yyformat = YY_NULLPTR;
4314   /* Arguments of yyformat: reported tokens (one for the "unexpected",
4315      one per "expected"). */
4316   yysymbol_kind_t yyarg[YYARGS_MAX];
4317   /* Cumulated lengths of YYARG.  */
4318   YYPTRDIFF_T yysize = 0;
4319
4320   /* Actual size of YYARG. */
4321   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
4322   if (yycount == YYENOMEM)
4323     return YYENOMEM;
4324
4325   switch (yycount)
4326     {
4327 #define YYCASE_(N, S)                       \
4328       case N:                               \
4329         yyformat = S;                       \
4330         break
4331     default: /* Avoid compiler warnings. */
4332       YYCASE_(0, YY_("syntax error"));
4333       YYCASE_(1, YY_("syntax error, unexpected %s"));
4334       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
4335       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
4336       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
4337       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4338 #undef YYCASE_
4339     }
4340
4341   /* Compute error message size.  Don't count the "%s"s, but reserve
4342      room for the terminator.  */
4343   yysize = yystrlen (yyformat) - 2 * yycount + 1;
4344   {
4345     int yyi;
4346     for (yyi = 0; yyi < yycount; ++yyi)
4347       {
4348         YYPTRDIFF_T yysize1
4349           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
4350         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
4351           yysize = yysize1;
4352         else
4353           return YYENOMEM;
4354       }
4355   }
4356
4357   if (*yymsg_alloc < yysize)
4358     {
4359       *yymsg_alloc = 2 * yysize;
4360       if (! (yysize <= *yymsg_alloc
4361              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
4362         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
4363       return -1;
4364     }
4365
4366   /* Avoid sprintf, as that infringes on the user's name space.
4367      Don't have undefined behavior even if the translation
4368      produced a string with the wrong number of "%s"s.  */
4369   {
4370     char *yyp = *yymsg;
4371     int yyi = 0;
4372     while ((*yyp = *yyformat) != '\0')
4373       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4374         {
4375           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
4376           yyformat += 2;
4377         }
4378       else
4379         {
4380           ++yyp;
4381           ++yyformat;
4382         }
4383   }
4384   return 0;
4385 }
4386
4387
4388 /*-----------------------------------------------.
4389 | Release the memory associated to this symbol.  |
4390 `-----------------------------------------------*/
4391
4392 static void
4393 yydestruct (const char *yymsg,
4394             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
4395 {
4396   YYUSE (yyvaluep);
4397   YYUSE (pParseContext);
4398   if (!yymsg)
4399     yymsg = "Deleting";
4400   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4401
4402   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4403   YYUSE (yykind);
4404   YY_IGNORE_MAYBE_UNINITIALIZED_END
4405 }
4406
4407
4408
4409
4410
4411
4412 /*----------.
4413 | yyparse.  |
4414 `----------*/
4415
4416 int
4417 yyparse (glslang::TParseContext* pParseContext)
4418 {
4419 /* Lookahead token kind.  */
4420 int yychar;
4421
4422
4423 /* The semantic value of the lookahead symbol.  */
4424 /* Default value used for initialization, for pacifying older GCCs
4425    or non-GCC compilers.  */
4426 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
4427 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4428
4429     /* Number of syntax errors so far.  */
4430     int yynerrs = 0;
4431
4432     yy_state_fast_t yystate = 0;
4433     /* Number of tokens to shift before error messages enabled.  */
4434     int yyerrstatus = 0;
4435
4436     /* Refer to the stacks through separate pointers, to allow yyoverflow
4437        to reallocate them elsewhere.  */
4438
4439     /* Their size.  */
4440     YYPTRDIFF_T yystacksize = YYINITDEPTH;
4441
4442     /* The state stack: array, bottom, top.  */
4443     yy_state_t yyssa[YYINITDEPTH];
4444     yy_state_t *yyss = yyssa;
4445     yy_state_t *yyssp = yyss;
4446
4447     /* The semantic value stack: array, bottom, top.  */
4448     YYSTYPE yyvsa[YYINITDEPTH];
4449     YYSTYPE *yyvs = yyvsa;
4450     YYSTYPE *yyvsp = yyvs;
4451
4452   int yyn;
4453   /* The return value of yyparse.  */
4454   int yyresult;
4455   /* Lookahead symbol kind.  */
4456   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4457   /* The variables used to return semantic value and location from the
4458      action routines.  */
4459   YYSTYPE yyval;
4460
4461   /* Buffer for error messages, and its allocated size.  */
4462   char yymsgbuf[128];
4463   char *yymsg = yymsgbuf;
4464   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
4465
4466 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
4467
4468   /* The number of symbols on the RHS of the reduced rule.
4469      Keep to zero when no symbol should be popped.  */
4470   int yylen = 0;
4471
4472   YYDPRINTF ((stderr, "Starting parse\n"));
4473
4474   yychar = YYEMPTY; /* Cause a token to be read.  */
4475   goto yysetstate;
4476
4477
4478 /*------------------------------------------------------------.
4479 | yynewstate -- push a new state, which is found in yystate.  |
4480 `------------------------------------------------------------*/
4481 yynewstate:
4482   /* In all cases, when you get here, the value and location stacks
4483      have just been pushed.  So pushing a state here evens the stacks.  */
4484   yyssp++;
4485
4486
4487 /*--------------------------------------------------------------------.
4488 | yysetstate -- set current state (the top of the stack) to yystate.  |
4489 `--------------------------------------------------------------------*/
4490 yysetstate:
4491   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4492   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
4493   YY_IGNORE_USELESS_CAST_BEGIN
4494   *yyssp = YY_CAST (yy_state_t, yystate);
4495   YY_IGNORE_USELESS_CAST_END
4496   YY_STACK_PRINT (yyss, yyssp);
4497
4498   if (yyss + yystacksize - 1 <= yyssp)
4499 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
4500     goto yyexhaustedlab;
4501 #else
4502     {
4503       /* Get the current used size of the three stacks, in elements.  */
4504       YYPTRDIFF_T yysize = yyssp - yyss + 1;
4505
4506 # if defined yyoverflow
4507       {
4508         /* Give user a chance to reallocate the stack.  Use copies of
4509            these so that the &'s don't force the real ones into
4510            memory.  */
4511         yy_state_t *yyss1 = yyss;
4512         YYSTYPE *yyvs1 = yyvs;
4513
4514         /* Each stack pointer address is followed by the size of the
4515            data in use in that stack, in bytes.  This used to be a
4516            conditional around just the two extra args, but that might
4517            be undefined if yyoverflow is a macro.  */
4518         yyoverflow (YY_("memory exhausted"),
4519                     &yyss1, yysize * YYSIZEOF (*yyssp),
4520                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
4521                     &yystacksize);
4522         yyss = yyss1;
4523         yyvs = yyvs1;
4524       }
4525 # else /* defined YYSTACK_RELOCATE */
4526       /* Extend the stack our own way.  */
4527       if (YYMAXDEPTH <= yystacksize)
4528         goto yyexhaustedlab;
4529       yystacksize *= 2;
4530       if (YYMAXDEPTH < yystacksize)
4531         yystacksize = YYMAXDEPTH;
4532
4533       {
4534         yy_state_t *yyss1 = yyss;
4535         union yyalloc *yyptr =
4536           YY_CAST (union yyalloc *,
4537                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
4538         if (! yyptr)
4539           goto yyexhaustedlab;
4540         YYSTACK_RELOCATE (yyss_alloc, yyss);
4541         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4542 #  undef YYSTACK_RELOCATE
4543         if (yyss1 != yyssa)
4544           YYSTACK_FREE (yyss1);
4545       }
4546 # endif
4547
4548       yyssp = yyss + yysize - 1;
4549       yyvsp = yyvs + yysize - 1;
4550
4551       YY_IGNORE_USELESS_CAST_BEGIN
4552       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
4553                   YY_CAST (long, yystacksize)));
4554       YY_IGNORE_USELESS_CAST_END
4555
4556       if (yyss + yystacksize - 1 <= yyssp)
4557         YYABORT;
4558     }
4559 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
4560
4561   if (yystate == YYFINAL)
4562     YYACCEPT;
4563
4564   goto yybackup;
4565
4566
4567 /*-----------.
4568 | yybackup.  |
4569 `-----------*/
4570 yybackup:
4571   /* Do appropriate processing given the current state.  Read a
4572      lookahead token if we need one and don't already have one.  */
4573
4574   /* First try to decide what to do without reference to lookahead token.  */
4575   yyn = yypact[yystate];
4576   if (yypact_value_is_default (yyn))
4577     goto yydefault;
4578
4579   /* Not known => get a lookahead token if don't already have one.  */
4580
4581   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
4582   if (yychar == YYEMPTY)
4583     {
4584       YYDPRINTF ((stderr, "Reading a token\n"));
4585       yychar = yylex (&yylval, parseContext);
4586     }
4587
4588   if (yychar <= YYEOF)
4589     {
4590       yychar = YYEOF;
4591       yytoken = YYSYMBOL_YYEOF;
4592       YYDPRINTF ((stderr, "Now at end of input.\n"));
4593     }
4594   else if (yychar == YYerror)
4595     {
4596       /* The scanner already issued an error message, process directly
4597          to error recovery.  But do not keep the error token as
4598          lookahead, it is too special and may lead us to an endless
4599          loop in error recovery. */
4600       yychar = YYUNDEF;
4601       yytoken = YYSYMBOL_YYerror;
4602       goto yyerrlab1;
4603     }
4604   else
4605     {
4606       yytoken = YYTRANSLATE (yychar);
4607       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4608     }
4609
4610   /* If the proper action on seeing token YYTOKEN is to reduce or to
4611      detect an error, take that action.  */
4612   yyn += yytoken;
4613   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4614     goto yydefault;
4615   yyn = yytable[yyn];
4616   if (yyn <= 0)
4617     {
4618       if (yytable_value_is_error (yyn))
4619         goto yyerrlab;
4620       yyn = -yyn;
4621       goto yyreduce;
4622     }
4623
4624   /* Count tokens shifted since error; after three, turn off error
4625      status.  */
4626   if (yyerrstatus)
4627     yyerrstatus--;
4628
4629   /* Shift the lookahead token.  */
4630   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4631   yystate = yyn;
4632   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4633   *++yyvsp = yylval;
4634   YY_IGNORE_MAYBE_UNINITIALIZED_END
4635
4636   /* Discard the shifted token.  */
4637   yychar = YYEMPTY;
4638   goto yynewstate;
4639
4640
4641 /*-----------------------------------------------------------.
4642 | yydefault -- do the default action for the current state.  |
4643 `-----------------------------------------------------------*/
4644 yydefault:
4645   yyn = yydefact[yystate];
4646   if (yyn == 0)
4647     goto yyerrlab;
4648   goto yyreduce;
4649
4650
4651 /*-----------------------------.
4652 | yyreduce -- do a reduction.  |
4653 `-----------------------------*/
4654 yyreduce:
4655   /* yyn is the number of a rule to reduce with.  */
4656   yylen = yyr2[yyn];
4657
4658   /* If YYLEN is nonzero, implement the default value of the action:
4659      '$$ = $1'.
4660
4661      Otherwise, the following line sets YYVAL to garbage.
4662      This behavior is undocumented and Bison
4663      users should not rely upon it.  Assigning to YYVAL
4664      unconditionally makes the parser a bit smaller, and it avoids a
4665      GCC warning that YYVAL may be used uninitialized.  */
4666   yyval = yyvsp[1-yylen];
4667
4668
4669   YY_REDUCE_PRINT (yyn);
4670   switch (yyn)
4671     {
4672   case 2: /* variable_identifier: IDENTIFIER  */
4673 #line 371 "MachineIndependent/glslang.y"
4674                  {
4675         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4676     }
4677 #line 4678 "MachineIndependent/glslang_tab.cpp"
4678     break;
4679
4680   case 3: /* primary_expression: variable_identifier  */
4681 #line 377 "MachineIndependent/glslang.y"
4682                           {
4683         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4684     }
4685 #line 4686 "MachineIndependent/glslang_tab.cpp"
4686     break;
4687
4688   case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN  */
4689 #line 380 "MachineIndependent/glslang.y"
4690                                         {
4691         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4692         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4693             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4694     }
4695 #line 4696 "MachineIndependent/glslang_tab.cpp"
4696     break;
4697
4698   case 5: /* primary_expression: FLOATCONSTANT  */
4699 #line 385 "MachineIndependent/glslang.y"
4700                     {
4701         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4702     }
4703 #line 4704 "MachineIndependent/glslang_tab.cpp"
4704     break;
4705
4706   case 6: /* primary_expression: INTCONSTANT  */
4707 #line 388 "MachineIndependent/glslang.y"
4708                   {
4709         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4710     }
4711 #line 4712 "MachineIndependent/glslang_tab.cpp"
4712     break;
4713
4714   case 7: /* primary_expression: UINTCONSTANT  */
4715 #line 391 "MachineIndependent/glslang.y"
4716                    {
4717         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4718         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4719     }
4720 #line 4721 "MachineIndependent/glslang_tab.cpp"
4721     break;
4722
4723   case 8: /* primary_expression: BOOLCONSTANT  */
4724 #line 395 "MachineIndependent/glslang.y"
4725                    {
4726         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4727     }
4728 #line 4729 "MachineIndependent/glslang_tab.cpp"
4729     break;
4730
4731   case 9: /* primary_expression: STRING_LITERAL  */
4732 #line 399 "MachineIndependent/glslang.y"
4733                      {
4734         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
4735     }
4736 #line 4737 "MachineIndependent/glslang_tab.cpp"
4737     break;
4738
4739   case 10: /* primary_expression: INT32CONSTANT  */
4740 #line 402 "MachineIndependent/glslang.y"
4741                     {
4742         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4743         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4744     }
4745 #line 4746 "MachineIndependent/glslang_tab.cpp"
4746     break;
4747
4748   case 11: /* primary_expression: UINT32CONSTANT  */
4749 #line 406 "MachineIndependent/glslang.y"
4750                      {
4751         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4752         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4753     }
4754 #line 4755 "MachineIndependent/glslang_tab.cpp"
4755     break;
4756
4757   case 12: /* primary_expression: INT64CONSTANT  */
4758 #line 410 "MachineIndependent/glslang.y"
4759                     {
4760         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4761         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4762     }
4763 #line 4764 "MachineIndependent/glslang_tab.cpp"
4764     break;
4765
4766   case 13: /* primary_expression: UINT64CONSTANT  */
4767 #line 414 "MachineIndependent/glslang.y"
4768                      {
4769         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4770         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4771     }
4772 #line 4773 "MachineIndependent/glslang_tab.cpp"
4773     break;
4774
4775   case 14: /* primary_expression: INT16CONSTANT  */
4776 #line 418 "MachineIndependent/glslang.y"
4777                     {
4778         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4779         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4780     }
4781 #line 4782 "MachineIndependent/glslang_tab.cpp"
4782     break;
4783
4784   case 15: /* primary_expression: UINT16CONSTANT  */
4785 #line 422 "MachineIndependent/glslang.y"
4786                      {
4787         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4788         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4789     }
4790 #line 4791 "MachineIndependent/glslang_tab.cpp"
4791     break;
4792
4793   case 16: /* primary_expression: DOUBLECONSTANT  */
4794 #line 426 "MachineIndependent/glslang.y"
4795                      {
4796         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
4797         if (! parseContext.symbolTable.atBuiltInLevel())
4798             parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4799         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4800     }
4801 #line 4802 "MachineIndependent/glslang_tab.cpp"
4802     break;
4803
4804   case 17: /* primary_expression: FLOAT16CONSTANT  */
4805 #line 432 "MachineIndependent/glslang.y"
4806                       {
4807         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4808         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4809     }
4810 #line 4811 "MachineIndependent/glslang_tab.cpp"
4811     break;
4812
4813   case 18: /* postfix_expression: primary_expression  */
4814 #line 440 "MachineIndependent/glslang.y"
4815                          {
4816         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4817     }
4818 #line 4819 "MachineIndependent/glslang_tab.cpp"
4819     break;
4820
4821   case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET  */
4822 #line 443 "MachineIndependent/glslang.y"
4823                                                                        {
4824         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4825     }
4826 #line 4827 "MachineIndependent/glslang_tab.cpp"
4827     break;
4828
4829   case 20: /* postfix_expression: function_call  */
4830 #line 446 "MachineIndependent/glslang.y"
4831                     {
4832         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4833     }
4834 #line 4835 "MachineIndependent/glslang_tab.cpp"
4835     break;
4836
4837   case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER  */
4838 #line 449 "MachineIndependent/glslang.y"
4839                                         {
4840         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4841     }
4842 #line 4843 "MachineIndependent/glslang_tab.cpp"
4843     break;
4844
4845   case 22: /* postfix_expression: postfix_expression INC_OP  */
4846 #line 452 "MachineIndependent/glslang.y"
4847                                 {
4848         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4849         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4850         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4851     }
4852 #line 4853 "MachineIndependent/glslang_tab.cpp"
4853     break;
4854
4855   case 23: /* postfix_expression: postfix_expression DEC_OP  */
4856 #line 457 "MachineIndependent/glslang.y"
4857                                 {
4858         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4859         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4860         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4861     }
4862 #line 4863 "MachineIndependent/glslang_tab.cpp"
4863     break;
4864
4865   case 24: /* integer_expression: expression  */
4866 #line 465 "MachineIndependent/glslang.y"
4867                  {
4868         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4869         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4870     }
4871 #line 4872 "MachineIndependent/glslang_tab.cpp"
4872     break;
4873
4874   case 25: /* function_call: function_call_or_method  */
4875 #line 472 "MachineIndependent/glslang.y"
4876                               {
4877         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4878         delete (yyvsp[0].interm).function;
4879     }
4880 #line 4881 "MachineIndependent/glslang_tab.cpp"
4881     break;
4882
4883   case 26: /* function_call_or_method: function_call_generic  */
4884 #line 479 "MachineIndependent/glslang.y"
4885                             {
4886         (yyval.interm) = (yyvsp[0].interm);
4887     }
4888 #line 4889 "MachineIndependent/glslang_tab.cpp"
4889     break;
4890
4891   case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN  */
4892 #line 485 "MachineIndependent/glslang.y"
4893                                                        {
4894         (yyval.interm) = (yyvsp[-1].interm);
4895         (yyval.interm).loc = (yyvsp[0].lex).loc;
4896     }
4897 #line 4898 "MachineIndependent/glslang_tab.cpp"
4898     break;
4899
4900   case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN  */
4901 #line 489 "MachineIndependent/glslang.y"
4902                                                      {
4903         (yyval.interm) = (yyvsp[-1].interm);
4904         (yyval.interm).loc = (yyvsp[0].lex).loc;
4905     }
4906 #line 4907 "MachineIndependent/glslang_tab.cpp"
4907     break;
4908
4909   case 29: /* function_call_header_no_parameters: function_call_header VOID  */
4910 #line 496 "MachineIndependent/glslang.y"
4911                                 {
4912         (yyval.interm) = (yyvsp[-1].interm);
4913     }
4914 #line 4915 "MachineIndependent/glslang_tab.cpp"
4915     break;
4916
4917   case 30: /* function_call_header_no_parameters: function_call_header  */
4918 #line 499 "MachineIndependent/glslang.y"
4919                            {
4920         (yyval.interm) = (yyvsp[0].interm);
4921     }
4922 #line 4923 "MachineIndependent/glslang_tab.cpp"
4923     break;
4924
4925   case 31: /* function_call_header_with_parameters: function_call_header assignment_expression  */
4926 #line 505 "MachineIndependent/glslang.y"
4927                                                  {
4928         TParameter param = { 0, new TType };
4929         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4930         (yyvsp[-1].interm).function->addParameter(param);
4931         (yyval.interm).function = (yyvsp[-1].interm).function;
4932         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4933     }
4934 #line 4935 "MachineIndependent/glslang_tab.cpp"
4935     break;
4936
4937   case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression  */
4938 #line 512 "MachineIndependent/glslang.y"
4939                                                                        {
4940         TParameter param = { 0, new TType };
4941         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4942         (yyvsp[-2].interm).function->addParameter(param);
4943         (yyval.interm).function = (yyvsp[-2].interm).function;
4944         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4945     }
4946 #line 4947 "MachineIndependent/glslang_tab.cpp"
4947     break;
4948
4949   case 33: /* function_call_header: function_identifier LEFT_PAREN  */
4950 #line 522 "MachineIndependent/glslang.y"
4951                                      {
4952         (yyval.interm) = (yyvsp[-1].interm);
4953     }
4954 #line 4955 "MachineIndependent/glslang_tab.cpp"
4955     break;
4956
4957   case 34: /* function_identifier: type_specifier  */
4958 #line 530 "MachineIndependent/glslang.y"
4959                      {
4960         // Constructor
4961         (yyval.interm).intermNode = 0;
4962         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4963     }
4964 #line 4965 "MachineIndependent/glslang_tab.cpp"
4965     break;
4966
4967   case 35: /* function_identifier: postfix_expression  */
4968 #line 535 "MachineIndependent/glslang.y"
4969                          {
4970         //
4971         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4972         //
4973         (yyval.interm).function = 0;
4974         (yyval.interm).intermNode = 0;
4975
4976         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4977         if (method) {
4978             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4979             (yyval.interm).intermNode = method->getObject();
4980         } else {
4981             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4982             if (symbol) {
4983                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4984                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4985                 (yyval.interm).function = function;
4986             } else
4987                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4988         }
4989
4990         if ((yyval.interm).function == 0) {
4991             // error recover
4992             TString* empty = NewPoolTString("");
4993             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4994         }
4995     }
4996 #line 4997 "MachineIndependent/glslang_tab.cpp"
4997     break;
4998
4999   case 36: /* function_identifier: non_uniform_qualifier  */
5000 #line 563 "MachineIndependent/glslang.y"
5001                             {
5002         // Constructor
5003         (yyval.interm).intermNode = 0;
5004         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
5005     }
5006 #line 5007 "MachineIndependent/glslang_tab.cpp"
5007     break;
5008
5009   case 37: /* unary_expression: postfix_expression  */
5010 #line 572 "MachineIndependent/glslang.y"
5011                          {
5012         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
5013         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5014         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
5015             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
5016     }
5017 #line 5018 "MachineIndependent/glslang_tab.cpp"
5018     break;
5019
5020   case 38: /* unary_expression: INC_OP unary_expression  */
5021 #line 578 "MachineIndependent/glslang.y"
5022                               {
5023         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
5024         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
5025     }
5026 #line 5027 "MachineIndependent/glslang_tab.cpp"
5027     break;
5028
5029   case 39: /* unary_expression: DEC_OP unary_expression  */
5030 #line 582 "MachineIndependent/glslang.y"
5031                               {
5032         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
5033         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
5034     }
5035 #line 5036 "MachineIndependent/glslang_tab.cpp"
5036     break;
5037
5038   case 40: /* unary_expression: unary_operator unary_expression  */
5039 #line 586 "MachineIndependent/glslang.y"
5040                                       {
5041         if ((yyvsp[-1].interm).op != EOpNull) {
5042             char errorOp[2] = {0, 0};
5043             switch((yyvsp[-1].interm).op) {
5044             case EOpNegative:   errorOp[0] = '-'; break;
5045             case EOpLogicalNot: errorOp[0] = '!'; break;
5046             case EOpBitwiseNot: errorOp[0] = '~'; break;
5047             default: break; // some compilers want this
5048             }
5049             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
5050         } else {
5051             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5052             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5053                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5054         }
5055     }
5056 #line 5057 "MachineIndependent/glslang_tab.cpp"
5057     break;
5058
5059   case 41: /* unary_operator: PLUS  */
5060 #line 606 "MachineIndependent/glslang.y"
5061             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
5062 #line 5063 "MachineIndependent/glslang_tab.cpp"
5063     break;
5064
5065   case 42: /* unary_operator: DASH  */
5066 #line 607 "MachineIndependent/glslang.y"
5067             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
5068 #line 5069 "MachineIndependent/glslang_tab.cpp"
5069     break;
5070
5071   case 43: /* unary_operator: BANG  */
5072 #line 608 "MachineIndependent/glslang.y"
5073             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
5074 #line 5075 "MachineIndependent/glslang_tab.cpp"
5075     break;
5076
5077   case 44: /* unary_operator: TILDE  */
5078 #line 609 "MachineIndependent/glslang.y"
5079             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
5080               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
5081 #line 5082 "MachineIndependent/glslang_tab.cpp"
5082     break;
5083
5084   case 45: /* multiplicative_expression: unary_expression  */
5085 #line 615 "MachineIndependent/glslang.y"
5086                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5087 #line 5088 "MachineIndependent/glslang_tab.cpp"
5088     break;
5089
5090   case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression  */
5091 #line 616 "MachineIndependent/glslang.y"
5092                                                       {
5093         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5094         if ((yyval.interm.intermTypedNode) == 0)
5095             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5096     }
5097 #line 5098 "MachineIndependent/glslang_tab.cpp"
5098     break;
5099
5100   case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression  */
5101 #line 621 "MachineIndependent/glslang.y"
5102                                                        {
5103         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5104         if ((yyval.interm.intermTypedNode) == 0)
5105             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5106     }
5107 #line 5108 "MachineIndependent/glslang_tab.cpp"
5108     break;
5109
5110   case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression  */
5111 #line 626 "MachineIndependent/glslang.y"
5112                                                          {
5113         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
5114         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5115         if ((yyval.interm.intermTypedNode) == 0)
5116             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5117     }
5118 #line 5119 "MachineIndependent/glslang_tab.cpp"
5119     break;
5120
5121   case 49: /* additive_expression: multiplicative_expression  */
5122 #line 635 "MachineIndependent/glslang.y"
5123                                 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5124 #line 5125 "MachineIndependent/glslang_tab.cpp"
5125     break;
5126
5127   case 50: /* additive_expression: additive_expression PLUS multiplicative_expression  */
5128 #line 636 "MachineIndependent/glslang.y"
5129                                                          {
5130         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5131         if ((yyval.interm.intermTypedNode) == 0)
5132             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5133     }
5134 #line 5135 "MachineIndependent/glslang_tab.cpp"
5135     break;
5136
5137   case 51: /* additive_expression: additive_expression DASH multiplicative_expression  */
5138 #line 641 "MachineIndependent/glslang.y"
5139                                                          {
5140         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5141         if ((yyval.interm.intermTypedNode) == 0)
5142             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5143     }
5144 #line 5145 "MachineIndependent/glslang_tab.cpp"
5145     break;
5146
5147   case 52: /* shift_expression: additive_expression  */
5148 #line 649 "MachineIndependent/glslang.y"
5149                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5150 #line 5151 "MachineIndependent/glslang_tab.cpp"
5151     break;
5152
5153   case 53: /* shift_expression: shift_expression LEFT_OP additive_expression  */
5154 #line 650 "MachineIndependent/glslang.y"
5155                                                    {
5156         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
5157         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5158         if ((yyval.interm.intermTypedNode) == 0)
5159             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5160     }
5161 #line 5162 "MachineIndependent/glslang_tab.cpp"
5162     break;
5163
5164   case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression  */
5165 #line 656 "MachineIndependent/glslang.y"
5166                                                     {
5167         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
5168         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5169         if ((yyval.interm.intermTypedNode) == 0)
5170             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5171     }
5172 #line 5173 "MachineIndependent/glslang_tab.cpp"
5173     break;
5174
5175   case 55: /* relational_expression: shift_expression  */
5176 #line 665 "MachineIndependent/glslang.y"
5177                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5178 #line 5179 "MachineIndependent/glslang_tab.cpp"
5179     break;
5180
5181   case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression  */
5182 #line 666 "MachineIndependent/glslang.y"
5183                                                         {
5184         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5185         if ((yyval.interm.intermTypedNode) == 0)
5186             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5187     }
5188 #line 5189 "MachineIndependent/glslang_tab.cpp"
5189     break;
5190
5191   case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression  */
5192 #line 671 "MachineIndependent/glslang.y"
5193                                                           {
5194         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5195         if ((yyval.interm.intermTypedNode) == 0)
5196             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5197     }
5198 #line 5199 "MachineIndependent/glslang_tab.cpp"
5199     break;
5200
5201   case 58: /* relational_expression: relational_expression LE_OP shift_expression  */
5202 #line 676 "MachineIndependent/glslang.y"
5203                                                     {
5204         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5205         if ((yyval.interm.intermTypedNode) == 0)
5206             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5207     }
5208 #line 5209 "MachineIndependent/glslang_tab.cpp"
5209     break;
5210
5211   case 59: /* relational_expression: relational_expression GE_OP shift_expression  */
5212 #line 681 "MachineIndependent/glslang.y"
5213                                                     {
5214         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5215         if ((yyval.interm.intermTypedNode) == 0)
5216             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5217     }
5218 #line 5219 "MachineIndependent/glslang_tab.cpp"
5219     break;
5220
5221   case 60: /* equality_expression: relational_expression  */
5222 #line 689 "MachineIndependent/glslang.y"
5223                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5224 #line 5225 "MachineIndependent/glslang_tab.cpp"
5225     break;
5226
5227   case 61: /* equality_expression: equality_expression EQ_OP relational_expression  */
5228 #line 690 "MachineIndependent/glslang.y"
5229                                                        {
5230         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5231         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5232         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5233         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
5234         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5235         if ((yyval.interm.intermTypedNode) == 0)
5236             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5237     }
5238 #line 5239 "MachineIndependent/glslang_tab.cpp"
5239     break;
5240
5241   case 62: /* equality_expression: equality_expression NE_OP relational_expression  */
5242 #line 699 "MachineIndependent/glslang.y"
5243                                                       {
5244         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
5245         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5246         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5247         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
5248         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5249         if ((yyval.interm.intermTypedNode) == 0)
5250             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5251     }
5252 #line 5253 "MachineIndependent/glslang_tab.cpp"
5253     break;
5254
5255   case 63: /* and_expression: equality_expression  */
5256 #line 711 "MachineIndependent/glslang.y"
5257                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5258 #line 5259 "MachineIndependent/glslang_tab.cpp"
5259     break;
5260
5261   case 64: /* and_expression: and_expression AMPERSAND equality_expression  */
5262 #line 712 "MachineIndependent/glslang.y"
5263                                                    {
5264         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
5265         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5266         if ((yyval.interm.intermTypedNode) == 0)
5267             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5268     }
5269 #line 5270 "MachineIndependent/glslang_tab.cpp"
5270     break;
5271
5272   case 65: /* exclusive_or_expression: and_expression  */
5273 #line 721 "MachineIndependent/glslang.y"
5274                      { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5275 #line 5276 "MachineIndependent/glslang_tab.cpp"
5276     break;
5277
5278   case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression  */
5279 #line 722 "MachineIndependent/glslang.y"
5280                                                    {
5281         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
5282         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5283         if ((yyval.interm.intermTypedNode) == 0)
5284             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5285     }
5286 #line 5287 "MachineIndependent/glslang_tab.cpp"
5287     break;
5288
5289   case 67: /* inclusive_or_expression: exclusive_or_expression  */
5290 #line 731 "MachineIndependent/glslang.y"
5291                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5292 #line 5293 "MachineIndependent/glslang_tab.cpp"
5293     break;
5294
5295   case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression  */
5296 #line 732 "MachineIndependent/glslang.y"
5297                                                                    {
5298         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
5299         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5300         if ((yyval.interm.intermTypedNode) == 0)
5301             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5302     }
5303 #line 5304 "MachineIndependent/glslang_tab.cpp"
5304     break;
5305
5306   case 69: /* logical_and_expression: inclusive_or_expression  */
5307 #line 741 "MachineIndependent/glslang.y"
5308                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5309 #line 5310 "MachineIndependent/glslang_tab.cpp"
5310     break;
5311
5312   case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression  */
5313 #line 742 "MachineIndependent/glslang.y"
5314                                                             {
5315         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5316         if ((yyval.interm.intermTypedNode) == 0)
5317             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5318     }
5319 #line 5320 "MachineIndependent/glslang_tab.cpp"
5320     break;
5321
5322   case 71: /* logical_xor_expression: logical_and_expression  */
5323 #line 750 "MachineIndependent/glslang.y"
5324                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5325 #line 5326 "MachineIndependent/glslang_tab.cpp"
5326     break;
5327
5328   case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression  */
5329 #line 751 "MachineIndependent/glslang.y"
5330                                                             {
5331         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5332         if ((yyval.interm.intermTypedNode) == 0)
5333             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5334     }
5335 #line 5336 "MachineIndependent/glslang_tab.cpp"
5336     break;
5337
5338   case 73: /* logical_or_expression: logical_xor_expression  */
5339 #line 759 "MachineIndependent/glslang.y"
5340                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5341 #line 5342 "MachineIndependent/glslang_tab.cpp"
5342     break;
5343
5344   case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression  */
5345 #line 760 "MachineIndependent/glslang.y"
5346                                                           {
5347         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5348         if ((yyval.interm.intermTypedNode) == 0)
5349             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
5350     }
5351 #line 5352 "MachineIndependent/glslang_tab.cpp"
5352     break;
5353
5354   case 75: /* conditional_expression: logical_or_expression  */
5355 #line 768 "MachineIndependent/glslang.y"
5356                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5357 #line 5358 "MachineIndependent/glslang_tab.cpp"
5358     break;
5359
5360   case 76: /* $@1: %empty  */
5361 #line 769 "MachineIndependent/glslang.y"
5362                                      {
5363         ++parseContext.controlFlowNestingLevel;
5364     }
5365 #line 5366 "MachineIndependent/glslang_tab.cpp"
5366     break;
5367
5368   case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression  */
5369 #line 772 "MachineIndependent/glslang.y"
5370                                              {
5371         --parseContext.controlFlowNestingLevel;
5372         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
5373         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
5374         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
5375         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
5376         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
5377         if ((yyval.interm.intermTypedNode) == 0) {
5378             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5379             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5380         }
5381     }
5382 #line 5383 "MachineIndependent/glslang_tab.cpp"
5383     break;
5384
5385   case 78: /* assignment_expression: conditional_expression  */
5386 #line 787 "MachineIndependent/glslang.y"
5387                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
5388 #line 5389 "MachineIndependent/glslang_tab.cpp"
5389     break;
5390
5391   case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression  */
5392 #line 788 "MachineIndependent/glslang.y"
5393                                                                  {
5394         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
5395         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5396         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5397         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
5398         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
5399         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
5400         (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
5401         if ((yyval.interm.intermTypedNode) == 0) {
5402             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5403             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
5404         }
5405     }
5406 #line 5407 "MachineIndependent/glslang_tab.cpp"
5407     break;
5408
5409   case 80: /* assignment_operator: EQUAL  */
5410 #line 804 "MachineIndependent/glslang.y"
5411             {
5412         (yyval.interm).loc = (yyvsp[0].lex).loc;
5413         (yyval.interm).op = EOpAssign;
5414     }
5415 #line 5416 "MachineIndependent/glslang_tab.cpp"
5416     break;
5417
5418   case 81: /* assignment_operator: MUL_ASSIGN  */
5419 #line 808 "MachineIndependent/glslang.y"
5420                  {
5421         (yyval.interm).loc = (yyvsp[0].lex).loc;
5422         (yyval.interm).op = EOpMulAssign;
5423     }
5424 #line 5425 "MachineIndependent/glslang_tab.cpp"
5425     break;
5426
5427   case 82: /* assignment_operator: DIV_ASSIGN  */
5428 #line 812 "MachineIndependent/glslang.y"
5429                  {
5430         (yyval.interm).loc = (yyvsp[0].lex).loc;
5431         (yyval.interm).op = EOpDivAssign;
5432     }
5433 #line 5434 "MachineIndependent/glslang_tab.cpp"
5434     break;
5435
5436   case 83: /* assignment_operator: MOD_ASSIGN  */
5437 #line 816 "MachineIndependent/glslang.y"
5438                  {
5439         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
5440         (yyval.interm).loc = (yyvsp[0].lex).loc;
5441         (yyval.interm).op = EOpModAssign;
5442     }
5443 #line 5444 "MachineIndependent/glslang_tab.cpp"
5444     break;
5445
5446   case 84: /* assignment_operator: ADD_ASSIGN  */
5447 #line 821 "MachineIndependent/glslang.y"
5448                  {
5449         (yyval.interm).loc = (yyvsp[0].lex).loc;
5450         (yyval.interm).op = EOpAddAssign;
5451     }
5452 #line 5453 "MachineIndependent/glslang_tab.cpp"
5453     break;
5454
5455   case 85: /* assignment_operator: SUB_ASSIGN  */
5456 #line 825 "MachineIndependent/glslang.y"
5457                  {
5458         (yyval.interm).loc = (yyvsp[0].lex).loc;
5459         (yyval.interm).op = EOpSubAssign;
5460     }
5461 #line 5462 "MachineIndependent/glslang_tab.cpp"
5462     break;
5463
5464   case 86: /* assignment_operator: LEFT_ASSIGN  */
5465 #line 829 "MachineIndependent/glslang.y"
5466                   {
5467         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5468         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5469     }
5470 #line 5471 "MachineIndependent/glslang_tab.cpp"
5471     break;
5472
5473   case 87: /* assignment_operator: RIGHT_ASSIGN  */
5474 #line 833 "MachineIndependent/glslang.y"
5475                    {
5476         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5477         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5478     }
5479 #line 5480 "MachineIndependent/glslang_tab.cpp"
5480     break;
5481
5482   case 88: /* assignment_operator: AND_ASSIGN  */
5483 #line 837 "MachineIndependent/glslang.y"
5484                  {
5485         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5486         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5487     }
5488 #line 5489 "MachineIndependent/glslang_tab.cpp"
5489     break;
5490
5491   case 89: /* assignment_operator: XOR_ASSIGN  */
5492 #line 841 "MachineIndependent/glslang.y"
5493                  {
5494         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5495         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
5496     }
5497 #line 5498 "MachineIndependent/glslang_tab.cpp"
5498     break;
5499
5500   case 90: /* assignment_operator: OR_ASSIGN  */
5501 #line 845 "MachineIndependent/glslang.y"
5502                 {
5503         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
5504         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
5505     }
5506 #line 5507 "MachineIndependent/glslang_tab.cpp"
5507     break;
5508
5509   case 91: /* expression: assignment_expression  */
5510 #line 852 "MachineIndependent/glslang.y"
5511                             {
5512         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5513     }
5514 #line 5515 "MachineIndependent/glslang_tab.cpp"
5515     break;
5516
5517   case 92: /* expression: expression COMMA assignment_expression  */
5518 #line 855 "MachineIndependent/glslang.y"
5519                                              {
5520         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
5521         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5522         if ((yyval.interm.intermTypedNode) == 0) {
5523             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5524             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5525         }
5526     }
5527 #line 5528 "MachineIndependent/glslang_tab.cpp"
5528     break;
5529
5530   case 93: /* constant_expression: conditional_expression  */
5531 #line 866 "MachineIndependent/glslang.y"
5532                              {
5533         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5534         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5535     }
5536 #line 5537 "MachineIndependent/glslang_tab.cpp"
5537     break;
5538
5539   case 94: /* declaration: function_prototype SEMICOLON  */
5540 #line 873 "MachineIndependent/glslang.y"
5541                                    {
5542         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5543         (yyval.interm.intermNode) = 0;
5544         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5545     }
5546 #line 5547 "MachineIndependent/glslang_tab.cpp"
5547     break;
5548
5549   case 95: /* declaration: init_declarator_list SEMICOLON  */
5550 #line 878 "MachineIndependent/glslang.y"
5551                                      {
5552         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5553             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5554         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5555     }
5556 #line 5557 "MachineIndependent/glslang_tab.cpp"
5557     break;
5558
5559   case 96: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON  */
5560 #line 883 "MachineIndependent/glslang.y"
5561                                                              {
5562         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5563         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5564         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5565         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5566         (yyval.interm.intermNode) = 0;
5567     }
5568 #line 5569 "MachineIndependent/glslang_tab.cpp"
5569     break;
5570
5571   case 97: /* declaration: block_structure SEMICOLON  */
5572 #line 890 "MachineIndependent/glslang.y"
5573                                 {
5574         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5575         (yyval.interm.intermNode) = 0;
5576     }
5577 #line 5578 "MachineIndependent/glslang_tab.cpp"
5578     break;
5579
5580   case 98: /* declaration: block_structure IDENTIFIER SEMICOLON  */
5581 #line 894 "MachineIndependent/glslang.y"
5582                                            {
5583         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5584         (yyval.interm.intermNode) = 0;
5585     }
5586 #line 5587 "MachineIndependent/glslang_tab.cpp"
5587     break;
5588
5589   case 99: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON  */
5590 #line 898 "MachineIndependent/glslang.y"
5591                                                            {
5592         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5593         (yyval.interm.intermNode) = 0;
5594     }
5595 #line 5596 "MachineIndependent/glslang_tab.cpp"
5596     break;
5597
5598   case 100: /* declaration: type_qualifier SEMICOLON  */
5599 #line 902 "MachineIndependent/glslang.y"
5600                                {
5601         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5602         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5603         (yyval.interm.intermNode) = 0;
5604     }
5605 #line 5606 "MachineIndependent/glslang_tab.cpp"
5606     break;
5607
5608   case 101: /* declaration: type_qualifier IDENTIFIER SEMICOLON  */
5609 #line 907 "MachineIndependent/glslang.y"
5610                                           {
5611         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5612         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5613         (yyval.interm.intermNode) = 0;
5614     }
5615 #line 5616 "MachineIndependent/glslang_tab.cpp"
5616     break;
5617
5618   case 102: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON  */
5619 #line 912 "MachineIndependent/glslang.y"
5620                                                           {
5621         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5622         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5623         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5624         (yyval.interm.intermNode) = 0;
5625     }
5626 #line 5627 "MachineIndependent/glslang_tab.cpp"
5627     break;
5628
5629   case 103: /* $@2: %empty  */
5630 #line 921 "MachineIndependent/glslang.y"
5631                                            { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5632 #line 5633 "MachineIndependent/glslang_tab.cpp"
5633     break;
5634
5635   case 104: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE  */
5636 #line 921 "MachineIndependent/glslang.y"
5637                                                                                                                           {
5638         --parseContext.blockNestingLevel;
5639         parseContext.blockName = (yyvsp[-4].lex).string;
5640         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5641         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5642         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5643         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5644         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5645     }
5646 #line 5647 "MachineIndependent/glslang_tab.cpp"
5647     break;
5648
5649   case 105: /* identifier_list: COMMA IDENTIFIER  */
5650 #line 932 "MachineIndependent/glslang.y"
5651                        {
5652         (yyval.interm.identifierList) = new TIdentifierList;
5653         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5654     }
5655 #line 5656 "MachineIndependent/glslang_tab.cpp"
5656     break;
5657
5658   case 106: /* identifier_list: identifier_list COMMA IDENTIFIER  */
5659 #line 936 "MachineIndependent/glslang.y"
5660                                        {
5661         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5662         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5663     }
5664 #line 5665 "MachineIndependent/glslang_tab.cpp"
5665     break;
5666
5667   case 107: /* function_prototype: function_declarator RIGHT_PAREN  */
5668 #line 943 "MachineIndependent/glslang.y"
5669                                        {
5670         (yyval.interm).function = (yyvsp[-1].interm.function);
5671         (yyval.interm).loc = (yyvsp[0].lex).loc;
5672     }
5673 #line 5674 "MachineIndependent/glslang_tab.cpp"
5674     break;
5675
5676   case 108: /* function_declarator: function_header  */
5677 #line 950 "MachineIndependent/glslang.y"
5678                       {
5679         (yyval.interm.function) = (yyvsp[0].interm.function);
5680     }
5681 #line 5682 "MachineIndependent/glslang_tab.cpp"
5682     break;
5683
5684   case 109: /* function_declarator: function_header_with_parameters  */
5685 #line 953 "MachineIndependent/glslang.y"
5686                                       {
5687         (yyval.interm.function) = (yyvsp[0].interm.function);
5688     }
5689 #line 5690 "MachineIndependent/glslang_tab.cpp"
5690     break;
5691
5692   case 110: /* function_header_with_parameters: function_header parameter_declaration  */
5693 #line 960 "MachineIndependent/glslang.y"
5694                                             {
5695         // Add the parameter
5696         (yyval.interm.function) = (yyvsp[-1].interm.function);
5697         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5698             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5699         else
5700             delete (yyvsp[0].interm).param.type;
5701     }
5702 #line 5703 "MachineIndependent/glslang_tab.cpp"
5703     break;
5704
5705   case 111: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration  */
5706 #line 968 "MachineIndependent/glslang.y"
5707                                                                   {
5708         //
5709         // Only first parameter of one-parameter functions can be void
5710         // The check for named parameters not being void is done in parameter_declarator
5711         //
5712         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5713             //
5714             // This parameter > first is void
5715             //
5716             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5717             delete (yyvsp[0].interm).param.type;
5718         } else {
5719             // Add the parameter
5720             (yyval.interm.function) = (yyvsp[-2].interm.function);
5721             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5722         }
5723     }
5724 #line 5725 "MachineIndependent/glslang_tab.cpp"
5725     break;
5726
5727   case 112: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN  */
5728 #line 988 "MachineIndependent/glslang.y"
5729                                                  {
5730         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5731             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5732                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5733         }
5734         if ((yyvsp[-2].interm.type).arraySizes)
5735             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5736
5737         // Add the function as a prototype after parsing it (we do not support recursion)
5738         TFunction *function;
5739         TType type((yyvsp[-2].interm.type));
5740
5741         // Potentially rename shader entry point function.  No-op most of the time.
5742         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5743
5744         // Make the function
5745         function = new TFunction((yyvsp[-1].lex).string, type);
5746         (yyval.interm.function) = function;
5747     }
5748 #line 5749 "MachineIndependent/glslang_tab.cpp"
5749     break;
5750
5751   case 113: /* parameter_declarator: type_specifier IDENTIFIER  */
5752 #line 1011 "MachineIndependent/glslang.y"
5753                                 {
5754         if ((yyvsp[-1].interm.type).arraySizes) {
5755             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5756             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5757             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5758         }
5759         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5760             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5761         }
5762         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5763
5764         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5765         (yyval.interm).loc = (yyvsp[0].lex).loc;
5766         (yyval.interm).param = param;
5767     }
5768 #line 5769 "MachineIndependent/glslang_tab.cpp"
5769     break;
5770
5771   case 114: /* parameter_declarator: type_specifier IDENTIFIER array_specifier  */
5772 #line 1026 "MachineIndependent/glslang.y"
5773                                                 {
5774         if ((yyvsp[-2].interm.type).arraySizes) {
5775             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5776             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5777             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5778         }
5779         TType* type = new TType((yyvsp[-2].interm.type));
5780         type->transferArraySizes((yyvsp[0].interm).arraySizes);
5781         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5782
5783         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5784         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5785         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5786
5787         TParameter param = { (yyvsp[-1].lex).string, type };
5788
5789         (yyval.interm).loc = (yyvsp[-1].lex).loc;
5790         (yyval.interm).param = param;
5791     }
5792 #line 5793 "MachineIndependent/glslang_tab.cpp"
5793     break;
5794
5795   case 115: /* parameter_declaration: type_qualifier parameter_declarator  */
5796 #line 1051 "MachineIndependent/glslang.y"
5797                                           {
5798         (yyval.interm) = (yyvsp[0].interm);
5799         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5800             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5801         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5802
5803         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5804         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5805         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5806
5807     }
5808 #line 5809 "MachineIndependent/glslang_tab.cpp"
5809     break;
5810
5811   case 116: /* parameter_declaration: parameter_declarator  */
5812 #line 1062 "MachineIndependent/glslang.y"
5813                            {
5814         (yyval.interm) = (yyvsp[0].interm);
5815
5816         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5817         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5818         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5819     }
5820 #line 5821 "MachineIndependent/glslang_tab.cpp"
5821     break;
5822
5823   case 117: /* parameter_declaration: type_qualifier parameter_type_specifier  */
5824 #line 1072 "MachineIndependent/glslang.y"
5825                                               {
5826         (yyval.interm) = (yyvsp[0].interm);
5827         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5828             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5829         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5830
5831         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5832         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5833         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5834     }
5835 #line 5836 "MachineIndependent/glslang_tab.cpp"
5836     break;
5837
5838   case 118: /* parameter_declaration: parameter_type_specifier  */
5839 #line 1082 "MachineIndependent/glslang.y"
5840                                {
5841         (yyval.interm) = (yyvsp[0].interm);
5842
5843         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5844         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5845         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5846     }
5847 #line 5848 "MachineIndependent/glslang_tab.cpp"
5848     break;
5849
5850   case 119: /* parameter_type_specifier: type_specifier  */
5851 #line 1092 "MachineIndependent/glslang.y"
5852                      {
5853         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5854         (yyval.interm).param = param;
5855         if ((yyvsp[0].interm.type).arraySizes)
5856             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5857     }
5858 #line 5859 "MachineIndependent/glslang_tab.cpp"
5859     break;
5860
5861   case 120: /* init_declarator_list: single_declaration  */
5862 #line 1101 "MachineIndependent/glslang.y"
5863                          {
5864         (yyval.interm) = (yyvsp[0].interm);
5865     }
5866 #line 5867 "MachineIndependent/glslang_tab.cpp"
5867     break;
5868
5869   case 121: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER  */
5870 #line 1104 "MachineIndependent/glslang.y"
5871                                             {
5872         (yyval.interm) = (yyvsp[-2].interm);
5873         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5874     }
5875 #line 5876 "MachineIndependent/glslang_tab.cpp"
5876     break;
5877
5878   case 122: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier  */
5879 #line 1108 "MachineIndependent/glslang.y"
5880                                                             {
5881         (yyval.interm) = (yyvsp[-3].interm);
5882         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5883     }
5884 #line 5885 "MachineIndependent/glslang_tab.cpp"
5885     break;
5886
5887   case 123: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer  */
5888 #line 1112 "MachineIndependent/glslang.y"
5889                                                                               {
5890         (yyval.interm).type = (yyvsp[-5].interm).type;
5891         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5892         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5893     }
5894 #line 5895 "MachineIndependent/glslang_tab.cpp"
5895     break;
5896
5897   case 124: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer  */
5898 #line 1117 "MachineIndependent/glslang.y"
5899                                                               {
5900         (yyval.interm).type = (yyvsp[-4].interm).type;
5901         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5902         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5903     }
5904 #line 5905 "MachineIndependent/glslang_tab.cpp"
5905     break;
5906
5907   case 125: /* single_declaration: fully_specified_type  */
5908 #line 1125 "MachineIndependent/glslang.y"
5909                            {
5910         (yyval.interm).type = (yyvsp[0].interm.type);
5911         (yyval.interm).intermNode = 0;
5912
5913         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5914
5915     }
5916 #line 5917 "MachineIndependent/glslang_tab.cpp"
5917     break;
5918
5919   case 126: /* single_declaration: fully_specified_type IDENTIFIER  */
5920 #line 1132 "MachineIndependent/glslang.y"
5921                                       {
5922         (yyval.interm).type = (yyvsp[-1].interm.type);
5923         (yyval.interm).intermNode = 0;
5924         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5925     }
5926 #line 5927 "MachineIndependent/glslang_tab.cpp"
5927     break;
5928
5929   case 127: /* single_declaration: fully_specified_type IDENTIFIER array_specifier  */
5930 #line 1137 "MachineIndependent/glslang.y"
5931                                                       {
5932         (yyval.interm).type = (yyvsp[-2].interm.type);
5933         (yyval.interm).intermNode = 0;
5934         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5935     }
5936 #line 5937 "MachineIndependent/glslang_tab.cpp"
5937     break;
5938
5939   case 128: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer  */
5940 #line 1142 "MachineIndependent/glslang.y"
5941                                                                         {
5942         (yyval.interm).type = (yyvsp[-4].interm.type);
5943         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5944         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5945     }
5946 #line 5947 "MachineIndependent/glslang_tab.cpp"
5947     break;
5948
5949   case 129: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer  */
5950 #line 1147 "MachineIndependent/glslang.y"
5951                                                         {
5952         (yyval.interm).type = (yyvsp[-3].interm.type);
5953         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5954         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5955     }
5956 #line 5957 "MachineIndependent/glslang_tab.cpp"
5957     break;
5958
5959   case 130: /* fully_specified_type: type_specifier  */
5960 #line 1156 "MachineIndependent/glslang.y"
5961                      {
5962         (yyval.interm.type) = (yyvsp[0].interm.type);
5963
5964         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5965         if ((yyvsp[0].interm.type).arraySizes) {
5966             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5967             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5968         }
5969         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5970     }
5971 #line 5972 "MachineIndependent/glslang_tab.cpp"
5972     break;
5973
5974   case 131: /* fully_specified_type: type_qualifier type_specifier  */
5975 #line 1166 "MachineIndependent/glslang.y"
5976                                      {
5977         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5978         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5979
5980         if ((yyvsp[0].interm.type).arraySizes) {
5981             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5982             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5983         }
5984
5985         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5986             (yyvsp[0].interm.type).arraySizes = nullptr;
5987
5988         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5989         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5990         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5991         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5992
5993         (yyval.interm.type) = (yyvsp[0].interm.type);
5994
5995         if (! (yyval.interm.type).qualifier.isInterpolation() &&
5996             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5997              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5998             (yyval.interm.type).qualifier.smooth = true;
5999     }
6000 #line 6001 "MachineIndependent/glslang_tab.cpp"
6001     break;
6002
6003   case 132: /* invariant_qualifier: INVARIANT  */
6004 #line 1193 "MachineIndependent/glslang.y"
6005                 {
6006         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
6007         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
6008         (yyval.interm.type).init((yyvsp[0].lex).loc);
6009         (yyval.interm.type).qualifier.invariant = true;
6010     }
6011 #line 6012 "MachineIndependent/glslang_tab.cpp"
6012     break;
6013
6014   case 133: /* interpolation_qualifier: SMOOTH  */
6015 #line 1202 "MachineIndependent/glslang.y"
6016              {
6017         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
6018         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
6019         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
6020         (yyval.interm.type).init((yyvsp[0].lex).loc);
6021         (yyval.interm.type).qualifier.smooth = true;
6022     }
6023 #line 6024 "MachineIndependent/glslang_tab.cpp"
6024     break;
6025
6026   case 134: /* interpolation_qualifier: FLAT  */
6027 #line 1209 "MachineIndependent/glslang.y"
6028            {
6029         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
6030         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
6031         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
6032         (yyval.interm.type).init((yyvsp[0].lex).loc);
6033         (yyval.interm.type).qualifier.flat = true;
6034     }
6035 #line 6036 "MachineIndependent/glslang_tab.cpp"
6036     break;
6037
6038   case 135: /* interpolation_qualifier: NOPERSPECTIVE  */
6039 #line 1217 "MachineIndependent/glslang.y"
6040                     {
6041         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
6042         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
6043         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
6044         (yyval.interm.type).init((yyvsp[0].lex).loc);
6045         (yyval.interm.type).qualifier.nopersp = true;
6046     }
6047 #line 6048 "MachineIndependent/glslang_tab.cpp"
6048     break;
6049
6050   case 136: /* interpolation_qualifier: EXPLICITINTERPAMD  */
6051 #line 1224 "MachineIndependent/glslang.y"
6052                         {
6053         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
6054         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6055         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
6056         (yyval.interm.type).init((yyvsp[0].lex).loc);
6057         (yyval.interm.type).qualifier.explicitInterp = true;
6058     }
6059 #line 6060 "MachineIndependent/glslang_tab.cpp"
6060     break;
6061
6062   case 137: /* interpolation_qualifier: PERVERTEXNV  */
6063 #line 1231 "MachineIndependent/glslang.y"
6064                   {
6065         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
6066         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6067         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6068         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
6069         (yyval.interm.type).init((yyvsp[0].lex).loc);
6070         (yyval.interm.type).qualifier.pervertexNV = true;
6071     }
6072 #line 6073 "MachineIndependent/glslang_tab.cpp"
6073     break;
6074
6075   case 138: /* interpolation_qualifier: PERPRIMITIVENV  */
6076 #line 1239 "MachineIndependent/glslang.y"
6077                      {
6078         // No need for profile version or extension check. Shader stage already checks both.
6079         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
6080         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
6081         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
6082         if (parseContext.language == EShLangFragment)
6083             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
6084         (yyval.interm.type).init((yyvsp[0].lex).loc);
6085         (yyval.interm.type).qualifier.perPrimitiveNV = true;
6086     }
6087 #line 6088 "MachineIndependent/glslang_tab.cpp"
6088     break;
6089
6090   case 139: /* interpolation_qualifier: PERVIEWNV  */
6091 #line 1249 "MachineIndependent/glslang.y"
6092                 {
6093         // No need for profile version or extension check. Shader stage already checks both.
6094         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
6095         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
6096         (yyval.interm.type).init((yyvsp[0].lex).loc);
6097         (yyval.interm.type).qualifier.perViewNV = true;
6098     }
6099 #line 6100 "MachineIndependent/glslang_tab.cpp"
6100     break;
6101
6102   case 140: /* interpolation_qualifier: PERTASKNV  */
6103 #line 1256 "MachineIndependent/glslang.y"
6104                 {
6105         // No need for profile version or extension check. Shader stage already checks both.
6106         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
6107         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
6108         (yyval.interm.type).init((yyvsp[0].lex).loc);
6109         (yyval.interm.type).qualifier.perTaskNV = true;
6110     }
6111 #line 6112 "MachineIndependent/glslang_tab.cpp"
6112     break;
6113
6114   case 141: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN  */
6115 #line 1267 "MachineIndependent/glslang.y"
6116                                                              {
6117         (yyval.interm.type) = (yyvsp[-1].interm.type);
6118     }
6119 #line 6120 "MachineIndependent/glslang_tab.cpp"
6120     break;
6121
6122   case 142: /* layout_qualifier_id_list: layout_qualifier_id  */
6123 #line 1273 "MachineIndependent/glslang.y"
6124                           {
6125         (yyval.interm.type) = (yyvsp[0].interm.type);
6126     }
6127 #line 6128 "MachineIndependent/glslang_tab.cpp"
6128     break;
6129
6130   case 143: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id  */
6131 #line 1276 "MachineIndependent/glslang.y"
6132                                                          {
6133         (yyval.interm.type) = (yyvsp[-2].interm.type);
6134         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6135         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6136     }
6137 #line 6138 "MachineIndependent/glslang_tab.cpp"
6138     break;
6139
6140   case 144: /* layout_qualifier_id: IDENTIFIER  */
6141 #line 1283 "MachineIndependent/glslang.y"
6142                  {
6143         (yyval.interm.type).init((yyvsp[0].lex).loc);
6144         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
6145     }
6146 #line 6147 "MachineIndependent/glslang_tab.cpp"
6147     break;
6148
6149   case 145: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression  */
6150 #line 1287 "MachineIndependent/glslang.y"
6151                                            {
6152         (yyval.interm.type).init((yyvsp[-2].lex).loc);
6153         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
6154     }
6155 #line 6156 "MachineIndependent/glslang_tab.cpp"
6156     break;
6157
6158   case 146: /* layout_qualifier_id: SHARED  */
6159 #line 1291 "MachineIndependent/glslang.y"
6160              { // because "shared" is both an identifier and a keyword
6161         (yyval.interm.type).init((yyvsp[0].lex).loc);
6162         TString strShared("shared");
6163         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
6164     }
6165 #line 6166 "MachineIndependent/glslang_tab.cpp"
6166     break;
6167
6168   case 147: /* precise_qualifier: PRECISE  */
6169 #line 1300 "MachineIndependent/glslang.y"
6170               {
6171         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
6172         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
6173         (yyval.interm.type).init((yyvsp[0].lex).loc);
6174         (yyval.interm.type).qualifier.noContraction = true;
6175     }
6176 #line 6177 "MachineIndependent/glslang_tab.cpp"
6177     break;
6178
6179   case 148: /* type_qualifier: single_type_qualifier  */
6180 #line 1310 "MachineIndependent/glslang.y"
6181                             {
6182         (yyval.interm.type) = (yyvsp[0].interm.type);
6183     }
6184 #line 6185 "MachineIndependent/glslang_tab.cpp"
6185     break;
6186
6187   case 149: /* type_qualifier: type_qualifier single_type_qualifier  */
6188 #line 1313 "MachineIndependent/glslang.y"
6189                                            {
6190         (yyval.interm.type) = (yyvsp[-1].interm.type);
6191         if ((yyval.interm.type).basicType == EbtVoid)
6192             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
6193
6194         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
6195         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
6196     }
6197 #line 6198 "MachineIndependent/glslang_tab.cpp"
6198     break;
6199
6200   case 150: /* single_type_qualifier: storage_qualifier  */
6201 #line 1324 "MachineIndependent/glslang.y"
6202                         {
6203         (yyval.interm.type) = (yyvsp[0].interm.type);
6204     }
6205 #line 6206 "MachineIndependent/glslang_tab.cpp"
6206     break;
6207
6208   case 151: /* single_type_qualifier: layout_qualifier  */
6209 #line 1327 "MachineIndependent/glslang.y"
6210                        {
6211         (yyval.interm.type) = (yyvsp[0].interm.type);
6212     }
6213 #line 6214 "MachineIndependent/glslang_tab.cpp"
6214     break;
6215
6216   case 152: /* single_type_qualifier: precision_qualifier  */
6217 #line 1330 "MachineIndependent/glslang.y"
6218                           {
6219         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
6220         (yyval.interm.type) = (yyvsp[0].interm.type);
6221     }
6222 #line 6223 "MachineIndependent/glslang_tab.cpp"
6223     break;
6224
6225   case 153: /* single_type_qualifier: interpolation_qualifier  */
6226 #line 1334 "MachineIndependent/glslang.y"
6227                               {
6228         // allow inheritance of storage qualifier from block declaration
6229         (yyval.interm.type) = (yyvsp[0].interm.type);
6230     }
6231 #line 6232 "MachineIndependent/glslang_tab.cpp"
6232     break;
6233
6234   case 154: /* single_type_qualifier: invariant_qualifier  */
6235 #line 1338 "MachineIndependent/glslang.y"
6236                           {
6237         // allow inheritance of storage qualifier from block declaration
6238         (yyval.interm.type) = (yyvsp[0].interm.type);
6239     }
6240 #line 6241 "MachineIndependent/glslang_tab.cpp"
6241     break;
6242
6243   case 155: /* single_type_qualifier: precise_qualifier  */
6244 #line 1343 "MachineIndependent/glslang.y"
6245                         {
6246         // allow inheritance of storage qualifier from block declaration
6247         (yyval.interm.type) = (yyvsp[0].interm.type);
6248     }
6249 #line 6250 "MachineIndependent/glslang_tab.cpp"
6250     break;
6251
6252   case 156: /* single_type_qualifier: non_uniform_qualifier  */
6253 #line 1347 "MachineIndependent/glslang.y"
6254                             {
6255         (yyval.interm.type) = (yyvsp[0].interm.type);
6256     }
6257 #line 6258 "MachineIndependent/glslang_tab.cpp"
6258     break;
6259
6260   case 157: /* storage_qualifier: CONST  */
6261 #line 1354 "MachineIndependent/glslang.y"
6262             {
6263         (yyval.interm.type).init((yyvsp[0].lex).loc);
6264         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
6265     }
6266 #line 6267 "MachineIndependent/glslang_tab.cpp"
6267     break;
6268
6269   case 158: /* storage_qualifier: INOUT  */
6270 #line 1358 "MachineIndependent/glslang.y"
6271             {
6272         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
6273         (yyval.interm.type).init((yyvsp[0].lex).loc);
6274         (yyval.interm.type).qualifier.storage = EvqInOut;
6275     }
6276 #line 6277 "MachineIndependent/glslang_tab.cpp"
6277     break;
6278
6279   case 159: /* storage_qualifier: IN  */
6280 #line 1363 "MachineIndependent/glslang.y"
6281          {
6282         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
6283         (yyval.interm.type).init((yyvsp[0].lex).loc);
6284         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
6285         (yyval.interm.type).qualifier.storage = EvqIn;
6286     }
6287 #line 6288 "MachineIndependent/glslang_tab.cpp"
6288     break;
6289
6290   case 160: /* storage_qualifier: OUT  */
6291 #line 1369 "MachineIndependent/glslang.y"
6292           {
6293         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
6294         (yyval.interm.type).init((yyvsp[0].lex).loc);
6295         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
6296         (yyval.interm.type).qualifier.storage = EvqOut;
6297     }
6298 #line 6299 "MachineIndependent/glslang_tab.cpp"
6299     break;
6300
6301   case 161: /* storage_qualifier: CENTROID  */
6302 #line 1375 "MachineIndependent/glslang.y"
6303                {
6304         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
6305         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
6306         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
6307         (yyval.interm.type).init((yyvsp[0].lex).loc);
6308         (yyval.interm.type).qualifier.centroid = true;
6309     }
6310 #line 6311 "MachineIndependent/glslang_tab.cpp"
6311     break;
6312
6313   case 162: /* storage_qualifier: UNIFORM  */
6314 #line 1382 "MachineIndependent/glslang.y"
6315               {
6316         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
6317         (yyval.interm.type).init((yyvsp[0].lex).loc);
6318         (yyval.interm.type).qualifier.storage = EvqUniform;
6319     }
6320 #line 6321 "MachineIndependent/glslang_tab.cpp"
6321     break;
6322
6323   case 163: /* storage_qualifier: SHARED  */
6324 #line 1387 "MachineIndependent/glslang.y"
6325              {
6326         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
6327         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
6328         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
6329         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
6330         (yyval.interm.type).init((yyvsp[0].lex).loc);
6331         (yyval.interm.type).qualifier.storage = EvqShared;
6332     }
6333 #line 6334 "MachineIndependent/glslang_tab.cpp"
6334     break;
6335
6336   case 164: /* storage_qualifier: BUFFER  */
6337 #line 1395 "MachineIndependent/glslang.y"
6338              {
6339         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
6340         (yyval.interm.type).init((yyvsp[0].lex).loc);
6341         (yyval.interm.type).qualifier.storage = EvqBuffer;
6342     }
6343 #line 6344 "MachineIndependent/glslang_tab.cpp"
6344     break;
6345
6346   case 165: /* storage_qualifier: ATTRIBUTE  */
6347 #line 1401 "MachineIndependent/glslang.y"
6348                 {
6349         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
6350         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
6351         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
6352         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
6353         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
6354
6355         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
6356
6357         (yyval.interm.type).init((yyvsp[0].lex).loc);
6358         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6359     }
6360 #line 6361 "MachineIndependent/glslang_tab.cpp"
6361     break;
6362
6363   case 166: /* storage_qualifier: VARYING  */
6364 #line 1413 "MachineIndependent/glslang.y"
6365               {
6366         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
6367         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
6368         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
6369         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
6370
6371         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
6372
6373         (yyval.interm.type).init((yyvsp[0].lex).loc);
6374         if (parseContext.language == EShLangVertex)
6375             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
6376         else
6377             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
6378     }
6379 #line 6380 "MachineIndependent/glslang_tab.cpp"
6380     break;
6381
6382   case 167: /* storage_qualifier: PATCH  */
6383 #line 1427 "MachineIndependent/glslang.y"
6384             {
6385         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
6386         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
6387         (yyval.interm.type).init((yyvsp[0].lex).loc);
6388         (yyval.interm.type).qualifier.patch = true;
6389     }
6390 #line 6391 "MachineIndependent/glslang_tab.cpp"
6391     break;
6392
6393   case 168: /* storage_qualifier: SAMPLE  */
6394 #line 1433 "MachineIndependent/glslang.y"
6395              {
6396         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
6397         (yyval.interm.type).init((yyvsp[0].lex).loc);
6398         (yyval.interm.type).qualifier.sample = true;
6399     }
6400 #line 6401 "MachineIndependent/glslang_tab.cpp"
6401     break;
6402
6403   case 169: /* storage_qualifier: HITATTRNV  */
6404 #line 1438 "MachineIndependent/glslang.y"
6405                 {
6406         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
6407         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
6408             | EShLangAnyHitMask), "hitAttributeNV");
6409         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
6410         (yyval.interm.type).init((yyvsp[0].lex).loc);
6411         (yyval.interm.type).qualifier.storage = EvqHitAttr;
6412     }
6413 #line 6414 "MachineIndependent/glslang_tab.cpp"
6414     break;
6415
6416   case 170: /* storage_qualifier: HITATTREXT  */
6417 #line 1446 "MachineIndependent/glslang.y"
6418                  {
6419         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
6420         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
6421             | EShLangAnyHitMask), "hitAttributeEXT");
6422         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
6423         (yyval.interm.type).init((yyvsp[0].lex).loc);
6424         (yyval.interm.type).qualifier.storage = EvqHitAttr;
6425     }
6426 #line 6427 "MachineIndependent/glslang_tab.cpp"
6427     break;
6428
6429   case 171: /* storage_qualifier: PAYLOADNV  */
6430 #line 1454 "MachineIndependent/glslang.y"
6431                 {
6432         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
6433         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
6434             EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
6435         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
6436         (yyval.interm.type).init((yyvsp[0].lex).loc);
6437         (yyval.interm.type).qualifier.storage = EvqPayload;
6438     }
6439 #line 6440 "MachineIndependent/glslang_tab.cpp"
6440     break;
6441
6442   case 172: /* storage_qualifier: PAYLOADEXT  */
6443 #line 1462 "MachineIndependent/glslang.y"
6444                  {
6445         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
6446         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
6447             EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
6448         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
6449         (yyval.interm.type).init((yyvsp[0].lex).loc);
6450         (yyval.interm.type).qualifier.storage = EvqPayload;
6451     }
6452 #line 6453 "MachineIndependent/glslang_tab.cpp"
6453     break;
6454
6455   case 173: /* storage_qualifier: PAYLOADINNV  */
6456 #line 1470 "MachineIndependent/glslang.y"
6457                   {
6458         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
6459         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6460             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
6461         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
6462         (yyval.interm.type).init((yyvsp[0].lex).loc);
6463         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6464     }
6465 #line 6466 "MachineIndependent/glslang_tab.cpp"
6466     break;
6467
6468   case 174: /* storage_qualifier: PAYLOADINEXT  */
6469 #line 1478 "MachineIndependent/glslang.y"
6470                    {
6471         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
6472         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6473             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
6474         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
6475         (yyval.interm.type).init((yyvsp[0].lex).loc);
6476         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6477     }
6478 #line 6479 "MachineIndependent/glslang_tab.cpp"
6479     break;
6480
6481   case 175: /* storage_qualifier: CALLDATANV  */
6482 #line 1486 "MachineIndependent/glslang.y"
6483                  {
6484         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
6485         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6486             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
6487         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
6488         (yyval.interm.type).init((yyvsp[0].lex).loc);
6489         (yyval.interm.type).qualifier.storage = EvqCallableData;
6490     }
6491 #line 6492 "MachineIndependent/glslang_tab.cpp"
6492     break;
6493
6494   case 176: /* storage_qualifier: CALLDATAEXT  */
6495 #line 1494 "MachineIndependent/glslang.y"
6496                   {
6497         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
6498         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6499             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
6500         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
6501         (yyval.interm.type).init((yyvsp[0].lex).loc);
6502         (yyval.interm.type).qualifier.storage = EvqCallableData;
6503     }
6504 #line 6505 "MachineIndependent/glslang_tab.cpp"
6505     break;
6506
6507   case 177: /* storage_qualifier: CALLDATAINNV  */
6508 #line 1502 "MachineIndependent/glslang.y"
6509                    {
6510         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
6511         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
6512         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
6513         (yyval.interm.type).init((yyvsp[0].lex).loc);
6514         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6515     }
6516 #line 6517 "MachineIndependent/glslang_tab.cpp"
6517     break;
6518
6519   case 178: /* storage_qualifier: CALLDATAINEXT  */
6520 #line 1509 "MachineIndependent/glslang.y"
6521                     {
6522         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
6523         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
6524         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
6525         (yyval.interm.type).init((yyvsp[0].lex).loc);
6526         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6527     }
6528 #line 6529 "MachineIndependent/glslang_tab.cpp"
6529     break;
6530
6531   case 179: /* storage_qualifier: COHERENT  */
6532 #line 1516 "MachineIndependent/glslang.y"
6533                {
6534         (yyval.interm.type).init((yyvsp[0].lex).loc);
6535         (yyval.interm.type).qualifier.coherent = true;
6536     }
6537 #line 6538 "MachineIndependent/glslang_tab.cpp"
6538     break;
6539
6540   case 180: /* storage_qualifier: DEVICECOHERENT  */
6541 #line 1520 "MachineIndependent/glslang.y"
6542                      {
6543         (yyval.interm.type).init((yyvsp[0].lex).loc);
6544         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
6545         (yyval.interm.type).qualifier.devicecoherent = true;
6546     }
6547 #line 6548 "MachineIndependent/glslang_tab.cpp"
6548     break;
6549
6550   case 181: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
6551 #line 1525 "MachineIndependent/glslang.y"
6552                           {
6553         (yyval.interm.type).init((yyvsp[0].lex).loc);
6554         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
6555         (yyval.interm.type).qualifier.queuefamilycoherent = true;
6556     }
6557 #line 6558 "MachineIndependent/glslang_tab.cpp"
6558     break;
6559
6560   case 182: /* storage_qualifier: WORKGROUPCOHERENT  */
6561 #line 1530 "MachineIndependent/glslang.y"
6562                         {
6563         (yyval.interm.type).init((yyvsp[0].lex).loc);
6564         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6565         (yyval.interm.type).qualifier.workgroupcoherent = true;
6566     }
6567 #line 6568 "MachineIndependent/glslang_tab.cpp"
6568     break;
6569
6570   case 183: /* storage_qualifier: SUBGROUPCOHERENT  */
6571 #line 1535 "MachineIndependent/glslang.y"
6572                        {
6573         (yyval.interm.type).init((yyvsp[0].lex).loc);
6574         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6575         (yyval.interm.type).qualifier.subgroupcoherent = true;
6576     }
6577 #line 6578 "MachineIndependent/glslang_tab.cpp"
6578     break;
6579
6580   case 184: /* storage_qualifier: NONPRIVATE  */
6581 #line 1540 "MachineIndependent/glslang.y"
6582                  {
6583         (yyval.interm.type).init((yyvsp[0].lex).loc);
6584         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6585         (yyval.interm.type).qualifier.nonprivate = true;
6586     }
6587 #line 6588 "MachineIndependent/glslang_tab.cpp"
6588     break;
6589
6590   case 185: /* storage_qualifier: SHADERCALLCOHERENT  */
6591 #line 1545 "MachineIndependent/glslang.y"
6592                          {
6593         (yyval.interm.type).init((yyvsp[0].lex).loc);
6594         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
6595         (yyval.interm.type).qualifier.shadercallcoherent = true;
6596     }
6597 #line 6598 "MachineIndependent/glslang_tab.cpp"
6598     break;
6599
6600   case 186: /* storage_qualifier: VOLATILE  */
6601 #line 1550 "MachineIndependent/glslang.y"
6602                {
6603         (yyval.interm.type).init((yyvsp[0].lex).loc);
6604         (yyval.interm.type).qualifier.volatil = true;
6605     }
6606 #line 6607 "MachineIndependent/glslang_tab.cpp"
6607     break;
6608
6609   case 187: /* storage_qualifier: RESTRICT  */
6610 #line 1554 "MachineIndependent/glslang.y"
6611                {
6612         (yyval.interm.type).init((yyvsp[0].lex).loc);
6613         (yyval.interm.type).qualifier.restrict = true;
6614     }
6615 #line 6616 "MachineIndependent/glslang_tab.cpp"
6616     break;
6617
6618   case 188: /* storage_qualifier: READONLY  */
6619 #line 1558 "MachineIndependent/glslang.y"
6620                {
6621         (yyval.interm.type).init((yyvsp[0].lex).loc);
6622         (yyval.interm.type).qualifier.readonly = true;
6623     }
6624 #line 6625 "MachineIndependent/glslang_tab.cpp"
6625     break;
6626
6627   case 189: /* storage_qualifier: WRITEONLY  */
6628 #line 1562 "MachineIndependent/glslang.y"
6629                 {
6630         (yyval.interm.type).init((yyvsp[0].lex).loc);
6631         (yyval.interm.type).qualifier.writeonly = true;
6632     }
6633 #line 6634 "MachineIndependent/glslang_tab.cpp"
6634     break;
6635
6636   case 190: /* storage_qualifier: SUBROUTINE  */
6637 #line 1566 "MachineIndependent/glslang.y"
6638                  {
6639         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6640         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6641         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6642         (yyval.interm.type).init((yyvsp[0].lex).loc);
6643     }
6644 #line 6645 "MachineIndependent/glslang_tab.cpp"
6645     break;
6646
6647   case 191: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
6648 #line 1572 "MachineIndependent/glslang.y"
6649                                                        {
6650         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6651         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6652         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6653         (yyval.interm.type).init((yyvsp[-3].lex).loc);
6654     }
6655 #line 6656 "MachineIndependent/glslang_tab.cpp"
6656     break;
6657
6658   case 192: /* non_uniform_qualifier: NONUNIFORM  */
6659 #line 1583 "MachineIndependent/glslang.y"
6660                  {
6661         (yyval.interm.type).init((yyvsp[0].lex).loc);
6662         (yyval.interm.type).qualifier.nonUniform = true;
6663     }
6664 #line 6665 "MachineIndependent/glslang_tab.cpp"
6665     break;
6666
6667   case 193: /* type_name_list: IDENTIFIER  */
6668 #line 1590 "MachineIndependent/glslang.y"
6669                  {
6670         // TODO
6671     }
6672 #line 6673 "MachineIndependent/glslang_tab.cpp"
6673     break;
6674
6675   case 194: /* type_name_list: type_name_list COMMA IDENTIFIER  */
6676 #line 1593 "MachineIndependent/glslang.y"
6677                                       {
6678         // TODO: 4.0 semantics: subroutines
6679         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6680         // 2) save all of the identifiers for future comparison with the declared function
6681     }
6682 #line 6683 "MachineIndependent/glslang_tab.cpp"
6683     break;
6684
6685   case 195: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
6686 #line 1602 "MachineIndependent/glslang.y"
6687                                                            {
6688         (yyval.interm.type) = (yyvsp[-1].interm.type);
6689         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6690         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6691     }
6692 #line 6693 "MachineIndependent/glslang_tab.cpp"
6693     break;
6694
6695   case 196: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
6696 #line 1607 "MachineIndependent/glslang.y"
6697                                                                            {
6698         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6699         (yyval.interm.type) = (yyvsp[-2].interm.type);
6700         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6701         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6702         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6703     }
6704 #line 6705 "MachineIndependent/glslang_tab.cpp"
6705     break;
6706
6707   case 197: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
6708 #line 1617 "MachineIndependent/glslang.y"
6709                                  {
6710         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6711         (yyval.interm).arraySizes = new TArraySizes;
6712         (yyval.interm).arraySizes->addInnerSize();
6713     }
6714 #line 6715 "MachineIndependent/glslang_tab.cpp"
6715     break;
6716
6717   case 198: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
6718 #line 1622 "MachineIndependent/glslang.y"
6719                                                         {
6720         (yyval.interm).loc = (yyvsp[-2].lex).loc;
6721         (yyval.interm).arraySizes = new TArraySizes;
6722
6723         TArraySize size;
6724         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6725         (yyval.interm).arraySizes->addInnerSize(size);
6726     }
6727 #line 6728 "MachineIndependent/glslang_tab.cpp"
6728     break;
6729
6730   case 199: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
6731 #line 1630 "MachineIndependent/glslang.y"
6732                                                  {
6733         (yyval.interm) = (yyvsp[-2].interm);
6734         (yyval.interm).arraySizes->addInnerSize();
6735     }
6736 #line 6737 "MachineIndependent/glslang_tab.cpp"
6737     break;
6738
6739   case 200: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
6740 #line 1634 "MachineIndependent/glslang.y"
6741                                                                         {
6742         (yyval.interm) = (yyvsp[-3].interm);
6743
6744         TArraySize size;
6745         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6746         (yyval.interm).arraySizes->addInnerSize(size);
6747     }
6748 #line 6749 "MachineIndependent/glslang_tab.cpp"
6749     break;
6750
6751   case 201: /* type_parameter_specifier_opt: type_parameter_specifier  */
6752 #line 1644 "MachineIndependent/glslang.y"
6753                                {
6754         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6755     }
6756 #line 6757 "MachineIndependent/glslang_tab.cpp"
6757     break;
6758
6759   case 202: /* type_parameter_specifier_opt: %empty  */
6760 #line 1647 "MachineIndependent/glslang.y"
6761                         {
6762         (yyval.interm.typeParameters) = 0;
6763     }
6764 #line 6765 "MachineIndependent/glslang_tab.cpp"
6765     break;
6766
6767   case 203: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
6768 #line 1653 "MachineIndependent/glslang.y"
6769                                                            {
6770         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6771     }
6772 #line 6773 "MachineIndependent/glslang_tab.cpp"
6773     break;
6774
6775   case 204: /* type_parameter_specifier_list: unary_expression  */
6776 #line 1659 "MachineIndependent/glslang.y"
6777                        {
6778         (yyval.interm.typeParameters) = new TArraySizes;
6779
6780         TArraySize size;
6781         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6782         (yyval.interm.typeParameters)->addInnerSize(size);
6783     }
6784 #line 6785 "MachineIndependent/glslang_tab.cpp"
6785     break;
6786
6787   case 205: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
6788 #line 1666 "MachineIndependent/glslang.y"
6789                                                            {
6790         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6791
6792         TArraySize size;
6793         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6794         (yyval.interm.typeParameters)->addInnerSize(size);
6795     }
6796 #line 6797 "MachineIndependent/glslang_tab.cpp"
6797     break;
6798
6799   case 206: /* type_specifier_nonarray: VOID  */
6800 #line 1676 "MachineIndependent/glslang.y"
6801            {
6802         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6803         (yyval.interm.type).basicType = EbtVoid;
6804     }
6805 #line 6806 "MachineIndependent/glslang_tab.cpp"
6806     break;
6807
6808   case 207: /* type_specifier_nonarray: FLOAT  */
6809 #line 1680 "MachineIndependent/glslang.y"
6810             {
6811         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6812         (yyval.interm.type).basicType = EbtFloat;
6813     }
6814 #line 6815 "MachineIndependent/glslang_tab.cpp"
6815     break;
6816
6817   case 208: /* type_specifier_nonarray: INT  */
6818 #line 1684 "MachineIndependent/glslang.y"
6819           {
6820         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6821         (yyval.interm.type).basicType = EbtInt;
6822     }
6823 #line 6824 "MachineIndependent/glslang_tab.cpp"
6824     break;
6825
6826   case 209: /* type_specifier_nonarray: UINT  */
6827 #line 1688 "MachineIndependent/glslang.y"
6828            {
6829         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6830         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6831         (yyval.interm.type).basicType = EbtUint;
6832     }
6833 #line 6834 "MachineIndependent/glslang_tab.cpp"
6834     break;
6835
6836   case 210: /* type_specifier_nonarray: BOOL  */
6837 #line 1693 "MachineIndependent/glslang.y"
6838            {
6839         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6840         (yyval.interm.type).basicType = EbtBool;
6841     }
6842 #line 6843 "MachineIndependent/glslang_tab.cpp"
6843     break;
6844
6845   case 211: /* type_specifier_nonarray: VEC2  */
6846 #line 1697 "MachineIndependent/glslang.y"
6847            {
6848         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6849         (yyval.interm.type).basicType = EbtFloat;
6850         (yyval.interm.type).setVector(2);
6851     }
6852 #line 6853 "MachineIndependent/glslang_tab.cpp"
6853     break;
6854
6855   case 212: /* type_specifier_nonarray: VEC3  */
6856 #line 1702 "MachineIndependent/glslang.y"
6857            {
6858         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6859         (yyval.interm.type).basicType = EbtFloat;
6860         (yyval.interm.type).setVector(3);
6861     }
6862 #line 6863 "MachineIndependent/glslang_tab.cpp"
6863     break;
6864
6865   case 213: /* type_specifier_nonarray: VEC4  */
6866 #line 1707 "MachineIndependent/glslang.y"
6867            {
6868         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6869         (yyval.interm.type).basicType = EbtFloat;
6870         (yyval.interm.type).setVector(4);
6871     }
6872 #line 6873 "MachineIndependent/glslang_tab.cpp"
6873     break;
6874
6875   case 214: /* type_specifier_nonarray: BVEC2  */
6876 #line 1712 "MachineIndependent/glslang.y"
6877             {
6878         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6879         (yyval.interm.type).basicType = EbtBool;
6880         (yyval.interm.type).setVector(2);
6881     }
6882 #line 6883 "MachineIndependent/glslang_tab.cpp"
6883     break;
6884
6885   case 215: /* type_specifier_nonarray: BVEC3  */
6886 #line 1717 "MachineIndependent/glslang.y"
6887             {
6888         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6889         (yyval.interm.type).basicType = EbtBool;
6890         (yyval.interm.type).setVector(3);
6891     }
6892 #line 6893 "MachineIndependent/glslang_tab.cpp"
6893     break;
6894
6895   case 216: /* type_specifier_nonarray: BVEC4  */
6896 #line 1722 "MachineIndependent/glslang.y"
6897             {
6898         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6899         (yyval.interm.type).basicType = EbtBool;
6900         (yyval.interm.type).setVector(4);
6901     }
6902 #line 6903 "MachineIndependent/glslang_tab.cpp"
6903     break;
6904
6905   case 217: /* type_specifier_nonarray: IVEC2  */
6906 #line 1727 "MachineIndependent/glslang.y"
6907             {
6908         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6909         (yyval.interm.type).basicType = EbtInt;
6910         (yyval.interm.type).setVector(2);
6911     }
6912 #line 6913 "MachineIndependent/glslang_tab.cpp"
6913     break;
6914
6915   case 218: /* type_specifier_nonarray: IVEC3  */
6916 #line 1732 "MachineIndependent/glslang.y"
6917             {
6918         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6919         (yyval.interm.type).basicType = EbtInt;
6920         (yyval.interm.type).setVector(3);
6921     }
6922 #line 6923 "MachineIndependent/glslang_tab.cpp"
6923     break;
6924
6925   case 219: /* type_specifier_nonarray: IVEC4  */
6926 #line 1737 "MachineIndependent/glslang.y"
6927             {
6928         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6929         (yyval.interm.type).basicType = EbtInt;
6930         (yyval.interm.type).setVector(4);
6931     }
6932 #line 6933 "MachineIndependent/glslang_tab.cpp"
6933     break;
6934
6935   case 220: /* type_specifier_nonarray: UVEC2  */
6936 #line 1742 "MachineIndependent/glslang.y"
6937             {
6938         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6939         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6940         (yyval.interm.type).basicType = EbtUint;
6941         (yyval.interm.type).setVector(2);
6942     }
6943 #line 6944 "MachineIndependent/glslang_tab.cpp"
6944     break;
6945
6946   case 221: /* type_specifier_nonarray: UVEC3  */
6947 #line 1748 "MachineIndependent/glslang.y"
6948             {
6949         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6950         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6951         (yyval.interm.type).basicType = EbtUint;
6952         (yyval.interm.type).setVector(3);
6953     }
6954 #line 6955 "MachineIndependent/glslang_tab.cpp"
6955     break;
6956
6957   case 222: /* type_specifier_nonarray: UVEC4  */
6958 #line 1754 "MachineIndependent/glslang.y"
6959             {
6960         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6961         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6962         (yyval.interm.type).basicType = EbtUint;
6963         (yyval.interm.type).setVector(4);
6964     }
6965 #line 6966 "MachineIndependent/glslang_tab.cpp"
6966     break;
6967
6968   case 223: /* type_specifier_nonarray: MAT2  */
6969 #line 1760 "MachineIndependent/glslang.y"
6970            {
6971         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6972         (yyval.interm.type).basicType = EbtFloat;
6973         (yyval.interm.type).setMatrix(2, 2);
6974     }
6975 #line 6976 "MachineIndependent/glslang_tab.cpp"
6976     break;
6977
6978   case 224: /* type_specifier_nonarray: MAT3  */
6979 #line 1765 "MachineIndependent/glslang.y"
6980            {
6981         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6982         (yyval.interm.type).basicType = EbtFloat;
6983         (yyval.interm.type).setMatrix(3, 3);
6984     }
6985 #line 6986 "MachineIndependent/glslang_tab.cpp"
6986     break;
6987
6988   case 225: /* type_specifier_nonarray: MAT4  */
6989 #line 1770 "MachineIndependent/glslang.y"
6990            {
6991         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6992         (yyval.interm.type).basicType = EbtFloat;
6993         (yyval.interm.type).setMatrix(4, 4);
6994     }
6995 #line 6996 "MachineIndependent/glslang_tab.cpp"
6996     break;
6997
6998   case 226: /* type_specifier_nonarray: MAT2X2  */
6999 #line 1775 "MachineIndependent/glslang.y"
7000              {
7001         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7002         (yyval.interm.type).basicType = EbtFloat;
7003         (yyval.interm.type).setMatrix(2, 2);
7004     }
7005 #line 7006 "MachineIndependent/glslang_tab.cpp"
7006     break;
7007
7008   case 227: /* type_specifier_nonarray: MAT2X3  */
7009 #line 1780 "MachineIndependent/glslang.y"
7010              {
7011         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7012         (yyval.interm.type).basicType = EbtFloat;
7013         (yyval.interm.type).setMatrix(2, 3);
7014     }
7015 #line 7016 "MachineIndependent/glslang_tab.cpp"
7016     break;
7017
7018   case 228: /* type_specifier_nonarray: MAT2X4  */
7019 #line 1785 "MachineIndependent/glslang.y"
7020              {
7021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7022         (yyval.interm.type).basicType = EbtFloat;
7023         (yyval.interm.type).setMatrix(2, 4);
7024     }
7025 #line 7026 "MachineIndependent/glslang_tab.cpp"
7026     break;
7027
7028   case 229: /* type_specifier_nonarray: MAT3X2  */
7029 #line 1790 "MachineIndependent/glslang.y"
7030              {
7031         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7032         (yyval.interm.type).basicType = EbtFloat;
7033         (yyval.interm.type).setMatrix(3, 2);
7034     }
7035 #line 7036 "MachineIndependent/glslang_tab.cpp"
7036     break;
7037
7038   case 230: /* type_specifier_nonarray: MAT3X3  */
7039 #line 1795 "MachineIndependent/glslang.y"
7040              {
7041         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7042         (yyval.interm.type).basicType = EbtFloat;
7043         (yyval.interm.type).setMatrix(3, 3);
7044     }
7045 #line 7046 "MachineIndependent/glslang_tab.cpp"
7046     break;
7047
7048   case 231: /* type_specifier_nonarray: MAT3X4  */
7049 #line 1800 "MachineIndependent/glslang.y"
7050              {
7051         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7052         (yyval.interm.type).basicType = EbtFloat;
7053         (yyval.interm.type).setMatrix(3, 4);
7054     }
7055 #line 7056 "MachineIndependent/glslang_tab.cpp"
7056     break;
7057
7058   case 232: /* type_specifier_nonarray: MAT4X2  */
7059 #line 1805 "MachineIndependent/glslang.y"
7060              {
7061         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7062         (yyval.interm.type).basicType = EbtFloat;
7063         (yyval.interm.type).setMatrix(4, 2);
7064     }
7065 #line 7066 "MachineIndependent/glslang_tab.cpp"
7066     break;
7067
7068   case 233: /* type_specifier_nonarray: MAT4X3  */
7069 #line 1810 "MachineIndependent/glslang.y"
7070              {
7071         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7072         (yyval.interm.type).basicType = EbtFloat;
7073         (yyval.interm.type).setMatrix(4, 3);
7074     }
7075 #line 7076 "MachineIndependent/glslang_tab.cpp"
7076     break;
7077
7078   case 234: /* type_specifier_nonarray: MAT4X4  */
7079 #line 1815 "MachineIndependent/glslang.y"
7080              {
7081         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7082         (yyval.interm.type).basicType = EbtFloat;
7083         (yyval.interm.type).setMatrix(4, 4);
7084     }
7085 #line 7086 "MachineIndependent/glslang_tab.cpp"
7086     break;
7087
7088   case 235: /* type_specifier_nonarray: DOUBLE  */
7089 #line 1821 "MachineIndependent/glslang.y"
7090              {
7091         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
7092         if (! parseContext.symbolTable.atBuiltInLevel())
7093             parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
7094         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7095         (yyval.interm.type).basicType = EbtDouble;
7096     }
7097 #line 7098 "MachineIndependent/glslang_tab.cpp"
7098     break;
7099
7100   case 236: /* type_specifier_nonarray: FLOAT16_T  */
7101 #line 1828 "MachineIndependent/glslang.y"
7102                 {
7103         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
7104         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7105         (yyval.interm.type).basicType = EbtFloat16;
7106     }
7107 #line 7108 "MachineIndependent/glslang_tab.cpp"
7108     break;
7109
7110   case 237: /* type_specifier_nonarray: FLOAT32_T  */
7111 #line 1833 "MachineIndependent/glslang.y"
7112                 {
7113         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
7114         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7115         (yyval.interm.type).basicType = EbtFloat;
7116     }
7117 #line 7118 "MachineIndependent/glslang_tab.cpp"
7118     break;
7119
7120   case 238: /* type_specifier_nonarray: FLOAT64_T  */
7121 #line 1838 "MachineIndependent/glslang.y"
7122                 {
7123         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
7124         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7125         (yyval.interm.type).basicType = EbtDouble;
7126     }
7127 #line 7128 "MachineIndependent/glslang_tab.cpp"
7128     break;
7129
7130   case 239: /* type_specifier_nonarray: INT8_T  */
7131 #line 1843 "MachineIndependent/glslang.y"
7132              {
7133         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7134         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7135         (yyval.interm.type).basicType = EbtInt8;
7136     }
7137 #line 7138 "MachineIndependent/glslang_tab.cpp"
7138     break;
7139
7140   case 240: /* type_specifier_nonarray: UINT8_T  */
7141 #line 1848 "MachineIndependent/glslang.y"
7142               {
7143         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7144         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7145         (yyval.interm.type).basicType = EbtUint8;
7146     }
7147 #line 7148 "MachineIndependent/glslang_tab.cpp"
7148     break;
7149
7150   case 241: /* type_specifier_nonarray: INT16_T  */
7151 #line 1853 "MachineIndependent/glslang.y"
7152               {
7153         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7154         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7155         (yyval.interm.type).basicType = EbtInt16;
7156     }
7157 #line 7158 "MachineIndependent/glslang_tab.cpp"
7158     break;
7159
7160   case 242: /* type_specifier_nonarray: UINT16_T  */
7161 #line 1858 "MachineIndependent/glslang.y"
7162                {
7163         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7164         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7165         (yyval.interm.type).basicType = EbtUint16;
7166     }
7167 #line 7168 "MachineIndependent/glslang_tab.cpp"
7168     break;
7169
7170   case 243: /* type_specifier_nonarray: INT32_T  */
7171 #line 1863 "MachineIndependent/glslang.y"
7172               {
7173         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
7174         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7175         (yyval.interm.type).basicType = EbtInt;
7176     }
7177 #line 7178 "MachineIndependent/glslang_tab.cpp"
7178     break;
7179
7180   case 244: /* type_specifier_nonarray: UINT32_T  */
7181 #line 1868 "MachineIndependent/glslang.y"
7182                {
7183         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7184         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7185         (yyval.interm.type).basicType = EbtUint;
7186     }
7187 #line 7188 "MachineIndependent/glslang_tab.cpp"
7188     break;
7189
7190   case 245: /* type_specifier_nonarray: INT64_T  */
7191 #line 1873 "MachineIndependent/glslang.y"
7192               {
7193         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
7194         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7195         (yyval.interm.type).basicType = EbtInt64;
7196     }
7197 #line 7198 "MachineIndependent/glslang_tab.cpp"
7198     break;
7199
7200   case 246: /* type_specifier_nonarray: UINT64_T  */
7201 #line 1878 "MachineIndependent/glslang.y"
7202                {
7203         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
7204         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7205         (yyval.interm.type).basicType = EbtUint64;
7206     }
7207 #line 7208 "MachineIndependent/glslang_tab.cpp"
7208     break;
7209
7210   case 247: /* type_specifier_nonarray: DVEC2  */
7211 #line 1883 "MachineIndependent/glslang.y"
7212             {
7213         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7214         if (! parseContext.symbolTable.atBuiltInLevel())
7215             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7217         (yyval.interm.type).basicType = EbtDouble;
7218         (yyval.interm.type).setVector(2);
7219     }
7220 #line 7221 "MachineIndependent/glslang_tab.cpp"
7221     break;
7222
7223   case 248: /* type_specifier_nonarray: DVEC3  */
7224 #line 1891 "MachineIndependent/glslang.y"
7225             {
7226         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7227         if (! parseContext.symbolTable.atBuiltInLevel())
7228             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7229         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7230         (yyval.interm.type).basicType = EbtDouble;
7231         (yyval.interm.type).setVector(3);
7232     }
7233 #line 7234 "MachineIndependent/glslang_tab.cpp"
7234     break;
7235
7236   case 249: /* type_specifier_nonarray: DVEC4  */
7237 #line 1899 "MachineIndependent/glslang.y"
7238             {
7239         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
7240         if (! parseContext.symbolTable.atBuiltInLevel())
7241             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
7242         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7243         (yyval.interm.type).basicType = EbtDouble;
7244         (yyval.interm.type).setVector(4);
7245     }
7246 #line 7247 "MachineIndependent/glslang_tab.cpp"
7247     break;
7248
7249   case 250: /* type_specifier_nonarray: F16VEC2  */
7250 #line 1907 "MachineIndependent/glslang.y"
7251               {
7252         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7253         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7254         (yyval.interm.type).basicType = EbtFloat16;
7255         (yyval.interm.type).setVector(2);
7256     }
7257 #line 7258 "MachineIndependent/glslang_tab.cpp"
7258     break;
7259
7260   case 251: /* type_specifier_nonarray: F16VEC3  */
7261 #line 1913 "MachineIndependent/glslang.y"
7262               {
7263         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7264         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7265         (yyval.interm.type).basicType = EbtFloat16;
7266         (yyval.interm.type).setVector(3);
7267     }
7268 #line 7269 "MachineIndependent/glslang_tab.cpp"
7269     break;
7270
7271   case 252: /* type_specifier_nonarray: F16VEC4  */
7272 #line 1919 "MachineIndependent/glslang.y"
7273               {
7274         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
7275         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7276         (yyval.interm.type).basicType = EbtFloat16;
7277         (yyval.interm.type).setVector(4);
7278     }
7279 #line 7280 "MachineIndependent/glslang_tab.cpp"
7280     break;
7281
7282   case 253: /* type_specifier_nonarray: F32VEC2  */
7283 #line 1925 "MachineIndependent/glslang.y"
7284               {
7285         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7286         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287         (yyval.interm.type).basicType = EbtFloat;
7288         (yyval.interm.type).setVector(2);
7289     }
7290 #line 7291 "MachineIndependent/glslang_tab.cpp"
7291     break;
7292
7293   case 254: /* type_specifier_nonarray: F32VEC3  */
7294 #line 1931 "MachineIndependent/glslang.y"
7295               {
7296         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7297         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7298         (yyval.interm.type).basicType = EbtFloat;
7299         (yyval.interm.type).setVector(3);
7300     }
7301 #line 7302 "MachineIndependent/glslang_tab.cpp"
7302     break;
7303
7304   case 255: /* type_specifier_nonarray: F32VEC4  */
7305 #line 1937 "MachineIndependent/glslang.y"
7306               {
7307         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
7308         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7309         (yyval.interm.type).basicType = EbtFloat;
7310         (yyval.interm.type).setVector(4);
7311     }
7312 #line 7313 "MachineIndependent/glslang_tab.cpp"
7313     break;
7314
7315   case 256: /* type_specifier_nonarray: F64VEC2  */
7316 #line 1943 "MachineIndependent/glslang.y"
7317               {
7318         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7319         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7320         (yyval.interm.type).basicType = EbtDouble;
7321         (yyval.interm.type).setVector(2);
7322     }
7323 #line 7324 "MachineIndependent/glslang_tab.cpp"
7324     break;
7325
7326   case 257: /* type_specifier_nonarray: F64VEC3  */
7327 #line 1949 "MachineIndependent/glslang.y"
7328               {
7329         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7330         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7331         (yyval.interm.type).basicType = EbtDouble;
7332         (yyval.interm.type).setVector(3);
7333     }
7334 #line 7335 "MachineIndependent/glslang_tab.cpp"
7335     break;
7336
7337   case 258: /* type_specifier_nonarray: F64VEC4  */
7338 #line 1955 "MachineIndependent/glslang.y"
7339               {
7340         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
7341         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7342         (yyval.interm.type).basicType = EbtDouble;
7343         (yyval.interm.type).setVector(4);
7344     }
7345 #line 7346 "MachineIndependent/glslang_tab.cpp"
7346     break;
7347
7348   case 259: /* type_specifier_nonarray: I8VEC2  */
7349 #line 1961 "MachineIndependent/glslang.y"
7350              {
7351         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7352         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7353         (yyval.interm.type).basicType = EbtInt8;
7354         (yyval.interm.type).setVector(2);
7355     }
7356 #line 7357 "MachineIndependent/glslang_tab.cpp"
7357     break;
7358
7359   case 260: /* type_specifier_nonarray: I8VEC3  */
7360 #line 1967 "MachineIndependent/glslang.y"
7361              {
7362         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7363         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7364         (yyval.interm.type).basicType = EbtInt8;
7365         (yyval.interm.type).setVector(3);
7366     }
7367 #line 7368 "MachineIndependent/glslang_tab.cpp"
7368     break;
7369
7370   case 261: /* type_specifier_nonarray: I8VEC4  */
7371 #line 1973 "MachineIndependent/glslang.y"
7372              {
7373         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7374         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7375         (yyval.interm.type).basicType = EbtInt8;
7376         (yyval.interm.type).setVector(4);
7377     }
7378 #line 7379 "MachineIndependent/glslang_tab.cpp"
7379     break;
7380
7381   case 262: /* type_specifier_nonarray: I16VEC2  */
7382 #line 1979 "MachineIndependent/glslang.y"
7383               {
7384         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7385         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7386         (yyval.interm.type).basicType = EbtInt16;
7387         (yyval.interm.type).setVector(2);
7388     }
7389 #line 7390 "MachineIndependent/glslang_tab.cpp"
7390     break;
7391
7392   case 263: /* type_specifier_nonarray: I16VEC3  */
7393 #line 1985 "MachineIndependent/glslang.y"
7394               {
7395         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7397         (yyval.interm.type).basicType = EbtInt16;
7398         (yyval.interm.type).setVector(3);
7399     }
7400 #line 7401 "MachineIndependent/glslang_tab.cpp"
7401     break;
7402
7403   case 264: /* type_specifier_nonarray: I16VEC4  */
7404 #line 1991 "MachineIndependent/glslang.y"
7405               {
7406         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7407         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7408         (yyval.interm.type).basicType = EbtInt16;
7409         (yyval.interm.type).setVector(4);
7410     }
7411 #line 7412 "MachineIndependent/glslang_tab.cpp"
7412     break;
7413
7414   case 265: /* type_specifier_nonarray: I32VEC2  */
7415 #line 1997 "MachineIndependent/glslang.y"
7416               {
7417         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7418         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419         (yyval.interm.type).basicType = EbtInt;
7420         (yyval.interm.type).setVector(2);
7421     }
7422 #line 7423 "MachineIndependent/glslang_tab.cpp"
7423     break;
7424
7425   case 266: /* type_specifier_nonarray: I32VEC3  */
7426 #line 2003 "MachineIndependent/glslang.y"
7427               {
7428         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7429         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7430         (yyval.interm.type).basicType = EbtInt;
7431         (yyval.interm.type).setVector(3);
7432     }
7433 #line 7434 "MachineIndependent/glslang_tab.cpp"
7434     break;
7435
7436   case 267: /* type_specifier_nonarray: I32VEC4  */
7437 #line 2009 "MachineIndependent/glslang.y"
7438               {
7439         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
7440         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7441         (yyval.interm.type).basicType = EbtInt;
7442         (yyval.interm.type).setVector(4);
7443     }
7444 #line 7445 "MachineIndependent/glslang_tab.cpp"
7445     break;
7446
7447   case 268: /* type_specifier_nonarray: I64VEC2  */
7448 #line 2015 "MachineIndependent/glslang.y"
7449               {
7450         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7451         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7452         (yyval.interm.type).basicType = EbtInt64;
7453         (yyval.interm.type).setVector(2);
7454     }
7455 #line 7456 "MachineIndependent/glslang_tab.cpp"
7456     break;
7457
7458   case 269: /* type_specifier_nonarray: I64VEC3  */
7459 #line 2021 "MachineIndependent/glslang.y"
7460               {
7461         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7462         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7463         (yyval.interm.type).basicType = EbtInt64;
7464         (yyval.interm.type).setVector(3);
7465     }
7466 #line 7467 "MachineIndependent/glslang_tab.cpp"
7467     break;
7468
7469   case 270: /* type_specifier_nonarray: I64VEC4  */
7470 #line 2027 "MachineIndependent/glslang.y"
7471               {
7472         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7473         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7474         (yyval.interm.type).basicType = EbtInt64;
7475         (yyval.interm.type).setVector(4);
7476     }
7477 #line 7478 "MachineIndependent/glslang_tab.cpp"
7478     break;
7479
7480   case 271: /* type_specifier_nonarray: U8VEC2  */
7481 #line 2033 "MachineIndependent/glslang.y"
7482              {
7483         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7484         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7485         (yyval.interm.type).basicType = EbtUint8;
7486         (yyval.interm.type).setVector(2);
7487     }
7488 #line 7489 "MachineIndependent/glslang_tab.cpp"
7489     break;
7490
7491   case 272: /* type_specifier_nonarray: U8VEC3  */
7492 #line 2039 "MachineIndependent/glslang.y"
7493              {
7494         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7495         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7496         (yyval.interm.type).basicType = EbtUint8;
7497         (yyval.interm.type).setVector(3);
7498     }
7499 #line 7500 "MachineIndependent/glslang_tab.cpp"
7500     break;
7501
7502   case 273: /* type_specifier_nonarray: U8VEC4  */
7503 #line 2045 "MachineIndependent/glslang.y"
7504              {
7505         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7506         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507         (yyval.interm.type).basicType = EbtUint8;
7508         (yyval.interm.type).setVector(4);
7509     }
7510 #line 7511 "MachineIndependent/glslang_tab.cpp"
7511     break;
7512
7513   case 274: /* type_specifier_nonarray: U16VEC2  */
7514 #line 2051 "MachineIndependent/glslang.y"
7515               {
7516         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7517         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7518         (yyval.interm.type).basicType = EbtUint16;
7519         (yyval.interm.type).setVector(2);
7520     }
7521 #line 7522 "MachineIndependent/glslang_tab.cpp"
7522     break;
7523
7524   case 275: /* type_specifier_nonarray: U16VEC3  */
7525 #line 2057 "MachineIndependent/glslang.y"
7526               {
7527         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7528         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7529         (yyval.interm.type).basicType = EbtUint16;
7530         (yyval.interm.type).setVector(3);
7531     }
7532 #line 7533 "MachineIndependent/glslang_tab.cpp"
7533     break;
7534
7535   case 276: /* type_specifier_nonarray: U16VEC4  */
7536 #line 2063 "MachineIndependent/glslang.y"
7537               {
7538         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7539         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7540         (yyval.interm.type).basicType = EbtUint16;
7541         (yyval.interm.type).setVector(4);
7542     }
7543 #line 7544 "MachineIndependent/glslang_tab.cpp"
7544     break;
7545
7546   case 277: /* type_specifier_nonarray: U32VEC2  */
7547 #line 2069 "MachineIndependent/glslang.y"
7548               {
7549         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7550         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7551         (yyval.interm.type).basicType = EbtUint;
7552         (yyval.interm.type).setVector(2);
7553     }
7554 #line 7555 "MachineIndependent/glslang_tab.cpp"
7555     break;
7556
7557   case 278: /* type_specifier_nonarray: U32VEC3  */
7558 #line 2075 "MachineIndependent/glslang.y"
7559               {
7560         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7561         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7562         (yyval.interm.type).basicType = EbtUint;
7563         (yyval.interm.type).setVector(3);
7564     }
7565 #line 7566 "MachineIndependent/glslang_tab.cpp"
7566     break;
7567
7568   case 279: /* type_specifier_nonarray: U32VEC4  */
7569 #line 2081 "MachineIndependent/glslang.y"
7570               {
7571         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7572         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7573         (yyval.interm.type).basicType = EbtUint;
7574         (yyval.interm.type).setVector(4);
7575     }
7576 #line 7577 "MachineIndependent/glslang_tab.cpp"
7577     break;
7578
7579   case 280: /* type_specifier_nonarray: U64VEC2  */
7580 #line 2087 "MachineIndependent/glslang.y"
7581               {
7582         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7583         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7584         (yyval.interm.type).basicType = EbtUint64;
7585         (yyval.interm.type).setVector(2);
7586     }
7587 #line 7588 "MachineIndependent/glslang_tab.cpp"
7588     break;
7589
7590   case 281: /* type_specifier_nonarray: U64VEC3  */
7591 #line 2093 "MachineIndependent/glslang.y"
7592               {
7593         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7594         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7595         (yyval.interm.type).basicType = EbtUint64;
7596         (yyval.interm.type).setVector(3);
7597     }
7598 #line 7599 "MachineIndependent/glslang_tab.cpp"
7599     break;
7600
7601   case 282: /* type_specifier_nonarray: U64VEC4  */
7602 #line 2099 "MachineIndependent/glslang.y"
7603               {
7604         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7605         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7606         (yyval.interm.type).basicType = EbtUint64;
7607         (yyval.interm.type).setVector(4);
7608     }
7609 #line 7610 "MachineIndependent/glslang_tab.cpp"
7610     break;
7611
7612   case 283: /* type_specifier_nonarray: DMAT2  */
7613 #line 2105 "MachineIndependent/glslang.y"
7614             {
7615         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7616         if (! parseContext.symbolTable.atBuiltInLevel())
7617             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7618         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7619         (yyval.interm.type).basicType = EbtDouble;
7620         (yyval.interm.type).setMatrix(2, 2);
7621     }
7622 #line 7623 "MachineIndependent/glslang_tab.cpp"
7623     break;
7624
7625   case 284: /* type_specifier_nonarray: DMAT3  */
7626 #line 2113 "MachineIndependent/glslang.y"
7627             {
7628         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7629         if (! parseContext.symbolTable.atBuiltInLevel())
7630             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7631         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632         (yyval.interm.type).basicType = EbtDouble;
7633         (yyval.interm.type).setMatrix(3, 3);
7634     }
7635 #line 7636 "MachineIndependent/glslang_tab.cpp"
7636     break;
7637
7638   case 285: /* type_specifier_nonarray: DMAT4  */
7639 #line 2121 "MachineIndependent/glslang.y"
7640             {
7641         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7642         if (! parseContext.symbolTable.atBuiltInLevel())
7643             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7644         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7645         (yyval.interm.type).basicType = EbtDouble;
7646         (yyval.interm.type).setMatrix(4, 4);
7647     }
7648 #line 7649 "MachineIndependent/glslang_tab.cpp"
7649     break;
7650
7651   case 286: /* type_specifier_nonarray: DMAT2X2  */
7652 #line 2129 "MachineIndependent/glslang.y"
7653               {
7654         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7655         if (! parseContext.symbolTable.atBuiltInLevel())
7656             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7657         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7658         (yyval.interm.type).basicType = EbtDouble;
7659         (yyval.interm.type).setMatrix(2, 2);
7660     }
7661 #line 7662 "MachineIndependent/glslang_tab.cpp"
7662     break;
7663
7664   case 287: /* type_specifier_nonarray: DMAT2X3  */
7665 #line 2137 "MachineIndependent/glslang.y"
7666               {
7667         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7668         if (! parseContext.symbolTable.atBuiltInLevel())
7669             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7670         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7671         (yyval.interm.type).basicType = EbtDouble;
7672         (yyval.interm.type).setMatrix(2, 3);
7673     }
7674 #line 7675 "MachineIndependent/glslang_tab.cpp"
7675     break;
7676
7677   case 288: /* type_specifier_nonarray: DMAT2X4  */
7678 #line 2145 "MachineIndependent/glslang.y"
7679               {
7680         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7681         if (! parseContext.symbolTable.atBuiltInLevel())
7682             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7683         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7684         (yyval.interm.type).basicType = EbtDouble;
7685         (yyval.interm.type).setMatrix(2, 4);
7686     }
7687 #line 7688 "MachineIndependent/glslang_tab.cpp"
7688     break;
7689
7690   case 289: /* type_specifier_nonarray: DMAT3X2  */
7691 #line 2153 "MachineIndependent/glslang.y"
7692               {
7693         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7694         if (! parseContext.symbolTable.atBuiltInLevel())
7695             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7696         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7697         (yyval.interm.type).basicType = EbtDouble;
7698         (yyval.interm.type).setMatrix(3, 2);
7699     }
7700 #line 7701 "MachineIndependent/glslang_tab.cpp"
7701     break;
7702
7703   case 290: /* type_specifier_nonarray: DMAT3X3  */
7704 #line 2161 "MachineIndependent/glslang.y"
7705               {
7706         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7707         if (! parseContext.symbolTable.atBuiltInLevel())
7708             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7709         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7710         (yyval.interm.type).basicType = EbtDouble;
7711         (yyval.interm.type).setMatrix(3, 3);
7712     }
7713 #line 7714 "MachineIndependent/glslang_tab.cpp"
7714     break;
7715
7716   case 291: /* type_specifier_nonarray: DMAT3X4  */
7717 #line 2169 "MachineIndependent/glslang.y"
7718               {
7719         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7720         if (! parseContext.symbolTable.atBuiltInLevel())
7721             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7722         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7723         (yyval.interm.type).basicType = EbtDouble;
7724         (yyval.interm.type).setMatrix(3, 4);
7725     }
7726 #line 7727 "MachineIndependent/glslang_tab.cpp"
7727     break;
7728
7729   case 292: /* type_specifier_nonarray: DMAT4X2  */
7730 #line 2177 "MachineIndependent/glslang.y"
7731               {
7732         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7733         if (! parseContext.symbolTable.atBuiltInLevel())
7734             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7735         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7736         (yyval.interm.type).basicType = EbtDouble;
7737         (yyval.interm.type).setMatrix(4, 2);
7738     }
7739 #line 7740 "MachineIndependent/glslang_tab.cpp"
7740     break;
7741
7742   case 293: /* type_specifier_nonarray: DMAT4X3  */
7743 #line 2185 "MachineIndependent/glslang.y"
7744               {
7745         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7746         if (! parseContext.symbolTable.atBuiltInLevel())
7747             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7748         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7749         (yyval.interm.type).basicType = EbtDouble;
7750         (yyval.interm.type).setMatrix(4, 3);
7751     }
7752 #line 7753 "MachineIndependent/glslang_tab.cpp"
7753     break;
7754
7755   case 294: /* type_specifier_nonarray: DMAT4X4  */
7756 #line 2193 "MachineIndependent/glslang.y"
7757               {
7758         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7759         if (! parseContext.symbolTable.atBuiltInLevel())
7760             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7761         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7762         (yyval.interm.type).basicType = EbtDouble;
7763         (yyval.interm.type).setMatrix(4, 4);
7764     }
7765 #line 7766 "MachineIndependent/glslang_tab.cpp"
7766     break;
7767
7768   case 295: /* type_specifier_nonarray: F16MAT2  */
7769 #line 2201 "MachineIndependent/glslang.y"
7770               {
7771         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7772         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7773         (yyval.interm.type).basicType = EbtFloat16;
7774         (yyval.interm.type).setMatrix(2, 2);
7775     }
7776 #line 7777 "MachineIndependent/glslang_tab.cpp"
7777     break;
7778
7779   case 296: /* type_specifier_nonarray: F16MAT3  */
7780 #line 2207 "MachineIndependent/glslang.y"
7781               {
7782         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7783         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7784         (yyval.interm.type).basicType = EbtFloat16;
7785         (yyval.interm.type).setMatrix(3, 3);
7786     }
7787 #line 7788 "MachineIndependent/glslang_tab.cpp"
7788     break;
7789
7790   case 297: /* type_specifier_nonarray: F16MAT4  */
7791 #line 2213 "MachineIndependent/glslang.y"
7792               {
7793         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7794         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7795         (yyval.interm.type).basicType = EbtFloat16;
7796         (yyval.interm.type).setMatrix(4, 4);
7797     }
7798 #line 7799 "MachineIndependent/glslang_tab.cpp"
7799     break;
7800
7801   case 298: /* type_specifier_nonarray: F16MAT2X2  */
7802 #line 2219 "MachineIndependent/glslang.y"
7803                 {
7804         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7805         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7806         (yyval.interm.type).basicType = EbtFloat16;
7807         (yyval.interm.type).setMatrix(2, 2);
7808     }
7809 #line 7810 "MachineIndependent/glslang_tab.cpp"
7810     break;
7811
7812   case 299: /* type_specifier_nonarray: F16MAT2X3  */
7813 #line 2225 "MachineIndependent/glslang.y"
7814                 {
7815         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7816         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7817         (yyval.interm.type).basicType = EbtFloat16;
7818         (yyval.interm.type).setMatrix(2, 3);
7819     }
7820 #line 7821 "MachineIndependent/glslang_tab.cpp"
7821     break;
7822
7823   case 300: /* type_specifier_nonarray: F16MAT2X4  */
7824 #line 2231 "MachineIndependent/glslang.y"
7825                 {
7826         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7827         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7828         (yyval.interm.type).basicType = EbtFloat16;
7829         (yyval.interm.type).setMatrix(2, 4);
7830     }
7831 #line 7832 "MachineIndependent/glslang_tab.cpp"
7832     break;
7833
7834   case 301: /* type_specifier_nonarray: F16MAT3X2  */
7835 #line 2237 "MachineIndependent/glslang.y"
7836                 {
7837         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7838         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7839         (yyval.interm.type).basicType = EbtFloat16;
7840         (yyval.interm.type).setMatrix(3, 2);
7841     }
7842 #line 7843 "MachineIndependent/glslang_tab.cpp"
7843     break;
7844
7845   case 302: /* type_specifier_nonarray: F16MAT3X3  */
7846 #line 2243 "MachineIndependent/glslang.y"
7847                 {
7848         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7849         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7850         (yyval.interm.type).basicType = EbtFloat16;
7851         (yyval.interm.type).setMatrix(3, 3);
7852     }
7853 #line 7854 "MachineIndependent/glslang_tab.cpp"
7854     break;
7855
7856   case 303: /* type_specifier_nonarray: F16MAT3X4  */
7857 #line 2249 "MachineIndependent/glslang.y"
7858                 {
7859         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7860         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7861         (yyval.interm.type).basicType = EbtFloat16;
7862         (yyval.interm.type).setMatrix(3, 4);
7863     }
7864 #line 7865 "MachineIndependent/glslang_tab.cpp"
7865     break;
7866
7867   case 304: /* type_specifier_nonarray: F16MAT4X2  */
7868 #line 2255 "MachineIndependent/glslang.y"
7869                 {
7870         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7871         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7872         (yyval.interm.type).basicType = EbtFloat16;
7873         (yyval.interm.type).setMatrix(4, 2);
7874     }
7875 #line 7876 "MachineIndependent/glslang_tab.cpp"
7876     break;
7877
7878   case 305: /* type_specifier_nonarray: F16MAT4X3  */
7879 #line 2261 "MachineIndependent/glslang.y"
7880                 {
7881         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7882         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7883         (yyval.interm.type).basicType = EbtFloat16;
7884         (yyval.interm.type).setMatrix(4, 3);
7885     }
7886 #line 7887 "MachineIndependent/glslang_tab.cpp"
7887     break;
7888
7889   case 306: /* type_specifier_nonarray: F16MAT4X4  */
7890 #line 2267 "MachineIndependent/glslang.y"
7891                 {
7892         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7893         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7894         (yyval.interm.type).basicType = EbtFloat16;
7895         (yyval.interm.type).setMatrix(4, 4);
7896     }
7897 #line 7898 "MachineIndependent/glslang_tab.cpp"
7898     break;
7899
7900   case 307: /* type_specifier_nonarray: F32MAT2  */
7901 #line 2273 "MachineIndependent/glslang.y"
7902               {
7903         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7904         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7905         (yyval.interm.type).basicType = EbtFloat;
7906         (yyval.interm.type).setMatrix(2, 2);
7907     }
7908 #line 7909 "MachineIndependent/glslang_tab.cpp"
7909     break;
7910
7911   case 308: /* type_specifier_nonarray: F32MAT3  */
7912 #line 2279 "MachineIndependent/glslang.y"
7913               {
7914         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7915         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7916         (yyval.interm.type).basicType = EbtFloat;
7917         (yyval.interm.type).setMatrix(3, 3);
7918     }
7919 #line 7920 "MachineIndependent/glslang_tab.cpp"
7920     break;
7921
7922   case 309: /* type_specifier_nonarray: F32MAT4  */
7923 #line 2285 "MachineIndependent/glslang.y"
7924               {
7925         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7926         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7927         (yyval.interm.type).basicType = EbtFloat;
7928         (yyval.interm.type).setMatrix(4, 4);
7929     }
7930 #line 7931 "MachineIndependent/glslang_tab.cpp"
7931     break;
7932
7933   case 310: /* type_specifier_nonarray: F32MAT2X2  */
7934 #line 2291 "MachineIndependent/glslang.y"
7935                 {
7936         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7937         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7938         (yyval.interm.type).basicType = EbtFloat;
7939         (yyval.interm.type).setMatrix(2, 2);
7940     }
7941 #line 7942 "MachineIndependent/glslang_tab.cpp"
7942     break;
7943
7944   case 311: /* type_specifier_nonarray: F32MAT2X3  */
7945 #line 2297 "MachineIndependent/glslang.y"
7946                 {
7947         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7948         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7949         (yyval.interm.type).basicType = EbtFloat;
7950         (yyval.interm.type).setMatrix(2, 3);
7951     }
7952 #line 7953 "MachineIndependent/glslang_tab.cpp"
7953     break;
7954
7955   case 312: /* type_specifier_nonarray: F32MAT2X4  */
7956 #line 2303 "MachineIndependent/glslang.y"
7957                 {
7958         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7959         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7960         (yyval.interm.type).basicType = EbtFloat;
7961         (yyval.interm.type).setMatrix(2, 4);
7962     }
7963 #line 7964 "MachineIndependent/glslang_tab.cpp"
7964     break;
7965
7966   case 313: /* type_specifier_nonarray: F32MAT3X2  */
7967 #line 2309 "MachineIndependent/glslang.y"
7968                 {
7969         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7970         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7971         (yyval.interm.type).basicType = EbtFloat;
7972         (yyval.interm.type).setMatrix(3, 2);
7973     }
7974 #line 7975 "MachineIndependent/glslang_tab.cpp"
7975     break;
7976
7977   case 314: /* type_specifier_nonarray: F32MAT3X3  */
7978 #line 2315 "MachineIndependent/glslang.y"
7979                 {
7980         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7981         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7982         (yyval.interm.type).basicType = EbtFloat;
7983         (yyval.interm.type).setMatrix(3, 3);
7984     }
7985 #line 7986 "MachineIndependent/glslang_tab.cpp"
7986     break;
7987
7988   case 315: /* type_specifier_nonarray: F32MAT3X4  */
7989 #line 2321 "MachineIndependent/glslang.y"
7990                 {
7991         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7992         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7993         (yyval.interm.type).basicType = EbtFloat;
7994         (yyval.interm.type).setMatrix(3, 4);
7995     }
7996 #line 7997 "MachineIndependent/glslang_tab.cpp"
7997     break;
7998
7999   case 316: /* type_specifier_nonarray: F32MAT4X2  */
8000 #line 2327 "MachineIndependent/glslang.y"
8001                 {
8002         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8003         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8004         (yyval.interm.type).basicType = EbtFloat;
8005         (yyval.interm.type).setMatrix(4, 2);
8006     }
8007 #line 8008 "MachineIndependent/glslang_tab.cpp"
8008     break;
8009
8010   case 317: /* type_specifier_nonarray: F32MAT4X3  */
8011 #line 2333 "MachineIndependent/glslang.y"
8012                 {
8013         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8014         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8015         (yyval.interm.type).basicType = EbtFloat;
8016         (yyval.interm.type).setMatrix(4, 3);
8017     }
8018 #line 8019 "MachineIndependent/glslang_tab.cpp"
8019     break;
8020
8021   case 318: /* type_specifier_nonarray: F32MAT4X4  */
8022 #line 2339 "MachineIndependent/glslang.y"
8023                 {
8024         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
8025         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8026         (yyval.interm.type).basicType = EbtFloat;
8027         (yyval.interm.type).setMatrix(4, 4);
8028     }
8029 #line 8030 "MachineIndependent/glslang_tab.cpp"
8030     break;
8031
8032   case 319: /* type_specifier_nonarray: F64MAT2  */
8033 #line 2345 "MachineIndependent/glslang.y"
8034               {
8035         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8036         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8037         (yyval.interm.type).basicType = EbtDouble;
8038         (yyval.interm.type).setMatrix(2, 2);
8039     }
8040 #line 8041 "MachineIndependent/glslang_tab.cpp"
8041     break;
8042
8043   case 320: /* type_specifier_nonarray: F64MAT3  */
8044 #line 2351 "MachineIndependent/glslang.y"
8045               {
8046         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8047         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8048         (yyval.interm.type).basicType = EbtDouble;
8049         (yyval.interm.type).setMatrix(3, 3);
8050     }
8051 #line 8052 "MachineIndependent/glslang_tab.cpp"
8052     break;
8053
8054   case 321: /* type_specifier_nonarray: F64MAT4  */
8055 #line 2357 "MachineIndependent/glslang.y"
8056               {
8057         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8058         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8059         (yyval.interm.type).basicType = EbtDouble;
8060         (yyval.interm.type).setMatrix(4, 4);
8061     }
8062 #line 8063 "MachineIndependent/glslang_tab.cpp"
8063     break;
8064
8065   case 322: /* type_specifier_nonarray: F64MAT2X2  */
8066 #line 2363 "MachineIndependent/glslang.y"
8067                 {
8068         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8069         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8070         (yyval.interm.type).basicType = EbtDouble;
8071         (yyval.interm.type).setMatrix(2, 2);
8072     }
8073 #line 8074 "MachineIndependent/glslang_tab.cpp"
8074     break;
8075
8076   case 323: /* type_specifier_nonarray: F64MAT2X3  */
8077 #line 2369 "MachineIndependent/glslang.y"
8078                 {
8079         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8080         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8081         (yyval.interm.type).basicType = EbtDouble;
8082         (yyval.interm.type).setMatrix(2, 3);
8083     }
8084 #line 8085 "MachineIndependent/glslang_tab.cpp"
8085     break;
8086
8087   case 324: /* type_specifier_nonarray: F64MAT2X4  */
8088 #line 2375 "MachineIndependent/glslang.y"
8089                 {
8090         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8091         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8092         (yyval.interm.type).basicType = EbtDouble;
8093         (yyval.interm.type).setMatrix(2, 4);
8094     }
8095 #line 8096 "MachineIndependent/glslang_tab.cpp"
8096     break;
8097
8098   case 325: /* type_specifier_nonarray: F64MAT3X2  */
8099 #line 2381 "MachineIndependent/glslang.y"
8100                 {
8101         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8102         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8103         (yyval.interm.type).basicType = EbtDouble;
8104         (yyval.interm.type).setMatrix(3, 2);
8105     }
8106 #line 8107 "MachineIndependent/glslang_tab.cpp"
8107     break;
8108
8109   case 326: /* type_specifier_nonarray: F64MAT3X3  */
8110 #line 2387 "MachineIndependent/glslang.y"
8111                 {
8112         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8113         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8114         (yyval.interm.type).basicType = EbtDouble;
8115         (yyval.interm.type).setMatrix(3, 3);
8116     }
8117 #line 8118 "MachineIndependent/glslang_tab.cpp"
8118     break;
8119
8120   case 327: /* type_specifier_nonarray: F64MAT3X4  */
8121 #line 2393 "MachineIndependent/glslang.y"
8122                 {
8123         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8124         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8125         (yyval.interm.type).basicType = EbtDouble;
8126         (yyval.interm.type).setMatrix(3, 4);
8127     }
8128 #line 8129 "MachineIndependent/glslang_tab.cpp"
8129     break;
8130
8131   case 328: /* type_specifier_nonarray: F64MAT4X2  */
8132 #line 2399 "MachineIndependent/glslang.y"
8133                 {
8134         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8135         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8136         (yyval.interm.type).basicType = EbtDouble;
8137         (yyval.interm.type).setMatrix(4, 2);
8138     }
8139 #line 8140 "MachineIndependent/glslang_tab.cpp"
8140     break;
8141
8142   case 329: /* type_specifier_nonarray: F64MAT4X3  */
8143 #line 2405 "MachineIndependent/glslang.y"
8144                 {
8145         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8146         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8147         (yyval.interm.type).basicType = EbtDouble;
8148         (yyval.interm.type).setMatrix(4, 3);
8149     }
8150 #line 8151 "MachineIndependent/glslang_tab.cpp"
8151     break;
8152
8153   case 330: /* type_specifier_nonarray: F64MAT4X4  */
8154 #line 2411 "MachineIndependent/glslang.y"
8155                 {
8156         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
8157         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8158         (yyval.interm.type).basicType = EbtDouble;
8159         (yyval.interm.type).setMatrix(4, 4);
8160     }
8161 #line 8162 "MachineIndependent/glslang_tab.cpp"
8162     break;
8163
8164   case 331: /* type_specifier_nonarray: ACCSTRUCTNV  */
8165 #line 2417 "MachineIndependent/glslang.y"
8166                   {
8167        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8168        (yyval.interm.type).basicType = EbtAccStruct;
8169     }
8170 #line 8171 "MachineIndependent/glslang_tab.cpp"
8171     break;
8172
8173   case 332: /* type_specifier_nonarray: ACCSTRUCTEXT  */
8174 #line 2421 "MachineIndependent/glslang.y"
8175                    {
8176        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8177        (yyval.interm.type).basicType = EbtAccStruct;
8178     }
8179 #line 8180 "MachineIndependent/glslang_tab.cpp"
8180     break;
8181
8182   case 333: /* type_specifier_nonarray: RAYQUERYEXT  */
8183 #line 2425 "MachineIndependent/glslang.y"
8184                   {
8185        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8186        (yyval.interm.type).basicType = EbtRayQuery;
8187     }
8188 #line 8189 "MachineIndependent/glslang_tab.cpp"
8189     break;
8190
8191   case 334: /* type_specifier_nonarray: ATOMIC_UINT  */
8192 #line 2429 "MachineIndependent/glslang.y"
8193                   {
8194         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
8195         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8196         (yyval.interm.type).basicType = EbtAtomicUint;
8197     }
8198 #line 8199 "MachineIndependent/glslang_tab.cpp"
8199     break;
8200
8201   case 335: /* type_specifier_nonarray: SAMPLER1D  */
8202 #line 2434 "MachineIndependent/glslang.y"
8203                 {
8204         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8205         (yyval.interm.type).basicType = EbtSampler;
8206         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
8207     }
8208 #line 8209 "MachineIndependent/glslang_tab.cpp"
8209     break;
8210
8211   case 336: /* type_specifier_nonarray: SAMPLER2D  */
8212 #line 2440 "MachineIndependent/glslang.y"
8213                 {
8214         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8215         (yyval.interm.type).basicType = EbtSampler;
8216         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
8217     }
8218 #line 8219 "MachineIndependent/glslang_tab.cpp"
8219     break;
8220
8221   case 337: /* type_specifier_nonarray: SAMPLER3D  */
8222 #line 2445 "MachineIndependent/glslang.y"
8223                 {
8224         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8225         (yyval.interm.type).basicType = EbtSampler;
8226         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
8227     }
8228 #line 8229 "MachineIndependent/glslang_tab.cpp"
8229     break;
8230
8231   case 338: /* type_specifier_nonarray: SAMPLERCUBE  */
8232 #line 2450 "MachineIndependent/glslang.y"
8233                   {
8234         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8235         (yyval.interm.type).basicType = EbtSampler;
8236         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
8237     }
8238 #line 8239 "MachineIndependent/glslang_tab.cpp"
8239     break;
8240
8241   case 339: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
8242 #line 2455 "MachineIndependent/glslang.y"
8243                       {
8244         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8245         (yyval.interm.type).basicType = EbtSampler;
8246         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
8247     }
8248 #line 8249 "MachineIndependent/glslang_tab.cpp"
8249     break;
8250
8251   case 340: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
8252 #line 2460 "MachineIndependent/glslang.y"
8253                         {
8254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8255         (yyval.interm.type).basicType = EbtSampler;
8256         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
8257     }
8258 #line 8259 "MachineIndependent/glslang_tab.cpp"
8259     break;
8260
8261   case 341: /* type_specifier_nonarray: SAMPLER2DARRAY  */
8262 #line 2465 "MachineIndependent/glslang.y"
8263                      {
8264         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8265         (yyval.interm.type).basicType = EbtSampler;
8266         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
8267     }
8268 #line 8269 "MachineIndependent/glslang_tab.cpp"
8269     break;
8270
8271   case 342: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
8272 #line 2470 "MachineIndependent/glslang.y"
8273                            {
8274         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8275         (yyval.interm.type).basicType = EbtSampler;
8276         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
8277     }
8278 #line 8279 "MachineIndependent/glslang_tab.cpp"
8279     break;
8280
8281   case 343: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
8282 #line 2476 "MachineIndependent/glslang.y"
8283                       {
8284         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8285         (yyval.interm.type).basicType = EbtSampler;
8286         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
8287     }
8288 #line 8289 "MachineIndependent/glslang_tab.cpp"
8289     break;
8290
8291   case 344: /* type_specifier_nonarray: SAMPLER1DARRAY  */
8292 #line 2481 "MachineIndependent/glslang.y"
8293                      {
8294         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8295         (yyval.interm.type).basicType = EbtSampler;
8296         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
8297     }
8298 #line 8299 "MachineIndependent/glslang_tab.cpp"
8299     break;
8300
8301   case 345: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
8302 #line 2486 "MachineIndependent/glslang.y"
8303                            {
8304         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8305         (yyval.interm.type).basicType = EbtSampler;
8306         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
8307     }
8308 #line 8309 "MachineIndependent/glslang_tab.cpp"
8309     break;
8310
8311   case 346: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
8312 #line 2491 "MachineIndependent/glslang.y"
8313                        {
8314         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8315         (yyval.interm.type).basicType = EbtSampler;
8316         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
8317     }
8318 #line 8319 "MachineIndependent/glslang_tab.cpp"
8319     break;
8320
8321   case 347: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
8322 #line 2496 "MachineIndependent/glslang.y"
8323                              {
8324         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8325         (yyval.interm.type).basicType = EbtSampler;
8326         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
8327     }
8328 #line 8329 "MachineIndependent/glslang_tab.cpp"
8329     break;
8330
8331   case 348: /* type_specifier_nonarray: F16SAMPLER1D  */
8332 #line 2501 "MachineIndependent/glslang.y"
8333                    {
8334         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8335         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8336         (yyval.interm.type).basicType = EbtSampler;
8337         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
8338     }
8339 #line 8340 "MachineIndependent/glslang_tab.cpp"
8340     break;
8341
8342   case 349: /* type_specifier_nonarray: F16SAMPLER2D  */
8343 #line 2507 "MachineIndependent/glslang.y"
8344                    {
8345         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8346         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8347         (yyval.interm.type).basicType = EbtSampler;
8348         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
8349     }
8350 #line 8351 "MachineIndependent/glslang_tab.cpp"
8351     break;
8352
8353   case 350: /* type_specifier_nonarray: F16SAMPLER3D  */
8354 #line 2513 "MachineIndependent/glslang.y"
8355                    {
8356         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8357         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8358         (yyval.interm.type).basicType = EbtSampler;
8359         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
8360     }
8361 #line 8362 "MachineIndependent/glslang_tab.cpp"
8362     break;
8363
8364   case 351: /* type_specifier_nonarray: F16SAMPLERCUBE  */
8365 #line 2519 "MachineIndependent/glslang.y"
8366                      {
8367         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8368         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8369         (yyval.interm.type).basicType = EbtSampler;
8370         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
8371     }
8372 #line 8373 "MachineIndependent/glslang_tab.cpp"
8373     break;
8374
8375   case 352: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
8376 #line 2525 "MachineIndependent/glslang.y"
8377                          {
8378         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8379         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8380         (yyval.interm.type).basicType = EbtSampler;
8381         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
8382     }
8383 #line 8384 "MachineIndependent/glslang_tab.cpp"
8384     break;
8385
8386   case 353: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
8387 #line 2531 "MachineIndependent/glslang.y"
8388                          {
8389         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8390         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8391         (yyval.interm.type).basicType = EbtSampler;
8392         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
8393     }
8394 #line 8395 "MachineIndependent/glslang_tab.cpp"
8395     break;
8396
8397   case 354: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
8398 #line 2537 "MachineIndependent/glslang.y"
8399                            {
8400         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8401         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8402         (yyval.interm.type).basicType = EbtSampler;
8403         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
8404     }
8405 #line 8406 "MachineIndependent/glslang_tab.cpp"
8406     break;
8407
8408   case 355: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
8409 #line 2543 "MachineIndependent/glslang.y"
8410                         {
8411         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8412         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8413         (yyval.interm.type).basicType = EbtSampler;
8414         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
8415     }
8416 #line 8417 "MachineIndependent/glslang_tab.cpp"
8417     break;
8418
8419   case 356: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
8420 #line 2549 "MachineIndependent/glslang.y"
8421                         {
8422         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8423         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8424         (yyval.interm.type).basicType = EbtSampler;
8425         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
8426     }
8427 #line 8428 "MachineIndependent/glslang_tab.cpp"
8428     break;
8429
8430   case 357: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
8431 #line 2555 "MachineIndependent/glslang.y"
8432                               {
8433         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8434         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8435         (yyval.interm.type).basicType = EbtSampler;
8436         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
8437     }
8438 #line 8439 "MachineIndependent/glslang_tab.cpp"
8439     break;
8440
8441   case 358: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
8442 #line 2561 "MachineIndependent/glslang.y"
8443                               {
8444         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8445         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8446         (yyval.interm.type).basicType = EbtSampler;
8447         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
8448     }
8449 #line 8450 "MachineIndependent/glslang_tab.cpp"
8450     break;
8451
8452   case 359: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
8453 #line 2567 "MachineIndependent/glslang.y"
8454                           {
8455         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8456         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8457         (yyval.interm.type).basicType = EbtSampler;
8458         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
8459     }
8460 #line 8461 "MachineIndependent/glslang_tab.cpp"
8461     break;
8462
8463   case 360: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
8464 #line 2573 "MachineIndependent/glslang.y"
8465                                 {
8466         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8467         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8468         (yyval.interm.type).basicType = EbtSampler;
8469         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
8470     }
8471 #line 8472 "MachineIndependent/glslang_tab.cpp"
8472     break;
8473
8474   case 361: /* type_specifier_nonarray: ISAMPLER1D  */
8475 #line 2579 "MachineIndependent/glslang.y"
8476                  {
8477         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8478         (yyval.interm.type).basicType = EbtSampler;
8479         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
8480     }
8481 #line 8482 "MachineIndependent/glslang_tab.cpp"
8482     break;
8483
8484   case 362: /* type_specifier_nonarray: ISAMPLER2D  */
8485 #line 2585 "MachineIndependent/glslang.y"
8486                  {
8487         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8488         (yyval.interm.type).basicType = EbtSampler;
8489         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
8490     }
8491 #line 8492 "MachineIndependent/glslang_tab.cpp"
8492     break;
8493
8494   case 363: /* type_specifier_nonarray: ISAMPLER3D  */
8495 #line 2590 "MachineIndependent/glslang.y"
8496                  {
8497         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8498         (yyval.interm.type).basicType = EbtSampler;
8499         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
8500     }
8501 #line 8502 "MachineIndependent/glslang_tab.cpp"
8502     break;
8503
8504   case 364: /* type_specifier_nonarray: ISAMPLERCUBE  */
8505 #line 2595 "MachineIndependent/glslang.y"
8506                    {
8507         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8508         (yyval.interm.type).basicType = EbtSampler;
8509         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
8510     }
8511 #line 8512 "MachineIndependent/glslang_tab.cpp"
8512     break;
8513
8514   case 365: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
8515 #line 2600 "MachineIndependent/glslang.y"
8516                       {
8517         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8518         (yyval.interm.type).basicType = EbtSampler;
8519         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
8520     }
8521 #line 8522 "MachineIndependent/glslang_tab.cpp"
8522     break;
8523
8524   case 366: /* type_specifier_nonarray: USAMPLER2D  */
8525 #line 2605 "MachineIndependent/glslang.y"
8526                  {
8527         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8528         (yyval.interm.type).basicType = EbtSampler;
8529         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
8530     }
8531 #line 8532 "MachineIndependent/glslang_tab.cpp"
8532     break;
8533
8534   case 367: /* type_specifier_nonarray: USAMPLER3D  */
8535 #line 2610 "MachineIndependent/glslang.y"
8536                  {
8537         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8538         (yyval.interm.type).basicType = EbtSampler;
8539         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
8540     }
8541 #line 8542 "MachineIndependent/glslang_tab.cpp"
8542     break;
8543
8544   case 368: /* type_specifier_nonarray: USAMPLERCUBE  */
8545 #line 2615 "MachineIndependent/glslang.y"
8546                    {
8547         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8548         (yyval.interm.type).basicType = EbtSampler;
8549         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
8550     }
8551 #line 8552 "MachineIndependent/glslang_tab.cpp"
8552     break;
8553
8554   case 369: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
8555 #line 2621 "MachineIndependent/glslang.y"
8556                       {
8557         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8558         (yyval.interm.type).basicType = EbtSampler;
8559         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
8560     }
8561 #line 8562 "MachineIndependent/glslang_tab.cpp"
8562     break;
8563
8564   case 370: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
8565 #line 2626 "MachineIndependent/glslang.y"
8566                         {
8567         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8568         (yyval.interm.type).basicType = EbtSampler;
8569         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
8570     }
8571 #line 8572 "MachineIndependent/glslang_tab.cpp"
8572     break;
8573
8574   case 371: /* type_specifier_nonarray: USAMPLER1D  */
8575 #line 2631 "MachineIndependent/glslang.y"
8576                  {
8577         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8578         (yyval.interm.type).basicType = EbtSampler;
8579         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
8580     }
8581 #line 8582 "MachineIndependent/glslang_tab.cpp"
8582     break;
8583
8584   case 372: /* type_specifier_nonarray: USAMPLER1DARRAY  */
8585 #line 2636 "MachineIndependent/glslang.y"
8586                       {
8587         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8588         (yyval.interm.type).basicType = EbtSampler;
8589         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
8590     }
8591 #line 8592 "MachineIndependent/glslang_tab.cpp"
8592     break;
8593
8594   case 373: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
8595 #line 2641 "MachineIndependent/glslang.y"
8596                         {
8597         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8598         (yyval.interm.type).basicType = EbtSampler;
8599         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8600     }
8601 #line 8602 "MachineIndependent/glslang_tab.cpp"
8602     break;
8603
8604   case 374: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
8605 #line 2646 "MachineIndependent/glslang.y"
8606                        {
8607         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8608         (yyval.interm.type).basicType = EbtSampler;
8609         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8610     }
8611 #line 8612 "MachineIndependent/glslang_tab.cpp"
8612     break;
8613
8614   case 375: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
8615 #line 2651 "MachineIndependent/glslang.y"
8616                         {
8617         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8618         (yyval.interm.type).basicType = EbtSampler;
8619         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8620     }
8621 #line 8622 "MachineIndependent/glslang_tab.cpp"
8622     break;
8623
8624   case 376: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
8625 #line 2656 "MachineIndependent/glslang.y"
8626                         {
8627         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8628         (yyval.interm.type).basicType = EbtSampler;
8629         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8630     }
8631 #line 8632 "MachineIndependent/glslang_tab.cpp"
8632     break;
8633
8634   case 377: /* type_specifier_nonarray: USAMPLER2DARRAY  */
8635 #line 2662 "MachineIndependent/glslang.y"
8636                       {
8637         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8638         (yyval.interm.type).basicType = EbtSampler;
8639         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8640     }
8641 #line 8642 "MachineIndependent/glslang_tab.cpp"
8642     break;
8643
8644   case 378: /* type_specifier_nonarray: TEXTURE2D  */
8645 #line 2667 "MachineIndependent/glslang.y"
8646                 {
8647         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8648         (yyval.interm.type).basicType = EbtSampler;
8649         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8650     }
8651 #line 8652 "MachineIndependent/glslang_tab.cpp"
8652     break;
8653
8654   case 379: /* type_specifier_nonarray: TEXTURE3D  */
8655 #line 2672 "MachineIndependent/glslang.y"
8656                 {
8657         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8658         (yyval.interm.type).basicType = EbtSampler;
8659         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8660     }
8661 #line 8662 "MachineIndependent/glslang_tab.cpp"
8662     break;
8663
8664   case 380: /* type_specifier_nonarray: TEXTURE2DARRAY  */
8665 #line 2677 "MachineIndependent/glslang.y"
8666                      {
8667         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8668         (yyval.interm.type).basicType = EbtSampler;
8669         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8670     }
8671 #line 8672 "MachineIndependent/glslang_tab.cpp"
8672     break;
8673
8674   case 381: /* type_specifier_nonarray: TEXTURECUBE  */
8675 #line 2682 "MachineIndependent/glslang.y"
8676                   {
8677         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8678         (yyval.interm.type).basicType = EbtSampler;
8679         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8680     }
8681 #line 8682 "MachineIndependent/glslang_tab.cpp"
8682     break;
8683
8684   case 382: /* type_specifier_nonarray: ITEXTURE2D  */
8685 #line 2687 "MachineIndependent/glslang.y"
8686                  {
8687         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8688         (yyval.interm.type).basicType = EbtSampler;
8689         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8690     }
8691 #line 8692 "MachineIndependent/glslang_tab.cpp"
8692     break;
8693
8694   case 383: /* type_specifier_nonarray: ITEXTURE3D  */
8695 #line 2692 "MachineIndependent/glslang.y"
8696                  {
8697         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8698         (yyval.interm.type).basicType = EbtSampler;
8699         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8700     }
8701 #line 8702 "MachineIndependent/glslang_tab.cpp"
8702     break;
8703
8704   case 384: /* type_specifier_nonarray: ITEXTURECUBE  */
8705 #line 2697 "MachineIndependent/glslang.y"
8706                    {
8707         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8708         (yyval.interm.type).basicType = EbtSampler;
8709         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8710     }
8711 #line 8712 "MachineIndependent/glslang_tab.cpp"
8712     break;
8713
8714   case 385: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
8715 #line 2702 "MachineIndependent/glslang.y"
8716                       {
8717         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8718         (yyval.interm.type).basicType = EbtSampler;
8719         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8720     }
8721 #line 8722 "MachineIndependent/glslang_tab.cpp"
8722     break;
8723
8724   case 386: /* type_specifier_nonarray: UTEXTURE2D  */
8725 #line 2707 "MachineIndependent/glslang.y"
8726                  {
8727         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8728         (yyval.interm.type).basicType = EbtSampler;
8729         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8730     }
8731 #line 8732 "MachineIndependent/glslang_tab.cpp"
8732     break;
8733
8734   case 387: /* type_specifier_nonarray: UTEXTURE3D  */
8735 #line 2712 "MachineIndependent/glslang.y"
8736                  {
8737         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8738         (yyval.interm.type).basicType = EbtSampler;
8739         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8740     }
8741 #line 8742 "MachineIndependent/glslang_tab.cpp"
8742     break;
8743
8744   case 388: /* type_specifier_nonarray: UTEXTURECUBE  */
8745 #line 2717 "MachineIndependent/glslang.y"
8746                    {
8747         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8748         (yyval.interm.type).basicType = EbtSampler;
8749         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8750     }
8751 #line 8752 "MachineIndependent/glslang_tab.cpp"
8752     break;
8753
8754   case 389: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
8755 #line 2722 "MachineIndependent/glslang.y"
8756                       {
8757         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8758         (yyval.interm.type).basicType = EbtSampler;
8759         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8760     }
8761 #line 8762 "MachineIndependent/glslang_tab.cpp"
8762     break;
8763
8764   case 390: /* type_specifier_nonarray: SAMPLER  */
8765 #line 2727 "MachineIndependent/glslang.y"
8766               {
8767         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8768         (yyval.interm.type).basicType = EbtSampler;
8769         (yyval.interm.type).sampler.setPureSampler(false);
8770     }
8771 #line 8772 "MachineIndependent/glslang_tab.cpp"
8772     break;
8773
8774   case 391: /* type_specifier_nonarray: SAMPLERSHADOW  */
8775 #line 2732 "MachineIndependent/glslang.y"
8776                     {
8777         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8778         (yyval.interm.type).basicType = EbtSampler;
8779         (yyval.interm.type).sampler.setPureSampler(true);
8780     }
8781 #line 8782 "MachineIndependent/glslang_tab.cpp"
8782     break;
8783
8784   case 392: /* type_specifier_nonarray: SAMPLER2DRECT  */
8785 #line 2738 "MachineIndependent/glslang.y"
8786                     {
8787         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8788         (yyval.interm.type).basicType = EbtSampler;
8789         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8790     }
8791 #line 8792 "MachineIndependent/glslang_tab.cpp"
8792     break;
8793
8794   case 393: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
8795 #line 2743 "MachineIndependent/glslang.y"
8796                           {
8797         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8798         (yyval.interm.type).basicType = EbtSampler;
8799         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8800     }
8801 #line 8802 "MachineIndependent/glslang_tab.cpp"
8802     break;
8803
8804   case 394: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
8805 #line 2748 "MachineIndependent/glslang.y"
8806                        {
8807         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8808         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8809         (yyval.interm.type).basicType = EbtSampler;
8810         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8811     }
8812 #line 8813 "MachineIndependent/glslang_tab.cpp"
8813     break;
8814
8815   case 395: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
8816 #line 2754 "MachineIndependent/glslang.y"
8817                              {
8818         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8819         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8820         (yyval.interm.type).basicType = EbtSampler;
8821         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8822     }
8823 #line 8824 "MachineIndependent/glslang_tab.cpp"
8824     break;
8825
8826   case 396: /* type_specifier_nonarray: ISAMPLER2DRECT  */
8827 #line 2760 "MachineIndependent/glslang.y"
8828                      {
8829         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8830         (yyval.interm.type).basicType = EbtSampler;
8831         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8832     }
8833 #line 8834 "MachineIndependent/glslang_tab.cpp"
8834     break;
8835
8836   case 397: /* type_specifier_nonarray: USAMPLER2DRECT  */
8837 #line 2765 "MachineIndependent/glslang.y"
8838                      {
8839         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8840         (yyval.interm.type).basicType = EbtSampler;
8841         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8842     }
8843 #line 8844 "MachineIndependent/glslang_tab.cpp"
8844     break;
8845
8846   case 398: /* type_specifier_nonarray: SAMPLERBUFFER  */
8847 #line 2770 "MachineIndependent/glslang.y"
8848                     {
8849         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8850         (yyval.interm.type).basicType = EbtSampler;
8851         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8852     }
8853 #line 8854 "MachineIndependent/glslang_tab.cpp"
8854     break;
8855
8856   case 399: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
8857 #line 2775 "MachineIndependent/glslang.y"
8858                        {
8859         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8860         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8861         (yyval.interm.type).basicType = EbtSampler;
8862         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8863     }
8864 #line 8865 "MachineIndependent/glslang_tab.cpp"
8865     break;
8866
8867   case 400: /* type_specifier_nonarray: ISAMPLERBUFFER  */
8868 #line 2781 "MachineIndependent/glslang.y"
8869                      {
8870         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8871         (yyval.interm.type).basicType = EbtSampler;
8872         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8873     }
8874 #line 8875 "MachineIndependent/glslang_tab.cpp"
8875     break;
8876
8877   case 401: /* type_specifier_nonarray: USAMPLERBUFFER  */
8878 #line 2786 "MachineIndependent/glslang.y"
8879                      {
8880         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881         (yyval.interm.type).basicType = EbtSampler;
8882         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8883     }
8884 #line 8885 "MachineIndependent/glslang_tab.cpp"
8885     break;
8886
8887   case 402: /* type_specifier_nonarray: SAMPLER2DMS  */
8888 #line 2791 "MachineIndependent/glslang.y"
8889                   {
8890         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8891         (yyval.interm.type).basicType = EbtSampler;
8892         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8893     }
8894 #line 8895 "MachineIndependent/glslang_tab.cpp"
8895     break;
8896
8897   case 403: /* type_specifier_nonarray: F16SAMPLER2DMS  */
8898 #line 2796 "MachineIndependent/glslang.y"
8899                      {
8900         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8901         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8902         (yyval.interm.type).basicType = EbtSampler;
8903         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8904     }
8905 #line 8906 "MachineIndependent/glslang_tab.cpp"
8906     break;
8907
8908   case 404: /* type_specifier_nonarray: ISAMPLER2DMS  */
8909 #line 2802 "MachineIndependent/glslang.y"
8910                    {
8911         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8912         (yyval.interm.type).basicType = EbtSampler;
8913         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8914     }
8915 #line 8916 "MachineIndependent/glslang_tab.cpp"
8916     break;
8917
8918   case 405: /* type_specifier_nonarray: USAMPLER2DMS  */
8919 #line 2807 "MachineIndependent/glslang.y"
8920                    {
8921         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8922         (yyval.interm.type).basicType = EbtSampler;
8923         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8924     }
8925 #line 8926 "MachineIndependent/glslang_tab.cpp"
8926     break;
8927
8928   case 406: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
8929 #line 2812 "MachineIndependent/glslang.y"
8930                        {
8931         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8932         (yyval.interm.type).basicType = EbtSampler;
8933         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8934     }
8935 #line 8936 "MachineIndependent/glslang_tab.cpp"
8936     break;
8937
8938   case 407: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
8939 #line 2817 "MachineIndependent/glslang.y"
8940                           {
8941         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8942         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8943         (yyval.interm.type).basicType = EbtSampler;
8944         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8945     }
8946 #line 8947 "MachineIndependent/glslang_tab.cpp"
8947     break;
8948
8949   case 408: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
8950 #line 2823 "MachineIndependent/glslang.y"
8951                         {
8952         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8953         (yyval.interm.type).basicType = EbtSampler;
8954         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8955     }
8956 #line 8957 "MachineIndependent/glslang_tab.cpp"
8957     break;
8958
8959   case 409: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
8960 #line 2828 "MachineIndependent/glslang.y"
8961                         {
8962         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8963         (yyval.interm.type).basicType = EbtSampler;
8964         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8965     }
8966 #line 8967 "MachineIndependent/glslang_tab.cpp"
8967     break;
8968
8969   case 410: /* type_specifier_nonarray: TEXTURE1D  */
8970 #line 2833 "MachineIndependent/glslang.y"
8971                 {
8972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8973         (yyval.interm.type).basicType = EbtSampler;
8974         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8975     }
8976 #line 8977 "MachineIndependent/glslang_tab.cpp"
8977     break;
8978
8979   case 411: /* type_specifier_nonarray: F16TEXTURE1D  */
8980 #line 2838 "MachineIndependent/glslang.y"
8981                    {
8982         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8983         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8984         (yyval.interm.type).basicType = EbtSampler;
8985         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8986     }
8987 #line 8988 "MachineIndependent/glslang_tab.cpp"
8988     break;
8989
8990   case 412: /* type_specifier_nonarray: F16TEXTURE2D  */
8991 #line 2844 "MachineIndependent/glslang.y"
8992                    {
8993         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8994         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8995         (yyval.interm.type).basicType = EbtSampler;
8996         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8997     }
8998 #line 8999 "MachineIndependent/glslang_tab.cpp"
8999     break;
9000
9001   case 413: /* type_specifier_nonarray: F16TEXTURE3D  */
9002 #line 2850 "MachineIndependent/glslang.y"
9003                    {
9004         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9005         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9006         (yyval.interm.type).basicType = EbtSampler;
9007         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
9008     }
9009 #line 9010 "MachineIndependent/glslang_tab.cpp"
9010     break;
9011
9012   case 414: /* type_specifier_nonarray: F16TEXTURECUBE  */
9013 #line 2856 "MachineIndependent/glslang.y"
9014                      {
9015         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9016         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9017         (yyval.interm.type).basicType = EbtSampler;
9018         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
9019     }
9020 #line 9021 "MachineIndependent/glslang_tab.cpp"
9021     break;
9022
9023   case 415: /* type_specifier_nonarray: TEXTURE1DARRAY  */
9024 #line 2862 "MachineIndependent/glslang.y"
9025                      {
9026         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9027         (yyval.interm.type).basicType = EbtSampler;
9028         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
9029     }
9030 #line 9031 "MachineIndependent/glslang_tab.cpp"
9031     break;
9032
9033   case 416: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
9034 #line 2867 "MachineIndependent/glslang.y"
9035                         {
9036         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9037         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9038         (yyval.interm.type).basicType = EbtSampler;
9039         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
9040     }
9041 #line 9042 "MachineIndependent/glslang_tab.cpp"
9042     break;
9043
9044   case 417: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
9045 #line 2873 "MachineIndependent/glslang.y"
9046                         {
9047         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9048         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9049         (yyval.interm.type).basicType = EbtSampler;
9050         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
9051     }
9052 #line 9053 "MachineIndependent/glslang_tab.cpp"
9053     break;
9054
9055   case 418: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
9056 #line 2879 "MachineIndependent/glslang.y"
9057                           {
9058         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9059         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9060         (yyval.interm.type).basicType = EbtSampler;
9061         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
9062     }
9063 #line 9064 "MachineIndependent/glslang_tab.cpp"
9064     break;
9065
9066   case 419: /* type_specifier_nonarray: ITEXTURE1D  */
9067 #line 2885 "MachineIndependent/glslang.y"
9068                  {
9069         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9070         (yyval.interm.type).basicType = EbtSampler;
9071         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
9072     }
9073 #line 9074 "MachineIndependent/glslang_tab.cpp"
9074     break;
9075
9076   case 420: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
9077 #line 2890 "MachineIndependent/glslang.y"
9078                       {
9079         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9080         (yyval.interm.type).basicType = EbtSampler;
9081         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
9082     }
9083 #line 9084 "MachineIndependent/glslang_tab.cpp"
9084     break;
9085
9086   case 421: /* type_specifier_nonarray: UTEXTURE1D  */
9087 #line 2895 "MachineIndependent/glslang.y"
9088                  {
9089         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9090         (yyval.interm.type).basicType = EbtSampler;
9091         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
9092     }
9093 #line 9094 "MachineIndependent/glslang_tab.cpp"
9094     break;
9095
9096   case 422: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
9097 #line 2900 "MachineIndependent/glslang.y"
9098                       {
9099         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9100         (yyval.interm.type).basicType = EbtSampler;
9101         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
9102     }
9103 #line 9104 "MachineIndependent/glslang_tab.cpp"
9104     break;
9105
9106   case 423: /* type_specifier_nonarray: TEXTURE2DRECT  */
9107 #line 2905 "MachineIndependent/glslang.y"
9108                     {
9109         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9110         (yyval.interm.type).basicType = EbtSampler;
9111         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
9112     }
9113 #line 9114 "MachineIndependent/glslang_tab.cpp"
9114     break;
9115
9116   case 424: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
9117 #line 2910 "MachineIndependent/glslang.y"
9118                        {
9119         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9120         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9121         (yyval.interm.type).basicType = EbtSampler;
9122         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
9123     }
9124 #line 9125 "MachineIndependent/glslang_tab.cpp"
9125     break;
9126
9127   case 425: /* type_specifier_nonarray: ITEXTURE2DRECT  */
9128 #line 2916 "MachineIndependent/glslang.y"
9129                      {
9130         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9131         (yyval.interm.type).basicType = EbtSampler;
9132         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
9133     }
9134 #line 9135 "MachineIndependent/glslang_tab.cpp"
9135     break;
9136
9137   case 426: /* type_specifier_nonarray: UTEXTURE2DRECT  */
9138 #line 2921 "MachineIndependent/glslang.y"
9139                      {
9140         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9141         (yyval.interm.type).basicType = EbtSampler;
9142         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
9143     }
9144 #line 9145 "MachineIndependent/glslang_tab.cpp"
9145     break;
9146
9147   case 427: /* type_specifier_nonarray: TEXTUREBUFFER  */
9148 #line 2926 "MachineIndependent/glslang.y"
9149                     {
9150         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9151         (yyval.interm.type).basicType = EbtSampler;
9152         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
9153     }
9154 #line 9155 "MachineIndependent/glslang_tab.cpp"
9155     break;
9156
9157   case 428: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
9158 #line 2931 "MachineIndependent/glslang.y"
9159                        {
9160         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9162         (yyval.interm.type).basicType = EbtSampler;
9163         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
9164     }
9165 #line 9166 "MachineIndependent/glslang_tab.cpp"
9166     break;
9167
9168   case 429: /* type_specifier_nonarray: ITEXTUREBUFFER  */
9169 #line 2937 "MachineIndependent/glslang.y"
9170                      {
9171         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9172         (yyval.interm.type).basicType = EbtSampler;
9173         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
9174     }
9175 #line 9176 "MachineIndependent/glslang_tab.cpp"
9176     break;
9177
9178   case 430: /* type_specifier_nonarray: UTEXTUREBUFFER  */
9179 #line 2942 "MachineIndependent/glslang.y"
9180                      {
9181         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9182         (yyval.interm.type).basicType = EbtSampler;
9183         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
9184     }
9185 #line 9186 "MachineIndependent/glslang_tab.cpp"
9186     break;
9187
9188   case 431: /* type_specifier_nonarray: TEXTURE2DMS  */
9189 #line 2947 "MachineIndependent/glslang.y"
9190                   {
9191         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9192         (yyval.interm.type).basicType = EbtSampler;
9193         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
9194     }
9195 #line 9196 "MachineIndependent/glslang_tab.cpp"
9196     break;
9197
9198   case 432: /* type_specifier_nonarray: F16TEXTURE2DMS  */
9199 #line 2952 "MachineIndependent/glslang.y"
9200                      {
9201         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9202         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9203         (yyval.interm.type).basicType = EbtSampler;
9204         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
9205     }
9206 #line 9207 "MachineIndependent/glslang_tab.cpp"
9207     break;
9208
9209   case 433: /* type_specifier_nonarray: ITEXTURE2DMS  */
9210 #line 2958 "MachineIndependent/glslang.y"
9211                    {
9212         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9213         (yyval.interm.type).basicType = EbtSampler;
9214         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
9215     }
9216 #line 9217 "MachineIndependent/glslang_tab.cpp"
9217     break;
9218
9219   case 434: /* type_specifier_nonarray: UTEXTURE2DMS  */
9220 #line 2963 "MachineIndependent/glslang.y"
9221                    {
9222         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9223         (yyval.interm.type).basicType = EbtSampler;
9224         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
9225     }
9226 #line 9227 "MachineIndependent/glslang_tab.cpp"
9227     break;
9228
9229   case 435: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
9230 #line 2968 "MachineIndependent/glslang.y"
9231                        {
9232         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9233         (yyval.interm.type).basicType = EbtSampler;
9234         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
9235     }
9236 #line 9237 "MachineIndependent/glslang_tab.cpp"
9237     break;
9238
9239   case 436: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
9240 #line 2973 "MachineIndependent/glslang.y"
9241                           {
9242         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
9243         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9244         (yyval.interm.type).basicType = EbtSampler;
9245         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
9246     }
9247 #line 9248 "MachineIndependent/glslang_tab.cpp"
9248     break;
9249
9250   case 437: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
9251 #line 2979 "MachineIndependent/glslang.y"
9252                         {
9253         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9254         (yyval.interm.type).basicType = EbtSampler;
9255         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
9256     }
9257 #line 9258 "MachineIndependent/glslang_tab.cpp"
9258     break;
9259
9260   case 438: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
9261 #line 2984 "MachineIndependent/glslang.y"
9262                         {
9263         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9264         (yyval.interm.type).basicType = EbtSampler;
9265         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
9266     }
9267 #line 9268 "MachineIndependent/glslang_tab.cpp"
9268     break;
9269
9270   case 439: /* type_specifier_nonarray: IMAGE1D  */
9271 #line 2989 "MachineIndependent/glslang.y"
9272               {
9273         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9274         (yyval.interm.type).basicType = EbtSampler;
9275         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
9276     }
9277 #line 9278 "MachineIndependent/glslang_tab.cpp"
9278     break;
9279
9280   case 440: /* type_specifier_nonarray: F16IMAGE1D  */
9281 #line 2994 "MachineIndependent/glslang.y"
9282                  {
9283         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9284         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9285         (yyval.interm.type).basicType = EbtSampler;
9286         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
9287     }
9288 #line 9289 "MachineIndependent/glslang_tab.cpp"
9289     break;
9290
9291   case 441: /* type_specifier_nonarray: IIMAGE1D  */
9292 #line 3000 "MachineIndependent/glslang.y"
9293                {
9294         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9295         (yyval.interm.type).basicType = EbtSampler;
9296         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
9297     }
9298 #line 9299 "MachineIndependent/glslang_tab.cpp"
9299     break;
9300
9301   case 442: /* type_specifier_nonarray: UIMAGE1D  */
9302 #line 3005 "MachineIndependent/glslang.y"
9303                {
9304         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9305         (yyval.interm.type).basicType = EbtSampler;
9306         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
9307     }
9308 #line 9309 "MachineIndependent/glslang_tab.cpp"
9309     break;
9310
9311   case 443: /* type_specifier_nonarray: IMAGE2D  */
9312 #line 3010 "MachineIndependent/glslang.y"
9313               {
9314         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9315         (yyval.interm.type).basicType = EbtSampler;
9316         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
9317     }
9318 #line 9319 "MachineIndependent/glslang_tab.cpp"
9319     break;
9320
9321   case 444: /* type_specifier_nonarray: F16IMAGE2D  */
9322 #line 3015 "MachineIndependent/glslang.y"
9323                  {
9324         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9325         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9326         (yyval.interm.type).basicType = EbtSampler;
9327         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
9328     }
9329 #line 9330 "MachineIndependent/glslang_tab.cpp"
9330     break;
9331
9332   case 445: /* type_specifier_nonarray: IIMAGE2D  */
9333 #line 3021 "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.setImage(EbtInt, Esd2D);
9338     }
9339 #line 9340 "MachineIndependent/glslang_tab.cpp"
9340     break;
9341
9342   case 446: /* type_specifier_nonarray: UIMAGE2D  */
9343 #line 3026 "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.setImage(EbtUint, Esd2D);
9348     }
9349 #line 9350 "MachineIndependent/glslang_tab.cpp"
9350     break;
9351
9352   case 447: /* type_specifier_nonarray: IMAGE3D  */
9353 #line 3031 "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.setImage(EbtFloat, Esd3D);
9358     }
9359 #line 9360 "MachineIndependent/glslang_tab.cpp"
9360     break;
9361
9362   case 448: /* type_specifier_nonarray: F16IMAGE3D  */
9363 #line 3036 "MachineIndependent/glslang.y"
9364                  {
9365         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9366         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9367         (yyval.interm.type).basicType = EbtSampler;
9368         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
9369     }
9370 #line 9371 "MachineIndependent/glslang_tab.cpp"
9371     break;
9372
9373   case 449: /* type_specifier_nonarray: IIMAGE3D  */
9374 #line 3042 "MachineIndependent/glslang.y"
9375                {
9376         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9377         (yyval.interm.type).basicType = EbtSampler;
9378         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
9379     }
9380 #line 9381 "MachineIndependent/glslang_tab.cpp"
9381     break;
9382
9383   case 450: /* type_specifier_nonarray: UIMAGE3D  */
9384 #line 3047 "MachineIndependent/glslang.y"
9385                {
9386         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9387         (yyval.interm.type).basicType = EbtSampler;
9388         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
9389     }
9390 #line 9391 "MachineIndependent/glslang_tab.cpp"
9391     break;
9392
9393   case 451: /* type_specifier_nonarray: IMAGE2DRECT  */
9394 #line 3052 "MachineIndependent/glslang.y"
9395                   {
9396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9397         (yyval.interm.type).basicType = EbtSampler;
9398         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
9399     }
9400 #line 9401 "MachineIndependent/glslang_tab.cpp"
9401     break;
9402
9403   case 452: /* type_specifier_nonarray: F16IMAGE2DRECT  */
9404 #line 3057 "MachineIndependent/glslang.y"
9405                      {
9406         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9407         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9408         (yyval.interm.type).basicType = EbtSampler;
9409         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
9410     }
9411 #line 9412 "MachineIndependent/glslang_tab.cpp"
9412     break;
9413
9414   case 453: /* type_specifier_nonarray: IIMAGE2DRECT  */
9415 #line 3063 "MachineIndependent/glslang.y"
9416                    {
9417         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9418         (yyval.interm.type).basicType = EbtSampler;
9419         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
9420     }
9421 #line 9422 "MachineIndependent/glslang_tab.cpp"
9422     break;
9423
9424   case 454: /* type_specifier_nonarray: UIMAGE2DRECT  */
9425 #line 3068 "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.setImage(EbtUint, EsdRect);
9430     }
9431 #line 9432 "MachineIndependent/glslang_tab.cpp"
9432     break;
9433
9434   case 455: /* type_specifier_nonarray: IMAGECUBE  */
9435 #line 3073 "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.setImage(EbtFloat, EsdCube);
9440     }
9441 #line 9442 "MachineIndependent/glslang_tab.cpp"
9442     break;
9443
9444   case 456: /* type_specifier_nonarray: F16IMAGECUBE  */
9445 #line 3078 "MachineIndependent/glslang.y"
9446                    {
9447         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9448         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9449         (yyval.interm.type).basicType = EbtSampler;
9450         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
9451     }
9452 #line 9453 "MachineIndependent/glslang_tab.cpp"
9453     break;
9454
9455   case 457: /* type_specifier_nonarray: IIMAGECUBE  */
9456 #line 3084 "MachineIndependent/glslang.y"
9457                  {
9458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9459         (yyval.interm.type).basicType = EbtSampler;
9460         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
9461     }
9462 #line 9463 "MachineIndependent/glslang_tab.cpp"
9463     break;
9464
9465   case 458: /* type_specifier_nonarray: UIMAGECUBE  */
9466 #line 3089 "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.setImage(EbtUint, EsdCube);
9471     }
9472 #line 9473 "MachineIndependent/glslang_tab.cpp"
9473     break;
9474
9475   case 459: /* type_specifier_nonarray: IMAGEBUFFER  */
9476 #line 3094 "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.setImage(EbtFloat, EsdBuffer);
9481     }
9482 #line 9483 "MachineIndependent/glslang_tab.cpp"
9483     break;
9484
9485   case 460: /* type_specifier_nonarray: F16IMAGEBUFFER  */
9486 #line 3099 "MachineIndependent/glslang.y"
9487                      {
9488         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9489         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9490         (yyval.interm.type).basicType = EbtSampler;
9491         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
9492     }
9493 #line 9494 "MachineIndependent/glslang_tab.cpp"
9494     break;
9495
9496   case 461: /* type_specifier_nonarray: IIMAGEBUFFER  */
9497 #line 3105 "MachineIndependent/glslang.y"
9498                    {
9499         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9500         (yyval.interm.type).basicType = EbtSampler;
9501         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
9502     }
9503 #line 9504 "MachineIndependent/glslang_tab.cpp"
9504     break;
9505
9506   case 462: /* type_specifier_nonarray: UIMAGEBUFFER  */
9507 #line 3110 "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.setImage(EbtUint, EsdBuffer);
9512     }
9513 #line 9514 "MachineIndependent/glslang_tab.cpp"
9514     break;
9515
9516   case 463: /* type_specifier_nonarray: IMAGE1DARRAY  */
9517 #line 3115 "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.setImage(EbtFloat, Esd1D, true);
9522     }
9523 #line 9524 "MachineIndependent/glslang_tab.cpp"
9524     break;
9525
9526   case 464: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
9527 #line 3120 "MachineIndependent/glslang.y"
9528                       {
9529         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9530         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9531         (yyval.interm.type).basicType = EbtSampler;
9532         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
9533     }
9534 #line 9535 "MachineIndependent/glslang_tab.cpp"
9535     break;
9536
9537   case 465: /* type_specifier_nonarray: IIMAGE1DARRAY  */
9538 #line 3126 "MachineIndependent/glslang.y"
9539                     {
9540         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9541         (yyval.interm.type).basicType = EbtSampler;
9542         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
9543     }
9544 #line 9545 "MachineIndependent/glslang_tab.cpp"
9545     break;
9546
9547   case 466: /* type_specifier_nonarray: UIMAGE1DARRAY  */
9548 #line 3131 "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.setImage(EbtUint, Esd1D, true);
9553     }
9554 #line 9555 "MachineIndependent/glslang_tab.cpp"
9555     break;
9556
9557   case 467: /* type_specifier_nonarray: IMAGE2DARRAY  */
9558 #line 3136 "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.setImage(EbtFloat, Esd2D, true);
9563     }
9564 #line 9565 "MachineIndependent/glslang_tab.cpp"
9565     break;
9566
9567   case 468: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
9568 #line 3141 "MachineIndependent/glslang.y"
9569                       {
9570         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9571         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9572         (yyval.interm.type).basicType = EbtSampler;
9573         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9574     }
9575 #line 9576 "MachineIndependent/glslang_tab.cpp"
9576     break;
9577
9578   case 469: /* type_specifier_nonarray: IIMAGE2DARRAY  */
9579 #line 3147 "MachineIndependent/glslang.y"
9580                     {
9581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9582         (yyval.interm.type).basicType = EbtSampler;
9583         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9584     }
9585 #line 9586 "MachineIndependent/glslang_tab.cpp"
9586     break;
9587
9588   case 470: /* type_specifier_nonarray: UIMAGE2DARRAY  */
9589 #line 3152 "MachineIndependent/glslang.y"
9590                     {
9591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9592         (yyval.interm.type).basicType = EbtSampler;
9593         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9594     }
9595 #line 9596 "MachineIndependent/glslang_tab.cpp"
9596     break;
9597
9598   case 471: /* type_specifier_nonarray: IMAGECUBEARRAY  */
9599 #line 3157 "MachineIndependent/glslang.y"
9600                      {
9601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9602         (yyval.interm.type).basicType = EbtSampler;
9603         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9604     }
9605 #line 9606 "MachineIndependent/glslang_tab.cpp"
9606     break;
9607
9608   case 472: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
9609 #line 3162 "MachineIndependent/glslang.y"
9610                         {
9611         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9612         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9613         (yyval.interm.type).basicType = EbtSampler;
9614         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9615     }
9616 #line 9617 "MachineIndependent/glslang_tab.cpp"
9617     break;
9618
9619   case 473: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
9620 #line 3168 "MachineIndependent/glslang.y"
9621                       {
9622         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9623         (yyval.interm.type).basicType = EbtSampler;
9624         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9625     }
9626 #line 9627 "MachineIndependent/glslang_tab.cpp"
9627     break;
9628
9629   case 474: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
9630 #line 3173 "MachineIndependent/glslang.y"
9631                       {
9632         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9633         (yyval.interm.type).basicType = EbtSampler;
9634         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9635     }
9636 #line 9637 "MachineIndependent/glslang_tab.cpp"
9637     break;
9638
9639   case 475: /* type_specifier_nonarray: IMAGE2DMS  */
9640 #line 3178 "MachineIndependent/glslang.y"
9641                 {
9642         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9643         (yyval.interm.type).basicType = EbtSampler;
9644         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9645     }
9646 #line 9647 "MachineIndependent/glslang_tab.cpp"
9647     break;
9648
9649   case 476: /* type_specifier_nonarray: F16IMAGE2DMS  */
9650 #line 3183 "MachineIndependent/glslang.y"
9651                    {
9652         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9653         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9654         (yyval.interm.type).basicType = EbtSampler;
9655         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9656     }
9657 #line 9658 "MachineIndependent/glslang_tab.cpp"
9658     break;
9659
9660   case 477: /* type_specifier_nonarray: IIMAGE2DMS  */
9661 #line 3189 "MachineIndependent/glslang.y"
9662                  {
9663         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9664         (yyval.interm.type).basicType = EbtSampler;
9665         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9666     }
9667 #line 9668 "MachineIndependent/glslang_tab.cpp"
9668     break;
9669
9670   case 478: /* type_specifier_nonarray: UIMAGE2DMS  */
9671 #line 3194 "MachineIndependent/glslang.y"
9672                  {
9673         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9674         (yyval.interm.type).basicType = EbtSampler;
9675         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9676     }
9677 #line 9678 "MachineIndependent/glslang_tab.cpp"
9678     break;
9679
9680   case 479: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
9681 #line 3199 "MachineIndependent/glslang.y"
9682                      {
9683         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9684         (yyval.interm.type).basicType = EbtSampler;
9685         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9686     }
9687 #line 9688 "MachineIndependent/glslang_tab.cpp"
9688     break;
9689
9690   case 480: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
9691 #line 3204 "MachineIndependent/glslang.y"
9692                         {
9693         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9694         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9695         (yyval.interm.type).basicType = EbtSampler;
9696         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9697     }
9698 #line 9699 "MachineIndependent/glslang_tab.cpp"
9699     break;
9700
9701   case 481: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
9702 #line 3210 "MachineIndependent/glslang.y"
9703                       {
9704         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9705         (yyval.interm.type).basicType = EbtSampler;
9706         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9707     }
9708 #line 9709 "MachineIndependent/glslang_tab.cpp"
9709     break;
9710
9711   case 482: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
9712 #line 3215 "MachineIndependent/glslang.y"
9713                       {
9714         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9715         (yyval.interm.type).basicType = EbtSampler;
9716         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9717     }
9718 #line 9719 "MachineIndependent/glslang_tab.cpp"
9719     break;
9720
9721   case 483: /* type_specifier_nonarray: I64IMAGE1D  */
9722 #line 3220 "MachineIndependent/glslang.y"
9723                  {
9724         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9725         (yyval.interm.type).basicType = EbtSampler;
9726         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
9727     }
9728 #line 9729 "MachineIndependent/glslang_tab.cpp"
9729     break;
9730
9731   case 484: /* type_specifier_nonarray: U64IMAGE1D  */
9732 #line 3225 "MachineIndependent/glslang.y"
9733                  {
9734         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9735         (yyval.interm.type).basicType = EbtSampler;
9736         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
9737     }
9738 #line 9739 "MachineIndependent/glslang_tab.cpp"
9739     break;
9740
9741   case 485: /* type_specifier_nonarray: I64IMAGE2D  */
9742 #line 3230 "MachineIndependent/glslang.y"
9743                  {
9744         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9745         (yyval.interm.type).basicType = EbtSampler;
9746         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
9747     }
9748 #line 9749 "MachineIndependent/glslang_tab.cpp"
9749     break;
9750
9751   case 486: /* type_specifier_nonarray: U64IMAGE2D  */
9752 #line 3235 "MachineIndependent/glslang.y"
9753                  {
9754         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9755         (yyval.interm.type).basicType = EbtSampler;
9756         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
9757     }
9758 #line 9759 "MachineIndependent/glslang_tab.cpp"
9759     break;
9760
9761   case 487: /* type_specifier_nonarray: I64IMAGE3D  */
9762 #line 3240 "MachineIndependent/glslang.y"
9763                  {
9764         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9765         (yyval.interm.type).basicType = EbtSampler;
9766         (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
9767     }
9768 #line 9769 "MachineIndependent/glslang_tab.cpp"
9769     break;
9770
9771   case 488: /* type_specifier_nonarray: U64IMAGE3D  */
9772 #line 3245 "MachineIndependent/glslang.y"
9773                  {
9774         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9775         (yyval.interm.type).basicType = EbtSampler;
9776         (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
9777     }
9778 #line 9779 "MachineIndependent/glslang_tab.cpp"
9779     break;
9780
9781   case 489: /* type_specifier_nonarray: I64IMAGE2DRECT  */
9782 #line 3250 "MachineIndependent/glslang.y"
9783                      {
9784         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9785         (yyval.interm.type).basicType = EbtSampler;
9786         (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
9787     }
9788 #line 9789 "MachineIndependent/glslang_tab.cpp"
9789     break;
9790
9791   case 490: /* type_specifier_nonarray: U64IMAGE2DRECT  */
9792 #line 3255 "MachineIndependent/glslang.y"
9793                      {
9794         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9795         (yyval.interm.type).basicType = EbtSampler;
9796         (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
9797     }
9798 #line 9799 "MachineIndependent/glslang_tab.cpp"
9799     break;
9800
9801   case 491: /* type_specifier_nonarray: I64IMAGECUBE  */
9802 #line 3260 "MachineIndependent/glslang.y"
9803                    {
9804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9805         (yyval.interm.type).basicType = EbtSampler;
9806         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
9807     }
9808 #line 9809 "MachineIndependent/glslang_tab.cpp"
9809     break;
9810
9811   case 492: /* type_specifier_nonarray: U64IMAGECUBE  */
9812 #line 3265 "MachineIndependent/glslang.y"
9813                    {
9814         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9815         (yyval.interm.type).basicType = EbtSampler;
9816         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
9817     }
9818 #line 9819 "MachineIndependent/glslang_tab.cpp"
9819     break;
9820
9821   case 493: /* type_specifier_nonarray: I64IMAGEBUFFER  */
9822 #line 3270 "MachineIndependent/glslang.y"
9823                      {
9824         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9825         (yyval.interm.type).basicType = EbtSampler;
9826         (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
9827     }
9828 #line 9829 "MachineIndependent/glslang_tab.cpp"
9829     break;
9830
9831   case 494: /* type_specifier_nonarray: U64IMAGEBUFFER  */
9832 #line 3275 "MachineIndependent/glslang.y"
9833                      {
9834         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9835         (yyval.interm.type).basicType = EbtSampler;
9836         (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
9837     }
9838 #line 9839 "MachineIndependent/glslang_tab.cpp"
9839     break;
9840
9841   case 495: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
9842 #line 3280 "MachineIndependent/glslang.y"
9843                       {
9844         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9845         (yyval.interm.type).basicType = EbtSampler;
9846         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
9847     }
9848 #line 9849 "MachineIndependent/glslang_tab.cpp"
9849     break;
9850
9851   case 496: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
9852 #line 3285 "MachineIndependent/glslang.y"
9853                       {
9854         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9855         (yyval.interm.type).basicType = EbtSampler;
9856         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
9857     }
9858 #line 9859 "MachineIndependent/glslang_tab.cpp"
9859     break;
9860
9861   case 497: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
9862 #line 3290 "MachineIndependent/glslang.y"
9863                       {
9864         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9865         (yyval.interm.type).basicType = EbtSampler;
9866         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
9867     }
9868 #line 9869 "MachineIndependent/glslang_tab.cpp"
9869     break;
9870
9871   case 498: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
9872 #line 3295 "MachineIndependent/glslang.y"
9873                       {
9874         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9875         (yyval.interm.type).basicType = EbtSampler;
9876         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
9877     }
9878 #line 9879 "MachineIndependent/glslang_tab.cpp"
9879     break;
9880
9881   case 499: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
9882 #line 3300 "MachineIndependent/glslang.y"
9883                         {
9884         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9885         (yyval.interm.type).basicType = EbtSampler;
9886         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
9887     }
9888 #line 9889 "MachineIndependent/glslang_tab.cpp"
9889     break;
9890
9891   case 500: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
9892 #line 3305 "MachineIndependent/glslang.y"
9893                         {
9894         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9895         (yyval.interm.type).basicType = EbtSampler;
9896         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
9897     }
9898 #line 9899 "MachineIndependent/glslang_tab.cpp"
9899     break;
9900
9901   case 501: /* type_specifier_nonarray: I64IMAGE2DMS  */
9902 #line 3310 "MachineIndependent/glslang.y"
9903                    {
9904         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9905         (yyval.interm.type).basicType = EbtSampler;
9906         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
9907     }
9908 #line 9909 "MachineIndependent/glslang_tab.cpp"
9909     break;
9910
9911   case 502: /* type_specifier_nonarray: U64IMAGE2DMS  */
9912 #line 3315 "MachineIndependent/glslang.y"
9913                    {
9914         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9915         (yyval.interm.type).basicType = EbtSampler;
9916         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
9917     }
9918 #line 9919 "MachineIndependent/glslang_tab.cpp"
9919     break;
9920
9921   case 503: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
9922 #line 3320 "MachineIndependent/glslang.y"
9923                         {
9924         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9925         (yyval.interm.type).basicType = EbtSampler;
9926         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
9927     }
9928 #line 9929 "MachineIndependent/glslang_tab.cpp"
9929     break;
9930
9931   case 504: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
9932 #line 3325 "MachineIndependent/glslang.y"
9933                         {
9934         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9935         (yyval.interm.type).basicType = EbtSampler;
9936         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
9937     }
9938 #line 9939 "MachineIndependent/glslang_tab.cpp"
9939     break;
9940
9941   case 505: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
9942 #line 3330 "MachineIndependent/glslang.y"
9943                          {  // GL_OES_EGL_image_external
9944         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9945         (yyval.interm.type).basicType = EbtSampler;
9946         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9947         (yyval.interm.type).sampler.external = true;
9948     }
9949 #line 9950 "MachineIndependent/glslang_tab.cpp"
9950     break;
9951
9952   case 506: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
9953 #line 3336 "MachineIndependent/glslang.y"
9954                               { // GL_EXT_YUV_target
9955         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9956         (yyval.interm.type).basicType = EbtSampler;
9957         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9958         (yyval.interm.type).sampler.yuv = true;
9959     }
9960 #line 9961 "MachineIndependent/glslang_tab.cpp"
9961     break;
9962
9963   case 507: /* type_specifier_nonarray: SUBPASSINPUT  */
9964 #line 3342 "MachineIndependent/glslang.y"
9965                    {
9966         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9967         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9968         (yyval.interm.type).basicType = EbtSampler;
9969         (yyval.interm.type).sampler.setSubpass(EbtFloat);
9970     }
9971 #line 9972 "MachineIndependent/glslang_tab.cpp"
9972     break;
9973
9974   case 508: /* type_specifier_nonarray: SUBPASSINPUTMS  */
9975 #line 3348 "MachineIndependent/glslang.y"
9976                      {
9977         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9978         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9979         (yyval.interm.type).basicType = EbtSampler;
9980         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9981     }
9982 #line 9983 "MachineIndependent/glslang_tab.cpp"
9983     break;
9984
9985   case 509: /* type_specifier_nonarray: F16SUBPASSINPUT  */
9986 #line 3354 "MachineIndependent/glslang.y"
9987                       {
9988         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9989         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9990         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9991         (yyval.interm.type).basicType = EbtSampler;
9992         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9993     }
9994 #line 9995 "MachineIndependent/glslang_tab.cpp"
9995     break;
9996
9997   case 510: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
9998 #line 3361 "MachineIndependent/glslang.y"
9999                         {
10000         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
10001         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10003         (yyval.interm.type).basicType = EbtSampler;
10004         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
10005     }
10006 #line 10007 "MachineIndependent/glslang_tab.cpp"
10007     break;
10008
10009   case 511: /* type_specifier_nonarray: ISUBPASSINPUT  */
10010 #line 3368 "MachineIndependent/glslang.y"
10011                     {
10012         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10013         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10014         (yyval.interm.type).basicType = EbtSampler;
10015         (yyval.interm.type).sampler.setSubpass(EbtInt);
10016     }
10017 #line 10018 "MachineIndependent/glslang_tab.cpp"
10018     break;
10019
10020   case 512: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
10021 #line 3374 "MachineIndependent/glslang.y"
10022                       {
10023         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10024         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10025         (yyval.interm.type).basicType = EbtSampler;
10026         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
10027     }
10028 #line 10029 "MachineIndependent/glslang_tab.cpp"
10029     break;
10030
10031   case 513: /* type_specifier_nonarray: USUBPASSINPUT  */
10032 #line 3380 "MachineIndependent/glslang.y"
10033                     {
10034         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10035         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10036         (yyval.interm.type).basicType = EbtSampler;
10037         (yyval.interm.type).sampler.setSubpass(EbtUint);
10038     }
10039 #line 10040 "MachineIndependent/glslang_tab.cpp"
10040     break;
10041
10042   case 514: /* type_specifier_nonarray: USUBPASSINPUTMS  */
10043 #line 3386 "MachineIndependent/glslang.y"
10044                       {
10045         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
10046         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10047         (yyval.interm.type).basicType = EbtSampler;
10048         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
10049     }
10050 #line 10051 "MachineIndependent/glslang_tab.cpp"
10051     break;
10052
10053   case 515: /* type_specifier_nonarray: FCOOPMATNV  */
10054 #line 3392 "MachineIndependent/glslang.y"
10055                  {
10056         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10057         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10058         (yyval.interm.type).basicType = EbtFloat;
10059         (yyval.interm.type).coopmat = true;
10060     }
10061 #line 10062 "MachineIndependent/glslang_tab.cpp"
10062     break;
10063
10064   case 516: /* type_specifier_nonarray: ICOOPMATNV  */
10065 #line 3398 "MachineIndependent/glslang.y"
10066                  {
10067         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10068         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10069         (yyval.interm.type).basicType = EbtInt;
10070         (yyval.interm.type).coopmat = true;
10071     }
10072 #line 10073 "MachineIndependent/glslang_tab.cpp"
10073     break;
10074
10075   case 517: /* type_specifier_nonarray: UCOOPMATNV  */
10076 #line 3404 "MachineIndependent/glslang.y"
10077                  {
10078         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
10079         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10080         (yyval.interm.type).basicType = EbtUint;
10081         (yyval.interm.type).coopmat = true;
10082     }
10083 #line 10084 "MachineIndependent/glslang_tab.cpp"
10084     break;
10085
10086   case 518: /* type_specifier_nonarray: struct_specifier  */
10087 #line 3411 "MachineIndependent/glslang.y"
10088                        {
10089         (yyval.interm.type) = (yyvsp[0].interm.type);
10090         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
10091         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
10092     }
10093 #line 10094 "MachineIndependent/glslang_tab.cpp"
10094     break;
10095
10096   case 519: /* type_specifier_nonarray: TYPE_NAME  */
10097 #line 3416 "MachineIndependent/glslang.y"
10098                 {
10099         //
10100         // This is for user defined type names.  The lexical phase looked up the
10101         // type.
10102         //
10103         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
10104             const TType& structure = variable->getType();
10105             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10106             (yyval.interm.type).basicType = EbtStruct;
10107             (yyval.interm.type).userDef = &structure;
10108         } else
10109             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
10110     }
10111 #line 10112 "MachineIndependent/glslang_tab.cpp"
10112     break;
10113
10114   case 520: /* precision_qualifier: HIGH_PRECISION  */
10115 #line 3432 "MachineIndependent/glslang.y"
10116                      {
10117         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
10118         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10119         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
10120     }
10121 #line 10122 "MachineIndependent/glslang_tab.cpp"
10122     break;
10123
10124   case 521: /* precision_qualifier: MEDIUM_PRECISION  */
10125 #line 3437 "MachineIndependent/glslang.y"
10126                        {
10127         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
10128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10129         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
10130     }
10131 #line 10132 "MachineIndependent/glslang_tab.cpp"
10132     break;
10133
10134   case 522: /* precision_qualifier: LOW_PRECISION  */
10135 #line 3442 "MachineIndependent/glslang.y"
10136                     {
10137         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
10138         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10139         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
10140     }
10141 #line 10142 "MachineIndependent/glslang_tab.cpp"
10142     break;
10143
10144   case 523: /* $@3: %empty  */
10145 #line 3450 "MachineIndependent/glslang.y"
10146                                    { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
10147 #line 10148 "MachineIndependent/glslang_tab.cpp"
10148     break;
10149
10150   case 524: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
10151 #line 3450 "MachineIndependent/glslang.y"
10152                                                                                                                    {
10153         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
10154         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
10155         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
10156         if (! parseContext.symbolTable.insert(*userTypeDef))
10157             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
10158         (yyval.interm.type).init((yyvsp[-5].lex).loc);
10159         (yyval.interm.type).basicType = EbtStruct;
10160         (yyval.interm.type).userDef = structure;
10161         --parseContext.structNestingLevel;
10162     }
10163 #line 10164 "MachineIndependent/glslang_tab.cpp"
10164     break;
10165
10166   case 525: /* $@4: %empty  */
10167 #line 3461 "MachineIndependent/glslang.y"
10168                         { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
10169 #line 10170 "MachineIndependent/glslang_tab.cpp"
10170     break;
10171
10172   case 526: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
10173 #line 3461 "MachineIndependent/glslang.y"
10174                                                                                                         {
10175         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
10176         (yyval.interm.type).init((yyvsp[-4].lex).loc);
10177         (yyval.interm.type).basicType = EbtStruct;
10178         (yyval.interm.type).userDef = structure;
10179         --parseContext.structNestingLevel;
10180     }
10181 #line 10182 "MachineIndependent/glslang_tab.cpp"
10182     break;
10183
10184   case 527: /* struct_declaration_list: struct_declaration  */
10185 #line 3471 "MachineIndependent/glslang.y"
10186                          {
10187         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
10188     }
10189 #line 10190 "MachineIndependent/glslang_tab.cpp"
10190     break;
10191
10192   case 528: /* struct_declaration_list: struct_declaration_list struct_declaration  */
10193 #line 3474 "MachineIndependent/glslang.y"
10194                                                  {
10195         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10196         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
10197             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
10198                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
10199                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
10200             }
10201             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
10202         }
10203     }
10204 #line 10205 "MachineIndependent/glslang_tab.cpp"
10205     break;
10206
10207   case 529: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
10208 #line 3487 "MachineIndependent/glslang.y"
10209                                                       {
10210         if ((yyvsp[-2].interm.type).arraySizes) {
10211             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10212             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10213             if (parseContext.isEsProfile())
10214                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10215         }
10216
10217         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10218
10219         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10220         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10221
10222         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10223             TType type((yyvsp[-2].interm.type));
10224             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10225             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10226             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10227             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10228             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10229         }
10230     }
10231 #line 10232 "MachineIndependent/glslang_tab.cpp"
10232     break;
10233
10234   case 530: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
10235 #line 3509 "MachineIndependent/glslang.y"
10236                                                                      {
10237         if ((yyvsp[-2].interm.type).arraySizes) {
10238             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
10239             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
10240             if (parseContext.isEsProfile())
10241                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
10242         }
10243
10244         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
10245
10246         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
10247         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
10248         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
10249         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
10250
10251         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
10252             TType type((yyvsp[-2].interm.type));
10253             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
10254             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
10255             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
10256             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
10257             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
10258         }
10259     }
10260 #line 10261 "MachineIndependent/glslang_tab.cpp"
10261     break;
10262
10263   case 531: /* struct_declarator_list: struct_declarator  */
10264 #line 3536 "MachineIndependent/glslang.y"
10265                         {
10266         (yyval.interm.typeList) = new TTypeList;
10267         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10268     }
10269 #line 10270 "MachineIndependent/glslang_tab.cpp"
10270     break;
10271
10272   case 532: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
10273 #line 3540 "MachineIndependent/glslang.y"
10274                                                      {
10275         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
10276     }
10277 #line 10278 "MachineIndependent/glslang_tab.cpp"
10278     break;
10279
10280   case 533: /* struct_declarator: IDENTIFIER  */
10281 #line 3546 "MachineIndependent/glslang.y"
10282                  {
10283         (yyval.interm.typeLine).type = new TType(EbtVoid);
10284         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
10285         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
10286     }
10287 #line 10288 "MachineIndependent/glslang_tab.cpp"
10288     break;
10289
10290   case 534: /* struct_declarator: IDENTIFIER array_specifier  */
10291 #line 3551 "MachineIndependent/glslang.y"
10292                                  {
10293         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
10294
10295         (yyval.interm.typeLine).type = new TType(EbtVoid);
10296         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
10297         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
10298         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
10299     }
10300 #line 10301 "MachineIndependent/glslang_tab.cpp"
10301     break;
10302
10303   case 535: /* initializer: assignment_expression  */
10304 #line 3562 "MachineIndependent/glslang.y"
10305                             {
10306         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10307     }
10308 #line 10309 "MachineIndependent/glslang_tab.cpp"
10309     break;
10310
10311   case 536: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
10312 #line 3566 "MachineIndependent/glslang.y"
10313                                               {
10314         const char* initFeature = "{ } style initializers";
10315         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
10316         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10317         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
10318     }
10319 #line 10320 "MachineIndependent/glslang_tab.cpp"
10320     break;
10321
10322   case 537: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
10323 #line 3572 "MachineIndependent/glslang.y"
10324                                                     {
10325         const char* initFeature = "{ } style initializers";
10326         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
10327         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
10328         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
10329     }
10330 #line 10331 "MachineIndependent/glslang_tab.cpp"
10331     break;
10332
10333   case 538: /* initializer: LEFT_BRACE RIGHT_BRACE  */
10334 #line 3578 "MachineIndependent/glslang.y"
10335                              {
10336         const char* initFeature = "empty { } initializer";
10337         parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10338         parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
10339         (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
10340     }
10341 #line 10342 "MachineIndependent/glslang_tab.cpp"
10342     break;
10343
10344   case 539: /* initializer_list: initializer  */
10345 #line 3589 "MachineIndependent/glslang.y"
10346                   {
10347         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
10348     }
10349 #line 10350 "MachineIndependent/glslang_tab.cpp"
10350     break;
10351
10352   case 540: /* initializer_list: initializer_list COMMA initializer  */
10353 #line 3592 "MachineIndependent/glslang.y"
10354                                          {
10355         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
10356     }
10357 #line 10358 "MachineIndependent/glslang_tab.cpp"
10358     break;
10359
10360   case 541: /* declaration_statement: declaration  */
10361 #line 3599 "MachineIndependent/glslang.y"
10362                   { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10363 #line 10364 "MachineIndependent/glslang_tab.cpp"
10364     break;
10365
10366   case 542: /* statement: compound_statement  */
10367 #line 3603 "MachineIndependent/glslang.y"
10368                           { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10369 #line 10370 "MachineIndependent/glslang_tab.cpp"
10370     break;
10371
10372   case 543: /* statement: simple_statement  */
10373 #line 3604 "MachineIndependent/glslang.y"
10374                           { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10375 #line 10376 "MachineIndependent/glslang_tab.cpp"
10376     break;
10377
10378   case 544: /* simple_statement: declaration_statement  */
10379 #line 3610 "MachineIndependent/glslang.y"
10380                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10381 #line 10382 "MachineIndependent/glslang_tab.cpp"
10382     break;
10383
10384   case 545: /* simple_statement: expression_statement  */
10385 #line 3611 "MachineIndependent/glslang.y"
10386                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10387 #line 10388 "MachineIndependent/glslang_tab.cpp"
10388     break;
10389
10390   case 546: /* simple_statement: selection_statement  */
10391 #line 3612 "MachineIndependent/glslang.y"
10392                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10393 #line 10394 "MachineIndependent/glslang_tab.cpp"
10394     break;
10395
10396   case 547: /* simple_statement: switch_statement  */
10397 #line 3613 "MachineIndependent/glslang.y"
10398                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10399 #line 10400 "MachineIndependent/glslang_tab.cpp"
10400     break;
10401
10402   case 548: /* simple_statement: case_label  */
10403 #line 3614 "MachineIndependent/glslang.y"
10404                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10405 #line 10406 "MachineIndependent/glslang_tab.cpp"
10406     break;
10407
10408   case 549: /* simple_statement: iteration_statement  */
10409 #line 3615 "MachineIndependent/glslang.y"
10410                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10411 #line 10412 "MachineIndependent/glslang_tab.cpp"
10412     break;
10413
10414   case 550: /* simple_statement: jump_statement  */
10415 #line 3616 "MachineIndependent/glslang.y"
10416                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10417 #line 10418 "MachineIndependent/glslang_tab.cpp"
10418     break;
10419
10420   case 551: /* simple_statement: demote_statement  */
10421 #line 3618 "MachineIndependent/glslang.y"
10422                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10423 #line 10424 "MachineIndependent/glslang_tab.cpp"
10424     break;
10425
10426   case 552: /* demote_statement: DEMOTE SEMICOLON  */
10427 #line 3624 "MachineIndependent/glslang.y"
10428                        {
10429         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
10430         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
10431         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
10432     }
10433 #line 10434 "MachineIndependent/glslang_tab.cpp"
10434     break;
10435
10436   case 553: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
10437 #line 3633 "MachineIndependent/glslang.y"
10438                              { (yyval.interm.intermNode) = 0; }
10439 #line 10440 "MachineIndependent/glslang_tab.cpp"
10440     break;
10441
10442   case 554: /* $@5: %empty  */
10443 #line 3634 "MachineIndependent/glslang.y"
10444                  {
10445         parseContext.symbolTable.push();
10446         ++parseContext.statementNestingLevel;
10447     }
10448 #line 10449 "MachineIndependent/glslang_tab.cpp"
10449     break;
10450
10451   case 555: /* $@6: %empty  */
10452 #line 3638 "MachineIndependent/glslang.y"
10453                      {
10454         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10455         --parseContext.statementNestingLevel;
10456     }
10457 #line 10458 "MachineIndependent/glslang_tab.cpp"
10458     break;
10459
10460   case 556: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
10461 #line 3642 "MachineIndependent/glslang.y"
10462                   {
10463         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
10464             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10465         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
10466     }
10467 #line 10468 "MachineIndependent/glslang_tab.cpp"
10468     break;
10469
10470   case 557: /* statement_no_new_scope: compound_statement_no_new_scope  */
10471 #line 3650 "MachineIndependent/glslang.y"
10472                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10473 #line 10474 "MachineIndependent/glslang_tab.cpp"
10474     break;
10475
10476   case 558: /* statement_no_new_scope: simple_statement  */
10477 #line 3651 "MachineIndependent/glslang.y"
10478                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
10479 #line 10480 "MachineIndependent/glslang_tab.cpp"
10480     break;
10481
10482   case 559: /* $@7: %empty  */
10483 #line 3655 "MachineIndependent/glslang.y"
10484       {
10485         ++parseContext.controlFlowNestingLevel;
10486     }
10487 #line 10488 "MachineIndependent/glslang_tab.cpp"
10488     break;
10489
10490   case 560: /* statement_scoped: $@7 compound_statement  */
10491 #line 3658 "MachineIndependent/glslang.y"
10492                           {
10493         --parseContext.controlFlowNestingLevel;
10494         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10495     }
10496 #line 10497 "MachineIndependent/glslang_tab.cpp"
10497     break;
10498
10499   case 561: /* $@8: %empty  */
10500 #line 3662 "MachineIndependent/glslang.y"
10501       {
10502         parseContext.symbolTable.push();
10503         ++parseContext.statementNestingLevel;
10504         ++parseContext.controlFlowNestingLevel;
10505     }
10506 #line 10507 "MachineIndependent/glslang_tab.cpp"
10507     break;
10508
10509   case 562: /* statement_scoped: $@8 simple_statement  */
10510 #line 3667 "MachineIndependent/glslang.y"
10511                        {
10512         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10513         --parseContext.statementNestingLevel;
10514         --parseContext.controlFlowNestingLevel;
10515         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10516     }
10517 #line 10518 "MachineIndependent/glslang_tab.cpp"
10518     break;
10519
10520   case 563: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
10521 #line 3676 "MachineIndependent/glslang.y"
10522                              {
10523         (yyval.interm.intermNode) = 0;
10524     }
10525 #line 10526 "MachineIndependent/glslang_tab.cpp"
10526     break;
10527
10528   case 564: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
10529 #line 3679 "MachineIndependent/glslang.y"
10530                                             {
10531         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
10532             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10533         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
10534     }
10535 #line 10536 "MachineIndependent/glslang_tab.cpp"
10536     break;
10537
10538   case 565: /* statement_list: statement  */
10539 #line 3687 "MachineIndependent/glslang.y"
10540                 {
10541         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
10542         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
10543                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
10544             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
10545             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
10546         }
10547     }
10548 #line 10549 "MachineIndependent/glslang_tab.cpp"
10549     break;
10550
10551   case 566: /* statement_list: statement_list statement  */
10552 #line 3695 "MachineIndependent/glslang.y"
10553                                {
10554         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
10555                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
10556             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
10557             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
10558         } else
10559             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10560     }
10561 #line 10562 "MachineIndependent/glslang_tab.cpp"
10562     break;
10563
10564   case 567: /* expression_statement: SEMICOLON  */
10565 #line 3706 "MachineIndependent/glslang.y"
10566                  { (yyval.interm.intermNode) = 0; }
10567 #line 10568 "MachineIndependent/glslang_tab.cpp"
10568     break;
10569
10570   case 568: /* expression_statement: expression SEMICOLON  */
10571 #line 3707 "MachineIndependent/glslang.y"
10572                             { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
10573 #line 10574 "MachineIndependent/glslang_tab.cpp"
10574     break;
10575
10576   case 569: /* selection_statement: selection_statement_nonattributed  */
10577 #line 3711 "MachineIndependent/glslang.y"
10578                                         {
10579         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10580     }
10581 #line 10582 "MachineIndependent/glslang_tab.cpp"
10582     break;
10583
10584   case 570: /* selection_statement: attribute selection_statement_nonattributed  */
10585 #line 3715 "MachineIndependent/glslang.y"
10586                                                   {
10587         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10588         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10589     }
10590 #line 10591 "MachineIndependent/glslang_tab.cpp"
10591     break;
10592
10593   case 571: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
10594 #line 3722 "MachineIndependent/glslang.y"
10595                                                                     {
10596         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10597         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
10598     }
10599 #line 10600 "MachineIndependent/glslang_tab.cpp"
10600     break;
10601
10602   case 572: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
10603 #line 3729 "MachineIndependent/glslang.y"
10604                                              {
10605         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
10606         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
10607     }
10608 #line 10609 "MachineIndependent/glslang_tab.cpp"
10609     break;
10610
10611   case 573: /* selection_rest_statement: statement_scoped  */
10612 #line 3733 "MachineIndependent/glslang.y"
10613                        {
10614         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
10615         (yyval.interm.nodePair).node2 = 0;
10616     }
10617 #line 10618 "MachineIndependent/glslang_tab.cpp"
10618     break;
10619
10620   case 574: /* condition: expression  */
10621 #line 3741 "MachineIndependent/glslang.y"
10622                  {
10623         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10624         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
10625     }
10626 #line 10627 "MachineIndependent/glslang_tab.cpp"
10627     break;
10628
10629   case 575: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
10630 #line 3745 "MachineIndependent/glslang.y"
10631                                                         {
10632         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
10633
10634         TType type((yyvsp[-3].interm.type));
10635         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
10636         if (initNode)
10637             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
10638         else
10639             (yyval.interm.intermTypedNode) = 0;
10640     }
10641 #line 10642 "MachineIndependent/glslang_tab.cpp"
10642     break;
10643
10644   case 576: /* switch_statement: switch_statement_nonattributed  */
10645 #line 3758 "MachineIndependent/glslang.y"
10646                                      {
10647         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10648     }
10649 #line 10650 "MachineIndependent/glslang_tab.cpp"
10650     break;
10651
10652   case 577: /* switch_statement: attribute switch_statement_nonattributed  */
10653 #line 3762 "MachineIndependent/glslang.y"
10654                                                {
10655         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10656         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10657     }
10658 #line 10659 "MachineIndependent/glslang_tab.cpp"
10659     break;
10660
10661   case 578: /* $@9: %empty  */
10662 #line 3769 "MachineIndependent/glslang.y"
10663                                                {
10664         // start new switch sequence on the switch stack
10665         ++parseContext.controlFlowNestingLevel;
10666         ++parseContext.statementNestingLevel;
10667         parseContext.switchSequenceStack.push_back(new TIntermSequence);
10668         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
10669         parseContext.symbolTable.push();
10670     }
10671 #line 10672 "MachineIndependent/glslang_tab.cpp"
10672     break;
10673
10674   case 579: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
10675 #line 3777 "MachineIndependent/glslang.y"
10676                                                  {
10677         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
10678         delete parseContext.switchSequenceStack.back();
10679         parseContext.switchSequenceStack.pop_back();
10680         parseContext.switchLevel.pop_back();
10681         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10682         --parseContext.statementNestingLevel;
10683         --parseContext.controlFlowNestingLevel;
10684     }
10685 #line 10686 "MachineIndependent/glslang_tab.cpp"
10686     break;
10687
10688   case 580: /* switch_statement_list: %empty  */
10689 #line 3789 "MachineIndependent/glslang.y"
10690                     {
10691         (yyval.interm.intermNode) = 0;
10692     }
10693 #line 10694 "MachineIndependent/glslang_tab.cpp"
10694     break;
10695
10696   case 581: /* switch_statement_list: statement_list  */
10697 #line 3792 "MachineIndependent/glslang.y"
10698                      {
10699         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10700     }
10701 #line 10702 "MachineIndependent/glslang_tab.cpp"
10702     break;
10703
10704   case 582: /* case_label: CASE expression COLON  */
10705 #line 3798 "MachineIndependent/glslang.y"
10706                             {
10707         (yyval.interm.intermNode) = 0;
10708         if (parseContext.switchLevel.size() == 0)
10709             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
10710         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10711             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
10712         else {
10713             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
10714             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
10715             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
10716         }
10717     }
10718 #line 10719 "MachineIndependent/glslang_tab.cpp"
10719     break;
10720
10721   case 583: /* case_label: DEFAULT COLON  */
10722 #line 3810 "MachineIndependent/glslang.y"
10723                     {
10724         (yyval.interm.intermNode) = 0;
10725         if (parseContext.switchLevel.size() == 0)
10726             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
10727         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10728             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
10729         else
10730             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
10731     }
10732 #line 10733 "MachineIndependent/glslang_tab.cpp"
10733     break;
10734
10735   case 584: /* iteration_statement: iteration_statement_nonattributed  */
10736 #line 3822 "MachineIndependent/glslang.y"
10737                                         {
10738         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10739     }
10740 #line 10741 "MachineIndependent/glslang_tab.cpp"
10741     break;
10742
10743   case 585: /* iteration_statement: attribute iteration_statement_nonattributed  */
10744 #line 3826 "MachineIndependent/glslang.y"
10745                                                   {
10746         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10747         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10748     }
10749 #line 10750 "MachineIndependent/glslang_tab.cpp"
10750     break;
10751
10752   case 586: /* $@10: %empty  */
10753 #line 3833 "MachineIndependent/glslang.y"
10754                        {
10755         if (! parseContext.limits.whileLoops)
10756             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
10757         parseContext.symbolTable.push();
10758         ++parseContext.loopNestingLevel;
10759         ++parseContext.statementNestingLevel;
10760         ++parseContext.controlFlowNestingLevel;
10761     }
10762 #line 10763 "MachineIndependent/glslang_tab.cpp"
10763     break;
10764
10765   case 587: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
10766 #line 3841 "MachineIndependent/glslang.y"
10767                                                    {
10768         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10769         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
10770         --parseContext.loopNestingLevel;
10771         --parseContext.statementNestingLevel;
10772         --parseContext.controlFlowNestingLevel;
10773     }
10774 #line 10775 "MachineIndependent/glslang_tab.cpp"
10775     break;
10776
10777   case 588: /* $@11: %empty  */
10778 #line 3848 "MachineIndependent/glslang.y"
10779          {
10780         ++parseContext.loopNestingLevel;
10781         ++parseContext.statementNestingLevel;
10782         ++parseContext.controlFlowNestingLevel;
10783     }
10784 #line 10785 "MachineIndependent/glslang_tab.cpp"
10785     break;
10786
10787   case 589: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
10788 #line 3853 "MachineIndependent/glslang.y"
10789                                                                   {
10790         if (! parseContext.limits.whileLoops)
10791             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
10792
10793         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10794
10795         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
10796         --parseContext.loopNestingLevel;
10797         --parseContext.statementNestingLevel;
10798         --parseContext.controlFlowNestingLevel;
10799     }
10800 #line 10801 "MachineIndependent/glslang_tab.cpp"
10801     break;
10802
10803   case 590: /* $@12: %empty  */
10804 #line 3864 "MachineIndependent/glslang.y"
10805                      {
10806         parseContext.symbolTable.push();
10807         ++parseContext.loopNestingLevel;
10808         ++parseContext.statementNestingLevel;
10809         ++parseContext.controlFlowNestingLevel;
10810     }
10811 #line 10812 "MachineIndependent/glslang_tab.cpp"
10812     break;
10813
10814   case 591: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
10815 #line 3870 "MachineIndependent/glslang.y"
10816                                                                                {
10817         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10818         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10819         TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
10820         if (! parseContext.limits.nonInductiveForLoops)
10821             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10822         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10823         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10824         --parseContext.loopNestingLevel;
10825         --parseContext.statementNestingLevel;
10826         --parseContext.controlFlowNestingLevel;
10827     }
10828 #line 10829 "MachineIndependent/glslang_tab.cpp"
10829     break;
10830
10831   case 592: /* for_init_statement: expression_statement  */
10832 #line 3885 "MachineIndependent/glslang.y"
10833                            {
10834         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10835     }
10836 #line 10837 "MachineIndependent/glslang_tab.cpp"
10837     break;
10838
10839   case 593: /* for_init_statement: declaration_statement  */
10840 #line 3888 "MachineIndependent/glslang.y"
10841                             {
10842         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10843     }
10844 #line 10845 "MachineIndependent/glslang_tab.cpp"
10845     break;
10846
10847   case 594: /* conditionopt: condition  */
10848 #line 3894 "MachineIndependent/glslang.y"
10849                 {
10850         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10851     }
10852 #line 10853 "MachineIndependent/glslang_tab.cpp"
10853     break;
10854
10855   case 595: /* conditionopt: %empty  */
10856 #line 3897 "MachineIndependent/glslang.y"
10857                         {
10858         (yyval.interm.intermTypedNode) = 0;
10859     }
10860 #line 10861 "MachineIndependent/glslang_tab.cpp"
10861     break;
10862
10863   case 596: /* for_rest_statement: conditionopt SEMICOLON  */
10864 #line 3903 "MachineIndependent/glslang.y"
10865                              {
10866         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10867         (yyval.interm.nodePair).node2 = 0;
10868     }
10869 #line 10870 "MachineIndependent/glslang_tab.cpp"
10870     break;
10871
10872   case 597: /* for_rest_statement: conditionopt SEMICOLON expression  */
10873 #line 3907 "MachineIndependent/glslang.y"
10874                                          {
10875         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10876         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10877     }
10878 #line 10879 "MachineIndependent/glslang_tab.cpp"
10879     break;
10880
10881   case 598: /* jump_statement: CONTINUE SEMICOLON  */
10882 #line 3914 "MachineIndependent/glslang.y"
10883                          {
10884         if (parseContext.loopNestingLevel <= 0)
10885             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10886         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10887     }
10888 #line 10889 "MachineIndependent/glslang_tab.cpp"
10889     break;
10890
10891   case 599: /* jump_statement: BREAK SEMICOLON  */
10892 #line 3919 "MachineIndependent/glslang.y"
10893                       {
10894         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10895             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10896         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10897     }
10898 #line 10899 "MachineIndependent/glslang_tab.cpp"
10899     break;
10900
10901   case 600: /* jump_statement: RETURN SEMICOLON  */
10902 #line 3924 "MachineIndependent/glslang.y"
10903                        {
10904         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10905         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10906             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10907         if (parseContext.inMain)
10908             parseContext.postEntryPointReturn = true;
10909     }
10910 #line 10911 "MachineIndependent/glslang_tab.cpp"
10911     break;
10912
10913   case 601: /* jump_statement: RETURN expression SEMICOLON  */
10914 #line 3931 "MachineIndependent/glslang.y"
10915                                   {
10916         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10917     }
10918 #line 10919 "MachineIndependent/glslang_tab.cpp"
10919     break;
10920
10921   case 602: /* jump_statement: DISCARD SEMICOLON  */
10922 #line 3934 "MachineIndependent/glslang.y"
10923                         {
10924         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10925         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10926     }
10927 #line 10928 "MachineIndependent/glslang_tab.cpp"
10928     break;
10929
10930   case 603: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
10931 #line 3938 "MachineIndependent/glslang.y"
10932                                      {
10933         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
10934         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
10935     }
10936 #line 10937 "MachineIndependent/glslang_tab.cpp"
10937     break;
10938
10939   case 604: /* jump_statement: TERMINATE_RAY SEMICOLON  */
10940 #line 3943 "MachineIndependent/glslang.y"
10941                               {
10942         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
10943         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
10944     }
10945 #line 10946 "MachineIndependent/glslang_tab.cpp"
10946     break;
10947
10948   case 605: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
10949 #line 3947 "MachineIndependent/glslang.y"
10950                                     {
10951         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
10952         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
10953     }
10954 #line 10955 "MachineIndependent/glslang_tab.cpp"
10955     break;
10956
10957   case 606: /* translation_unit: external_declaration  */
10958 #line 3957 "MachineIndependent/glslang.y"
10959                            {
10960         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10961         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10962     }
10963 #line 10964 "MachineIndependent/glslang_tab.cpp"
10964     break;
10965
10966   case 607: /* translation_unit: translation_unit external_declaration  */
10967 #line 3961 "MachineIndependent/glslang.y"
10968                                             {
10969         if ((yyvsp[0].interm.intermNode) != nullptr) {
10970             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10971             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10972         }
10973     }
10974 #line 10975 "MachineIndependent/glslang_tab.cpp"
10975     break;
10976
10977   case 608: /* external_declaration: function_definition  */
10978 #line 3970 "MachineIndependent/glslang.y"
10979                           {
10980         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10981     }
10982 #line 10983 "MachineIndependent/glslang_tab.cpp"
10983     break;
10984
10985   case 609: /* external_declaration: declaration  */
10986 #line 3973 "MachineIndependent/glslang.y"
10987                   {
10988         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10989     }
10990 #line 10991 "MachineIndependent/glslang_tab.cpp"
10991     break;
10992
10993   case 610: /* external_declaration: SEMICOLON  */
10994 #line 3977 "MachineIndependent/glslang.y"
10995                 {
10996         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10997         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10998         (yyval.interm.intermNode) = nullptr;
10999     }
11000 #line 11001 "MachineIndependent/glslang_tab.cpp"
11001     break;
11002
11003   case 611: /* $@13: %empty  */
11004 #line 3986 "MachineIndependent/glslang.y"
11005                          {
11006         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
11007         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
11008
11009         // For ES 100 only, according to ES shading language 100 spec: A function
11010         // body has a scope nested inside the function's definition.
11011         if (parseContext.profile == EEsProfile && parseContext.version == 100)
11012         {
11013             parseContext.symbolTable.push();
11014             ++parseContext.statementNestingLevel;
11015         }
11016     }
11017 #line 11018 "MachineIndependent/glslang_tab.cpp"
11018     break;
11019
11020   case 612: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
11021 #line 3998 "MachineIndependent/glslang.y"
11022                                     {
11023         //   May be best done as post process phase on intermediate code
11024         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
11025             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
11026         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11027         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
11028         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
11029         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
11030
11031         // store the pragma information for debug and optimize and other vendor specific
11032         // information. This information can be queried from the parse tree
11033         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
11034         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
11035         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
11036
11037         // Set currentFunctionType to empty pointer when goes outside of the function
11038         parseContext.currentFunctionType = nullptr;
11039
11040         // For ES 100 only, according to ES shading language 100 spec: A function
11041         // body has a scope nested inside the function's definition.
11042         if (parseContext.profile == EEsProfile && parseContext.version == 100)
11043         {
11044             parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
11045             --parseContext.statementNestingLevel;
11046         }
11047     }
11048 #line 11049 "MachineIndependent/glslang_tab.cpp"
11049     break;
11050
11051   case 613: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
11052 #line 4028 "MachineIndependent/glslang.y"
11053                                                                            {
11054         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
11055         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
11056     }
11057 #line 11058 "MachineIndependent/glslang_tab.cpp"
11058     break;
11059
11060   case 614: /* attribute_list: single_attribute  */
11061 #line 4034 "MachineIndependent/glslang.y"
11062                        {
11063         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
11064     }
11065 #line 11066 "MachineIndependent/glslang_tab.cpp"
11066     break;
11067
11068   case 615: /* attribute_list: attribute_list COMMA single_attribute  */
11069 #line 4037 "MachineIndependent/glslang.y"
11070                                             {
11071         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
11072     }
11073 #line 11074 "MachineIndependent/glslang_tab.cpp"
11074     break;
11075
11076   case 616: /* single_attribute: IDENTIFIER  */
11077 #line 4042 "MachineIndependent/glslang.y"
11078                  {
11079         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
11080     }
11081 #line 11082 "MachineIndependent/glslang_tab.cpp"
11082     break;
11083
11084   case 617: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
11085 #line 4045 "MachineIndependent/glslang.y"
11086                                                             {
11087         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
11088     }
11089 #line 11090 "MachineIndependent/glslang_tab.cpp"
11090     break;
11091
11092
11093 #line 11094 "MachineIndependent/glslang_tab.cpp"
11094
11095       default: break;
11096     }
11097   /* User semantic actions sometimes alter yychar, and that requires
11098      that yytoken be updated with the new translation.  We take the
11099      approach of translating immediately before every use of yytoken.
11100      One alternative is translating here after every semantic action,
11101      but that translation would be missed if the semantic action invokes
11102      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
11103      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
11104      incorrect destructor might then be invoked immediately.  In the
11105      case of YYERROR or YYBACKUP, subsequent parser actions might lead
11106      to an incorrect destructor call or verbose syntax error message
11107      before the lookahead is translated.  */
11108   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
11109
11110   YYPOPSTACK (yylen);
11111   yylen = 0;
11112
11113   *++yyvsp = yyval;
11114
11115   /* Now 'shift' the result of the reduction.  Determine what state
11116      that goes to, based on the state we popped back to and the rule
11117      number reduced by.  */
11118   {
11119     const int yylhs = yyr1[yyn] - YYNTOKENS;
11120     const int yyi = yypgoto[yylhs] + *yyssp;
11121     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
11122                ? yytable[yyi]
11123                : yydefgoto[yylhs]);
11124   }
11125
11126   goto yynewstate;
11127
11128
11129 /*--------------------------------------.
11130 | yyerrlab -- here on detecting error.  |
11131 `--------------------------------------*/
11132 yyerrlab:
11133   /* Make sure we have latest lookahead translation.  See comments at
11134      user semantic actions for why this is necessary.  */
11135   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
11136   /* If not already recovering from an error, report this error.  */
11137   if (!yyerrstatus)
11138     {
11139       ++yynerrs;
11140       {
11141         yypcontext_t yyctx
11142           = {yyssp, yytoken};
11143         char const *yymsgp = YY_("syntax error");
11144         int yysyntax_error_status;
11145         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
11146         if (yysyntax_error_status == 0)
11147           yymsgp = yymsg;
11148         else if (yysyntax_error_status == -1)
11149           {
11150             if (yymsg != yymsgbuf)
11151               YYSTACK_FREE (yymsg);
11152             yymsg = YY_CAST (char *,
11153                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
11154             if (yymsg)
11155               {
11156                 yysyntax_error_status
11157                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
11158                 yymsgp = yymsg;
11159               }
11160             else
11161               {
11162                 yymsg = yymsgbuf;
11163                 yymsg_alloc = sizeof yymsgbuf;
11164                 yysyntax_error_status = YYENOMEM;
11165               }
11166           }
11167         yyerror (pParseContext, yymsgp);
11168         if (yysyntax_error_status == YYENOMEM)
11169           goto yyexhaustedlab;
11170       }
11171     }
11172
11173   if (yyerrstatus == 3)
11174     {
11175       /* If just tried and failed to reuse lookahead token after an
11176          error, discard it.  */
11177
11178       if (yychar <= YYEOF)
11179         {
11180           /* Return failure if at end of input.  */
11181           if (yychar == YYEOF)
11182             YYABORT;
11183         }
11184       else
11185         {
11186           yydestruct ("Error: discarding",
11187                       yytoken, &yylval, pParseContext);
11188           yychar = YYEMPTY;
11189         }
11190     }
11191
11192   /* Else will try to reuse lookahead token after shifting the error
11193      token.  */
11194   goto yyerrlab1;
11195
11196
11197 /*---------------------------------------------------.
11198 | yyerrorlab -- error raised explicitly by YYERROR.  |
11199 `---------------------------------------------------*/
11200 yyerrorlab:
11201   /* Pacify compilers when the user code never invokes YYERROR and the
11202      label yyerrorlab therefore never appears in user code.  */
11203   if (0)
11204     YYERROR;
11205
11206   /* Do not reclaim the symbols of the rule whose action triggered
11207      this YYERROR.  */
11208   YYPOPSTACK (yylen);
11209   yylen = 0;
11210   YY_STACK_PRINT (yyss, yyssp);
11211   yystate = *yyssp;
11212   goto yyerrlab1;
11213
11214
11215 /*-------------------------------------------------------------.
11216 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
11217 `-------------------------------------------------------------*/
11218 yyerrlab1:
11219   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
11220
11221   /* Pop stack until we find a state that shifts the error token.  */
11222   for (;;)
11223     {
11224       yyn = yypact[yystate];
11225       if (!yypact_value_is_default (yyn))
11226         {
11227           yyn += YYSYMBOL_YYerror;
11228           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
11229             {
11230               yyn = yytable[yyn];
11231               if (0 < yyn)
11232                 break;
11233             }
11234         }
11235
11236       /* Pop the current state because it cannot handle the error token.  */
11237       if (yyssp == yyss)
11238         YYABORT;
11239
11240
11241       yydestruct ("Error: popping",
11242                   YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
11243       YYPOPSTACK (1);
11244       yystate = *yyssp;
11245       YY_STACK_PRINT (yyss, yyssp);
11246     }
11247
11248   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
11249   *++yyvsp = yylval;
11250   YY_IGNORE_MAYBE_UNINITIALIZED_END
11251
11252
11253   /* Shift the error token.  */
11254   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
11255
11256   yystate = yyn;
11257   goto yynewstate;
11258
11259
11260 /*-------------------------------------.
11261 | yyacceptlab -- YYACCEPT comes here.  |
11262 `-------------------------------------*/
11263 yyacceptlab:
11264   yyresult = 0;
11265   goto yyreturn;
11266
11267
11268 /*-----------------------------------.
11269 | yyabortlab -- YYABORT comes here.  |
11270 `-----------------------------------*/
11271 yyabortlab:
11272   yyresult = 1;
11273   goto yyreturn;
11274
11275
11276 #if 1
11277 /*-------------------------------------------------.
11278 | yyexhaustedlab -- memory exhaustion comes here.  |
11279 `-------------------------------------------------*/
11280 yyexhaustedlab:
11281   yyerror (pParseContext, YY_("memory exhausted"));
11282   yyresult = 2;
11283   goto yyreturn;
11284 #endif
11285
11286
11287 /*-------------------------------------------------------.
11288 | yyreturn -- parsing is finished, clean up and return.  |
11289 `-------------------------------------------------------*/
11290 yyreturn:
11291   if (yychar != YYEMPTY)
11292     {
11293       /* Make sure we have latest lookahead translation.  See comments at
11294          user semantic actions for why this is necessary.  */
11295       yytoken = YYTRANSLATE (yychar);
11296       yydestruct ("Cleanup: discarding lookahead",
11297                   yytoken, &yylval, pParseContext);
11298     }
11299   /* Do not reclaim the symbols of the rule whose action triggered
11300      this YYABORT or YYACCEPT.  */
11301   YYPOPSTACK (yylen);
11302   YY_STACK_PRINT (yyss, yyssp);
11303   while (yyssp != yyss)
11304     {
11305       yydestruct ("Cleanup: popping",
11306                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
11307       YYPOPSTACK (1);
11308     }
11309 #ifndef yyoverflow
11310   if (yyss != yyssa)
11311     YYSTACK_FREE (yyss);
11312 #endif
11313   if (yymsg != yymsgbuf)
11314     YYSTACK_FREE (yymsg);
11315   return yyresult;
11316 }
11317
11318 #line 4050 "MachineIndependent/glslang.y"
11319