glsl: Regenerate files changes by previous commit
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 6 Oct 2010 00:03:25 +0000 (17:03 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 8 Oct 2010 21:21:23 +0000 (14:21 -0700)
src/glsl/glsl_lexer.cpp
src/glsl/glsl_parser.cpp

index 4f14c58bc526979113603b39a9dc748d56d8edf7..9db1652ed2facf149fa63a2f56a7199d9b0211f4 100644 (file)
@@ -1749,6 +1749,7 @@ YY_RULE_SETUP
 #line 219 "glsl_lexer.lpp"
 {
                  if ((yyextra->language_version >= 140)
+                     || yyextra->ARB_explicit_attrib_location_enable
                      || (yyextra->ARB_fragment_coord_conventions_enable)){
                      return LAYOUT_TOK;
                   } else {
@@ -1759,102 +1760,102 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 229 "glsl_lexer.lpp"
+#line 230 "glsl_lexer.lpp"
 return INC_OP;
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 230 "glsl_lexer.lpp"
+#line 231 "glsl_lexer.lpp"
 return DEC_OP;
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 231 "glsl_lexer.lpp"
+#line 232 "glsl_lexer.lpp"
 return LE_OP;
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 232 "glsl_lexer.lpp"
+#line 233 "glsl_lexer.lpp"
 return GE_OP;
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 233 "glsl_lexer.lpp"
+#line 234 "glsl_lexer.lpp"
 return EQ_OP;
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 234 "glsl_lexer.lpp"
+#line 235 "glsl_lexer.lpp"
 return NE_OP;
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 235 "glsl_lexer.lpp"
+#line 236 "glsl_lexer.lpp"
 return AND_OP;
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 236 "glsl_lexer.lpp"
+#line 237 "glsl_lexer.lpp"
 return OR_OP;
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 237 "glsl_lexer.lpp"
+#line 238 "glsl_lexer.lpp"
 return XOR_OP;
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 239 "glsl_lexer.lpp"
+#line 240 "glsl_lexer.lpp"
 return MUL_ASSIGN;
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 240 "glsl_lexer.lpp"
+#line 241 "glsl_lexer.lpp"
 return DIV_ASSIGN;
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 241 "glsl_lexer.lpp"
+#line 242 "glsl_lexer.lpp"
 return ADD_ASSIGN;
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 242 "glsl_lexer.lpp"
+#line 243 "glsl_lexer.lpp"
 return MOD_ASSIGN;
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 243 "glsl_lexer.lpp"
+#line 244 "glsl_lexer.lpp"
 return LEFT_ASSIGN;
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 244 "glsl_lexer.lpp"
+#line 245 "glsl_lexer.lpp"
 return RIGHT_ASSIGN;
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 245 "glsl_lexer.lpp"
+#line 246 "glsl_lexer.lpp"
 return AND_ASSIGN;
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 246 "glsl_lexer.lpp"
+#line 247 "glsl_lexer.lpp"
 return XOR_ASSIGN;
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 247 "glsl_lexer.lpp"
+#line 248 "glsl_lexer.lpp"
 return OR_ASSIGN;
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 248 "glsl_lexer.lpp"
+#line 249 "glsl_lexer.lpp"
 return SUB_ASSIGN;
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 250 "glsl_lexer.lpp"
+#line 251 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 10);
                            return INTCONSTANT;
@@ -1862,7 +1863,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 254 "glsl_lexer.lpp"
+#line 255 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext + 2, NULL, 16);
                            return INTCONSTANT;
@@ -1870,7 +1871,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 258 "glsl_lexer.lpp"
+#line 259 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 8);
                            return INTCONSTANT;
@@ -1878,7 +1879,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 263 "glsl_lexer.lpp"
+#line 264 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1886,7 +1887,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 267 "glsl_lexer.lpp"
+#line 268 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1894,7 +1895,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 271 "glsl_lexer.lpp"
+#line 272 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1902,7 +1903,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 275 "glsl_lexer.lpp"
+#line 276 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1910,7 +1911,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 279 "glsl_lexer.lpp"
+#line 280 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1918,7 +1919,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 284 "glsl_lexer.lpp"
+#line 285 "glsl_lexer.lpp"
 {
                            yylval->n = 1;
                            return BOOLCONSTANT;
@@ -1926,7 +1927,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 288 "glsl_lexer.lpp"
+#line 289 "glsl_lexer.lpp"
 {
                            yylval->n = 0;
                            return BOOLCONSTANT;
@@ -1935,394 +1936,394 @@ YY_RULE_SETUP
 /* Reserved words in GLSL 1.10. */
 case 104:
 YY_RULE_SETUP
-#line 295 "glsl_lexer.lpp"
+#line 296 "glsl_lexer.lpp"
 RESERVED_WORD(999, ASM);
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 296 "glsl_lexer.lpp"
+#line 297 "glsl_lexer.lpp"
 RESERVED_WORD(999, CLASS);
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 297 "glsl_lexer.lpp"
+#line 298 "glsl_lexer.lpp"
 RESERVED_WORD(999, UNION);
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 298 "glsl_lexer.lpp"
+#line 299 "glsl_lexer.lpp"
 RESERVED_WORD(999, ENUM);
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 299 "glsl_lexer.lpp"
+#line 300 "glsl_lexer.lpp"
 RESERVED_WORD(999, TYPEDEF);
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 300 "glsl_lexer.lpp"
+#line 301 "glsl_lexer.lpp"
 RESERVED_WORD(999, TEMPLATE);
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 301 "glsl_lexer.lpp"
+#line 302 "glsl_lexer.lpp"
 RESERVED_WORD(999, THIS);
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 302 "glsl_lexer.lpp"
+#line 303 "glsl_lexer.lpp"
 RESERVED_WORD(999, PACKED_TOK);
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 303 "glsl_lexer.lpp"
+#line 304 "glsl_lexer.lpp"
 RESERVED_WORD(999, GOTO);
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 304 "glsl_lexer.lpp"
+#line 305 "glsl_lexer.lpp"
 RESERVED_WORD(130, SWITCH);
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 305 "glsl_lexer.lpp"
+#line 306 "glsl_lexer.lpp"
 RESERVED_WORD(130, DEFAULT);
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 306 "glsl_lexer.lpp"
+#line 307 "glsl_lexer.lpp"
 RESERVED_WORD(999, INLINE_TOK);
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 307 "glsl_lexer.lpp"
+#line 308 "glsl_lexer.lpp"
 RESERVED_WORD(999, NOINLINE);
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 308 "glsl_lexer.lpp"
+#line 309 "glsl_lexer.lpp"
 RESERVED_WORD(999, VOLATILE);
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 309 "glsl_lexer.lpp"
+#line 310 "glsl_lexer.lpp"
 RESERVED_WORD(999, PUBLIC_TOK);
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 310 "glsl_lexer.lpp"
+#line 311 "glsl_lexer.lpp"
 RESERVED_WORD(999, STATIC);
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 311 "glsl_lexer.lpp"
+#line 312 "glsl_lexer.lpp"
 RESERVED_WORD(999, EXTERN);
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 312 "glsl_lexer.lpp"
+#line 313 "glsl_lexer.lpp"
 RESERVED_WORD(999, EXTERNAL);
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 313 "glsl_lexer.lpp"
+#line 314 "glsl_lexer.lpp"
 RESERVED_WORD(999, INTERFACE);
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 314 "glsl_lexer.lpp"
+#line 315 "glsl_lexer.lpp"
 RESERVED_WORD(999, LONG_TOK);
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 315 "glsl_lexer.lpp"
+#line 316 "glsl_lexer.lpp"
 RESERVED_WORD(999, SHORT_TOK);
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 316 "glsl_lexer.lpp"
+#line 317 "glsl_lexer.lpp"
 RESERVED_WORD(999, DOUBLE_TOK);
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 317 "glsl_lexer.lpp"
+#line 318 "glsl_lexer.lpp"
 RESERVED_WORD(999, HALF);
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 318 "glsl_lexer.lpp"
+#line 319 "glsl_lexer.lpp"
 RESERVED_WORD(999, FIXED_TOK);
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 319 "glsl_lexer.lpp"
+#line 320 "glsl_lexer.lpp"
 RESERVED_WORD(999, UNSIGNED);
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 320 "glsl_lexer.lpp"
+#line 321 "glsl_lexer.lpp"
 RESERVED_WORD(999, INPUT_TOK);
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 321 "glsl_lexer.lpp"
+#line 322 "glsl_lexer.lpp"
 RESERVED_WORD(999, OUTPUT);
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 322 "glsl_lexer.lpp"
+#line 323 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC2);
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 323 "glsl_lexer.lpp"
+#line 324 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC3);
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 324 "glsl_lexer.lpp"
+#line 325 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC4);
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 325 "glsl_lexer.lpp"
+#line 326 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC2);
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 326 "glsl_lexer.lpp"
+#line 327 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC3);
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 327 "glsl_lexer.lpp"
+#line 328 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC4);
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 328 "glsl_lexer.lpp"
+#line 329 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC2);
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 329 "glsl_lexer.lpp"
+#line 330 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC3);
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 330 "glsl_lexer.lpp"
+#line 331 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC4);
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 331 "glsl_lexer.lpp"
+#line 332 "glsl_lexer.lpp"
 return SAMPLER2DRECT;
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 332 "glsl_lexer.lpp"
+#line 333 "glsl_lexer.lpp"
 RESERVED_WORD(999, SAMPLER3DRECT);
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 333 "glsl_lexer.lpp"
+#line 334 "glsl_lexer.lpp"
 return SAMPLER2DRECTSHADOW;
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 334 "glsl_lexer.lpp"
+#line 335 "glsl_lexer.lpp"
 RESERVED_WORD(999, SIZEOF);
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 335 "glsl_lexer.lpp"
+#line 336 "glsl_lexer.lpp"
 RESERVED_WORD(999, CAST);
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 336 "glsl_lexer.lpp"
+#line 337 "glsl_lexer.lpp"
 RESERVED_WORD(999, NAMESPACE);
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 337 "glsl_lexer.lpp"
+#line 338 "glsl_lexer.lpp"
 RESERVED_WORD(999, USING);
        YY_BREAK
 /* Additional reserved words in GLSL 1.20. */
 case 147:
 YY_RULE_SETUP
-#line 340 "glsl_lexer.lpp"
+#line 341 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER_ES(120, LOWP);
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 341 "glsl_lexer.lpp"
+#line 342 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER_ES(120, MEDIUMP);
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 342 "glsl_lexer.lpp"
+#line 343 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER_ES(120, HIGHP);
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 343 "glsl_lexer.lpp"
+#line 344 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER_ES(120, PRECISION);
        YY_BREAK
 /* Additional reserved words in GLSL 1.30. */
 case 151:
 YY_RULE_SETUP
-#line 346 "glsl_lexer.lpp"
+#line 347 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, COMMON);
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 347 "glsl_lexer.lpp"
+#line 348 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, PARTITION);
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 348 "glsl_lexer.lpp"
+#line 349 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ACTIVE);
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 349 "glsl_lexer.lpp"
+#line 350 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER_ES(130, SUPERP);
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 350 "glsl_lexer.lpp"
+#line 351 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER);
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 351 "glsl_lexer.lpp"
+#line 352 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, FILTER);
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 352 "glsl_lexer.lpp"
+#line 353 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1D);
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 353 "glsl_lexer.lpp"
+#line 354 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2D);
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 354 "glsl_lexer.lpp"
+#line 355 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE3D);
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 355 "glsl_lexer.lpp"
+#line 356 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGECUBE);
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 356 "glsl_lexer.lpp"
+#line 357 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1D);
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 357 "glsl_lexer.lpp"
+#line 358 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2D);
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 358 "glsl_lexer.lpp"
+#line 359 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE3D);
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 359 "glsl_lexer.lpp"
+#line 360 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGECUBE);
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 360 "glsl_lexer.lpp"
+#line 361 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1D);
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 361 "glsl_lexer.lpp"
+#line 362 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2D);
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 362 "glsl_lexer.lpp"
+#line 363 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE3D);
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 363 "glsl_lexer.lpp"
+#line 364 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGECUBE);
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 364 "glsl_lexer.lpp"
+#line 365 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY);
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 365 "glsl_lexer.lpp"
+#line 366 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY);
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 366 "glsl_lexer.lpp"
+#line 367 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY);
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 367 "glsl_lexer.lpp"
+#line 368 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY);
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 368 "glsl_lexer.lpp"
+#line 369 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY);
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 369 "glsl_lexer.lpp"
+#line 370 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY);
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 370 "glsl_lexer.lpp"
+#line 371 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW);
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 371 "glsl_lexer.lpp"
+#line 372 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW);
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 372 "glsl_lexer.lpp"
+#line 373 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER);
        YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 373 "glsl_lexer.lpp"
+#line 374 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER);
        YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 374 "glsl_lexer.lpp"
+#line 375 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER);
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 375 "glsl_lexer.lpp"
+#line 376 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ROW_MAJOR);
        YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 377 "glsl_lexer.lpp"
+#line 378 "glsl_lexer.lpp"
 {
                            struct _mesa_glsl_parse_state *state = yyextra;
                            void *ctx = state;  
@@ -2332,15 +2333,15 @@ YY_RULE_SETUP
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 384 "glsl_lexer.lpp"
+#line 385 "glsl_lexer.lpp"
 { return yytext[0]; }
        YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 386 "glsl_lexer.lpp"
+#line 387 "glsl_lexer.lpp"
 ECHO;
        YY_BREAK
-#line 2344 "glsl_lexer.cpp"
+#line 2345 "glsl_lexer.cpp"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(PP):
 case YY_STATE_EOF(PRAGMA):
@@ -3483,7 +3484,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 386 "glsl_lexer.lpp"
+#line 387 "glsl_lexer.lpp"
 
 
 
index 23bce395a5967f99b96842e5464dd08c6e4ec303..c876f39e4e75c49f3238720b085e913b54e35f2a 100644 (file)
@@ -614,16 +614,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3690
+#define YYLAST   3692
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  215
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  87
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  277
+#define YYNRULES  278
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  411
+#define YYNSTATES  413
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -701,20 +701,20 @@ static const yytype_uint16 yyprhs[] =
      316,   319,   323,   326,   327,   329,   331,   333,   335,   337,
      341,   347,   354,   362,   371,   377,   379,   382,   387,   393,
      400,   408,   413,   416,   418,   421,   426,   428,   432,   434,
-     436,   438,   440,   442,   444,   446,   449,   451,   454,   457,
-     461,   463,   465,   467,   469,   472,   474,   476,   479,   482,
-     484,   486,   489,   491,   495,   500,   502,   504,   506,   508,
-     510,   512,   514,   516,   518,   520,   522,   524,   526,   528,
-     530,   532,   534,   536,   538,   540,   542,   544,   546,   548,
-     550,   552,   554,   556,   558,   560,   562,   564,   566,   568,
-     570,   572,   574,   576,   578,   580,   582,   584,   586,   588,
-     590,   592,   594,   596,   598,   600,   602,   604,   606,   608,
-     610,   612,   614,   620,   625,   627,   630,   634,   636,   640,
-     642,   647,   649,   651,   653,   655,   657,   659,   661,   663,
-     665,   667,   669,   672,   676,   678,   680,   683,   687,   689,
-     692,   694,   697,   703,   707,   709,   711,   716,   722,   726,
-     729,   735,   743,   750,   752,   754,   756,   757,   760,   764,
-     767,   770,   773,   777,   780,   782,   784,   786
+     438,   440,   442,   444,   446,   448,   450,   453,   455,   458,
+     461,   465,   467,   469,   471,   473,   476,   478,   480,   483,
+     486,   488,   490,   493,   495,   499,   504,   506,   508,   510,
+     512,   514,   516,   518,   520,   522,   524,   526,   528,   530,
+     532,   534,   536,   538,   540,   542,   544,   546,   548,   550,
+     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
+     572,   574,   576,   578,   580,   582,   584,   586,   588,   590,
+     592,   594,   596,   598,   600,   602,   604,   606,   608,   610,
+     612,   614,   616,   618,   624,   629,   631,   634,   638,   640,
+     644,   646,   651,   653,   655,   657,   659,   661,   663,   665,
+     667,   669,   671,   673,   676,   680,   682,   684,   687,   691,
+     693,   696,   698,   701,   707,   711,   713,   715,   720,   726,
+     730,   733,   739,   747,   754,   756,   758,   760,   761,   764,
+     768,   771,   774,   777,   781,   784,   786,   788,   790
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -763,42 +763,43 @@ static const yytype_int16 yyrhs[] =
      263,    76,   193,   251,   194,   211,   281,    -1,   263,    76,
      211,   281,    -1,   103,    76,    -1,   271,    -1,   269,   271,
       -1,   120,   191,   265,   192,    -1,   266,    -1,   265,   196,
-     266,    -1,    76,    -1,    40,    -1,    39,    -1,    38,    -1,
-       4,    -1,   270,    -1,   264,    -1,   264,   270,    -1,   267,
-      -1,   267,   270,    -1,   103,   270,    -1,   103,   267,   270,
-      -1,   103,    -1,     4,    -1,     3,    -1,    37,    -1,    32,
-      37,    -1,    33,    -1,    34,    -1,    32,    33,    -1,    32,
-      34,    -1,    36,    -1,   272,    -1,   275,   272,    -1,   273,
-      -1,   273,   193,   194,    -1,   273,   193,   251,   194,    -1,
-     274,    -1,   276,    -1,    76,    -1,    74,    -1,     6,    -1,
-       7,    -1,     8,    -1,     5,    -1,    29,    -1,    30,    -1,
-      31,    -1,    20,    -1,    21,    -1,    22,    -1,    23,    -1,
-      24,    -1,    25,    -1,    26,    -1,    27,    -1,    28,    -1,
-      41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
-      46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
-      51,    -1,   154,    -1,    52,    -1,    53,    -1,    54,    -1,
-      55,    -1,   156,    -1,    56,    -1,    57,    -1,    58,    -1,
-      59,    -1,    60,    -1,    61,    -1,    62,    -1,    63,    -1,
-      64,    -1,    65,    -1,    66,    -1,    67,    -1,    68,    -1,
-      69,    -1,    70,    -1,    71,    -1,    72,    -1,   106,    -1,
-     105,    -1,   104,    -1,    73,    76,   213,   277,   214,    -1,
-      73,   213,   277,   214,    -1,   278,    -1,   277,   278,    -1,
-     271,   279,   212,    -1,   280,    -1,   279,   196,   280,    -1,
-      76,    -1,    76,   193,   251,   194,    -1,   248,    -1,   252,
-      -1,   285,    -1,   284,    -1,   282,    -1,   289,    -1,   290,
-      -1,   293,    -1,   294,    -1,   295,    -1,   299,    -1,   213,
-     214,    -1,   213,   288,   214,    -1,   287,    -1,   284,    -1,
-     213,   214,    -1,   213,   288,   214,    -1,   283,    -1,   288,
-     283,    -1,   212,    -1,   250,   212,    -1,    14,   191,   250,
-     192,   291,    -1,   283,    12,   283,    -1,   283,    -1,   250,
-      -1,   263,    76,   211,   281,    -1,    17,   191,   250,   192,
-     285,    -1,    18,   250,   210,    -1,    19,   210,    -1,    75,
-     191,   292,   192,   286,    -1,    11,   283,    75,   191,   250,
-     192,   212,    -1,    13,   191,   296,   298,   192,   286,    -1,
-     289,    -1,   282,    -1,   292,    -1,    -1,   297,   212,    -1,
-     297,   212,   250,    -1,    10,   212,    -1,     9,   212,    -1,
-      16,   212,    -1,    16,   250,   212,    -1,    15,   212,    -1,
-     301,    -1,   252,    -1,   219,    -1,   253,   287,    -1
+     266,    -1,    76,    -1,    76,   211,    78,    -1,    40,    -1,
+      39,    -1,    38,    -1,     4,    -1,   270,    -1,   264,    -1,
+     264,   270,    -1,   267,    -1,   267,   270,    -1,   103,   270,
+      -1,   103,   267,   270,    -1,   103,    -1,     4,    -1,     3,
+      -1,    37,    -1,    32,    37,    -1,    33,    -1,    34,    -1,
+      32,    33,    -1,    32,    34,    -1,    36,    -1,   272,    -1,
+     275,   272,    -1,   273,    -1,   273,   193,   194,    -1,   273,
+     193,   251,   194,    -1,   274,    -1,   276,    -1,    76,    -1,
+      74,    -1,     6,    -1,     7,    -1,     8,    -1,     5,    -1,
+      29,    -1,    30,    -1,    31,    -1,    20,    -1,    21,    -1,
+      22,    -1,    23,    -1,    24,    -1,    25,    -1,    26,    -1,
+      27,    -1,    28,    -1,    41,    -1,    42,    -1,    43,    -1,
+      44,    -1,    45,    -1,    46,    -1,    47,    -1,    48,    -1,
+      49,    -1,    50,    -1,    51,    -1,   154,    -1,    52,    -1,
+      53,    -1,    54,    -1,    55,    -1,   156,    -1,    56,    -1,
+      57,    -1,    58,    -1,    59,    -1,    60,    -1,    61,    -1,
+      62,    -1,    63,    -1,    64,    -1,    65,    -1,    66,    -1,
+      67,    -1,    68,    -1,    69,    -1,    70,    -1,    71,    -1,
+      72,    -1,   106,    -1,   105,    -1,   104,    -1,    73,    76,
+     213,   277,   214,    -1,    73,   213,   277,   214,    -1,   278,
+      -1,   277,   278,    -1,   271,   279,   212,    -1,   280,    -1,
+     279,   196,   280,    -1,    76,    -1,    76,   193,   251,   194,
+      -1,   248,    -1,   252,    -1,   285,    -1,   284,    -1,   282,
+      -1,   289,    -1,   290,    -1,   293,    -1,   294,    -1,   295,
+      -1,   299,    -1,   213,   214,    -1,   213,   288,   214,    -1,
+     287,    -1,   284,    -1,   213,   214,    -1,   213,   288,   214,
+      -1,   283,    -1,   288,   283,    -1,   212,    -1,   250,   212,
+      -1,    14,   191,   250,   192,   291,    -1,   283,    12,   283,
+      -1,   283,    -1,   250,    -1,   263,    76,   211,   281,    -1,
+      17,   191,   250,   192,   285,    -1,    18,   250,   210,    -1,
+      19,   210,    -1,    75,   191,   292,   192,   286,    -1,    11,
+     283,    75,   191,   250,   192,   212,    -1,    13,   191,   296,
+     298,   192,   286,    -1,   289,    -1,   282,    -1,   292,    -1,
+      -1,   297,   212,    -1,   297,   212,   250,    -1,    10,   212,
+      -1,     9,   212,    -1,    16,   212,    -1,    16,   250,   212,
+      -1,    15,   212,    -1,   301,    -1,   252,    -1,   219,    -1,
+     253,   287,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -817,21 +818,21 @@ static const yytype_uint16 yyrline[] =
      686,   700,   704,   705,   709,   714,   722,   733,   743,   758,
      765,   770,   781,   794,   797,   802,   807,   816,   820,   821,
      830,   839,   848,   857,   866,   879,   890,   899,   908,   917,
-     926,   935,   944,   958,   965,   976,   983,   984,   994,  1026,
-    1031,  1036,  1044,  1052,  1053,  1054,  1059,  1060,  1065,  1070,
-    1076,  1084,  1089,  1094,  1099,  1105,  1110,  1115,  1120,  1125,
-    1133,  1134,  1142,  1143,  1149,  1158,  1164,  1170,  1179,  1180,
-    1181,  1182,  1183,  1184,  1185,  1186,  1187,  1188,  1189,  1190,
-    1191,  1192,  1193,  1194,  1195,  1196,  1197,  1198,  1199,  1200,
-    1201,  1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1210,
-    1211,  1212,  1213,  1214,  1215,  1216,  1217,  1218,  1219,  1220,
-    1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1233,
-    1244,  1255,  1269,  1275,  1284,  1289,  1297,  1312,  1317,  1325,
-    1331,  1340,  1344,  1350,  1351,  1355,  1356,  1357,  1358,  1359,
-    1360,  1361,  1365,  1371,  1380,  1381,  1385,  1391,  1400,  1410,
-    1422,  1428,  1437,  1446,  1451,  1459,  1463,  1477,  1481,  1482,
-    1486,  1493,  1500,  1510,  1511,  1515,  1517,  1523,  1528,  1537,
-    1543,  1549,  1555,  1561,  1570,  1571,  1572,  1576
+     926,   935,   944,   958,   965,   976,   983,   984,  1003,  1032,
+    1073,  1078,  1083,  1091,  1099,  1100,  1101,  1106,  1107,  1112,
+    1117,  1123,  1131,  1136,  1141,  1146,  1152,  1157,  1162,  1167,
+    1172,  1180,  1181,  1189,  1190,  1196,  1205,  1211,  1217,  1226,
+    1227,  1228,  1229,  1230,  1231,  1232,  1233,  1234,  1235,  1236,
+    1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,  1246,
+    1247,  1248,  1249,  1250,  1251,  1252,  1253,  1254,  1255,  1256,
+    1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,
+    1267,  1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,
+    1280,  1291,  1302,  1316,  1322,  1331,  1336,  1344,  1359,  1364,
+    1372,  1378,  1387,  1391,  1397,  1398,  1402,  1403,  1404,  1405,
+    1406,  1407,  1408,  1412,  1418,  1427,  1428,  1432,  1438,  1447,
+    1457,  1469,  1475,  1484,  1493,  1498,  1506,  1510,  1524,  1528,
+    1529,  1533,  1540,  1547,  1557,  1558,  1562,  1564,  1570,  1575,
+    1584,  1590,  1596,  1602,  1608,  1617,  1618,  1619,  1623
 };
 #endif
 
@@ -960,21 +961,21 @@ static const yytype_uint16 yyr1[] =
      252,   253,   254,   254,   255,   255,   256,   257,   257,   258,
      258,   258,   258,   259,   259,   259,   259,   260,   261,   261,
      261,   261,   261,   261,   261,   262,   262,   262,   262,   262,
-     262,   262,   262,   263,   263,   264,   265,   265,   266,   267,
-     267,   267,   268,   269,   269,   269,   269,   269,   269,   269,
-     269,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     271,   271,   272,   272,   272,   273,   273,   273,   274,   274,
+     262,   262,   262,   263,   263,   264,   265,   265,   266,   266,
+     267,   267,   267,   268,   269,   269,   269,   269,   269,   269,
+     269,   269,   270,   270,   270,   270,   270,   270,   270,   270,
+     270,   271,   271,   272,   272,   272,   273,   273,   273,   274,
      274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
      274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
      274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
      274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   275,
-     275,   275,   276,   276,   277,   277,   278,   279,   279,   280,
-     280,   281,   282,   283,   283,   284,   284,   284,   284,   284,
-     284,   284,   285,   285,   286,   286,   287,   287,   288,   288,
-     289,   289,   290,   291,   291,   292,   292,   293,   294,   294,
-     295,   295,   295,   296,   296,   297,   297,   298,   298,   299,
-     299,   299,   299,   299,   300,   300,   300,   301
+     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
+     275,   275,   275,   276,   276,   277,   277,   278,   279,   279,
+     280,   280,   281,   282,   283,   283,   284,   284,   284,   284,
+     284,   284,   284,   285,   285,   286,   286,   287,   287,   288,
+     288,   289,   289,   290,   291,   291,   292,   292,   293,   294,
+     294,   295,   295,   295,   296,   296,   297,   297,   298,   298,
+     299,   299,   299,   299,   299,   300,   300,   300,   301
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -993,21 +994,21 @@ static const yytype_uint8 yyr2[] =
        4,     2,     1,     1,     2,     3,     3,     2,     5,     3,
        2,     3,     2,     0,     1,     1,     1,     1,     1,     3,
        5,     6,     7,     8,     5,     1,     2,     4,     5,     6,
-       7,     4,     2,     1,     2,     4,     1,     3,     1,     1,
-       1,     1,     1,     1,     1,     2,     1,     2,     2,     3,
-       1,     1,     1,     1,     2,     1,     1,     2,     2,     1,
-       1,     2,     1,     3,     4,     1,     1,     1,     1,     1,
+       7,     4,     2,     1,     2,     4,     1,     3,     1,     3,
+       1,     1,     1,     1,     1,     1,     2,     1,     2,     2,
+       3,     1,     1,     1,     1,     2,     1,     1,     2,     2,
+       1,     1,     2,     1,     3,     4,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     5,     4,     1,     2,     3,     1,     3,     1,
-       4,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     3,     1,     1,     2,     3,     1,     2,
-       1,     2,     5,     3,     1,     1,     4,     5,     3,     2,
-       5,     7,     6,     1,     1,     1,     0,     2,     3,     2,
-       2,     2,     3,     2,     1,     1,     1,     2
+       1,     1,     1,     5,     4,     1,     2,     3,     1,     3,
+       1,     4,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     2,     3,     1,     1,     2,     3,     1,
+       2,     1,     2,     5,     3,     1,     1,     4,     5,     3,
+       2,     5,     7,     6,     1,     1,     1,     0,     2,     3,
+       2,     2,     2,     3,     2,     1,     1,     1,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1016,194 +1017,173 @@ static const yytype_uint8 yyr2[] =
 static const yytype_uint16 yydefact[] =
 {
        4,     0,     0,    10,     0,     1,     2,     5,     0,     0,
-      11,     0,   152,   151,   172,   169,   170,   171,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   173,   174,   175,
-       0,   155,   156,   159,   153,   141,   140,   139,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   197,
-     198,   199,   200,   202,   203,   204,   205,   206,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-       0,   168,   167,   150,   221,   220,   219,     0,     0,     0,
-       0,     0,     0,   196,   201,   276,     3,   275,     0,     0,
-     103,   113,     0,   118,   125,   144,   146,     0,   143,   133,
-     160,   162,   165,     0,   166,    13,   274,     0,   157,   158,
-     154,     0,     0,   132,     0,   148,     0,     6,     7,     8,
-       9,     0,    14,    98,     0,   277,   101,   113,   142,   114,
-     115,   116,   104,     0,   113,     0,    99,   126,   145,   147,
-     134,     0,   161,     0,     0,     0,     0,   224,   149,     0,
+      11,     0,   153,   152,   173,   170,   171,   172,   177,   178,
+     179,   180,   181,   182,   183,   184,   185,   174,   175,   176,
+       0,   156,   157,   160,   154,   142,   141,   140,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   198,
+     199,   200,   201,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+       0,   169,   168,   151,   222,   221,   220,     0,     0,     0,
+       0,     0,     0,   197,   202,   277,     3,   276,     0,     0,
+     103,   113,     0,   118,   125,   145,   147,     0,   144,   133,
+     161,   163,   166,     0,   167,    13,   275,     0,   158,   159,
+     155,     0,     0,   132,     0,   149,     0,     6,     7,     8,
+       9,     0,    14,    98,     0,   278,   101,   113,   143,   114,
+     115,   116,   104,     0,   113,     0,    99,   126,   146,   148,
+     134,     0,   162,     0,     0,     0,     0,   225,   150,     0,
      138,     0,   136,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    15,    19,    17,    18,    20,    41,
-       0,     0,     0,    46,    47,    48,    49,   250,     0,   246,
+       0,     0,     0,    46,    47,    48,    49,   251,     0,   247,
       16,    22,    42,    24,    29,    30,     0,     0,    35,     0,
       50,     0,    54,    57,    60,    65,    68,    70,    72,    74,
-      76,    78,    80,    82,    95,     0,   232,     0,   133,   235,
-     248,   234,   233,     0,   236,   237,   238,   239,   240,   241,
-     105,   110,   112,   117,     0,   119,   106,     0,     0,   163,
-      50,    97,     0,    39,    12,     0,   229,     0,   227,   223,
-     225,   100,   135,     0,   270,   269,     0,     0,     0,   273,
-     271,     0,     0,     0,   259,     0,    43,    44,     0,   242,
-       0,    26,    27,     0,     0,    33,    32,     0,   168,    36,
-      38,    85,    86,    88,    87,    90,    91,    92,    93,    94,
-      89,    84,     0,    45,     0,     0,     0,     0,     0,     0,
+      76,    78,    80,    82,    95,     0,   233,     0,   133,   236,
+     249,   235,   234,     0,   237,   238,   239,   240,   241,   242,
+     105,   110,   112,   117,     0,   119,   106,     0,     0,   164,
+      50,    97,     0,    39,    12,     0,   230,     0,   228,   224,
+     226,   100,     0,   135,     0,   271,   270,     0,     0,     0,
+     274,   272,     0,     0,     0,   260,     0,    43,    44,     0,
+     243,     0,    26,    27,     0,     0,    33,    32,     0,   169,
+      36,    38,    85,    86,    88,    87,    90,    91,    92,    93,
+      94,    89,    84,     0,    45,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   251,   247,   249,   107,   109,
-     111,     0,     0,   127,     0,   231,   131,   164,   222,     0,
-       0,   226,   137,     0,   264,   263,   266,     0,   272,     0,
-     258,   150,   255,     0,     0,    21,   243,     0,    28,    25,
-      31,    37,    83,    51,    52,    53,    55,    56,    58,    59,
-      63,    64,    61,    62,    66,    67,    69,    71,    73,    75,
-      77,    79,     0,    96,     0,   120,     0,   124,     0,   128,
-       0,   228,     0,   265,     0,     0,     0,     0,     0,     0,
-      23,     0,     0,     0,   121,   129,     0,   230,     0,   267,
-       0,   254,   252,   257,     0,   245,   260,   244,    81,   108,
-     122,     0,   130,     0,   268,   262,     0,   256,   123,   261,
-     253
+       0,     0,     0,     0,     0,     0,   252,   248,   250,   107,
+     109,   111,     0,     0,   127,     0,   232,   131,   165,   223,
+       0,     0,   227,   139,   137,     0,   265,   264,   267,     0,
+     273,     0,   259,   151,   256,     0,     0,    21,   244,     0,
+      28,    25,    31,    37,    83,    51,    52,    53,    55,    56,
+      58,    59,    63,    64,    61,    62,    66,    67,    69,    71,
+      73,    75,    77,    79,     0,    96,     0,   120,     0,   124,
+       0,   128,     0,   229,     0,   266,     0,     0,     0,     0,
+       0,     0,    23,     0,     0,     0,   121,   129,     0,   231,
+       0,   268,     0,   255,   253,   258,     0,   246,   261,   245,
+      81,   108,   122,     0,   130,     0,   269,   263,     0,   257,
+     123,   262,   254
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     2,     9,     3,    85,     6,    10,    86,   180,   181,
-     182,   337,   183,   184,   185,   186,   187,   188,   189,   190,
+     182,   339,   183,   184,   185,   186,   187,   188,   189,   190,
      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   282,   205,   232,   206,   207,    89,
+     201,   202,   203,   204,   283,   205,   232,   206,   207,    89,
       90,    91,   221,   132,   133,   222,    92,    93,    94,    95,
      151,   152,    96,   134,    97,    98,   233,   100,   101,   102,
-     103,   104,   146,   147,   237,   238,   316,   209,   210,   211,
-     212,   396,   397,   213,   214,   215,   392,   334,   216,   217,
-     218,   326,   374,   375,   219,   105,   106
+     103,   104,   146,   147,   237,   238,   317,   209,   210,   211,
+     212,   398,   399,   213,   214,   215,   394,   336,   216,   217,
+     218,   328,   376,   377,   219,   105,   106
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -359
+#define YYPACT_NINF -360
 static const yytype_int16 yypact[] =
 {
-     -89,   -49,    53,  -359,   -55,  -359,   -26,  -359,    10,  3274,
-    -359,   -19,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-     160,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-     -70,  -359,  -359,    36,  -359,  -359,  -359,   115,    -6,    18,
-      26,    34,   -74,  -359,  -359,  -359,  3274,  -359,  -149,   -39,
-     -31,     0,  -158,  -359,    92,   130,   130,  3462,  -359,  -359,
-    -359,    17,  -359,  3534,  -359,  -359,  -359,   123,  -359,  -359,
-    -359,    -1,  3462,  -359,   130,  -359,  3534,  -359,  -359,  -359,
-    -359,   137,  -359,  -359,   385,  -359,  -359,    32,  -359,  -359,
-    -359,  -359,  -359,  3462,   206,   147,  -359,  -112,  -359,  -359,
-    -359,  2369,  -359,   112,  3462,   151,  1758,  -359,  -359,    16,
-    -359,  -170,  -359,    24,    25,  1233,    39,    54,    35,  1990,
-      58,  2912,    40,    61,   -61,  -359,  -359,  -359,  -359,  -359,
-    2912,  2912,  2912,  -359,  -359,  -359,  -359,  -359,   597,  -359,
-    -359,  -359,   -57,  -359,  -359,  -359,    63,   -78,  3093,    65,
-     -50,  2912,    41,   -56,    43,   -77,    71,    51,    55,    50,
-     171,   172,   -80,  -359,  -359,  -155,  -359,    56,    72,  -359,
-    -359,  -359,  -359,   809,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,   189,  3462,  -174,  -359,  2550,  2912,  -359,
-    -359,  -359,    73,  -359,  -359,  1874,    76,  -141,  -359,  -359,
-    -359,  -359,  -359,   137,  -359,  -359,   191,  1642,  2912,  -359,
-    -359,  -134,  2912,  -114,  -359,  2188,  -359,  -359,   -73,  -359,
-    1021,  -359,  -359,  2912,  3390,  -359,  -359,  2912,    78,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  2912,  -359,  2912,  2912,  2912,  2912,  2912,  2912,
-    2912,  2912,  2912,  2912,  2912,  2912,  2912,  2912,  2912,  2912,
-    2912,  2912,  2912,  2912,  2912,  -359,  -359,  -359,    79,  -359,
-    -359,  2731,  2912,    60,    80,  -359,  -359,  -359,  -359,  2912,
-     151,  -359,  -359,    82,  -359,  -359,  2188,   -48,  -359,     6,
-    -359,   118,    81,   199,    84,  -359,  -359,    85,    81,    87,
-    -359,  -359,  -359,  -359,  -359,  -359,    41,    41,   -56,   -56,
-      43,    43,    43,    43,   -77,   -77,    71,    51,    55,    50,
-     171,   172,  -113,  -359,  2912,    69,    88,  -359,  2912,    70,
-      89,  -359,  2912,  -359,    74,    93,  1233,    75,    83,  1444,
-    -359,  2912,    90,  2912,    86,  -359,  2912,  -359,     9,  2912,
-    1444,   275,  -359,  -359,  2912,  -359,  -359,  -359,  -359,  -359,
-    -359,  2912,  -359,    77,    81,  -359,  1233,  -359,  -359,  -359,
-    -359
+     -54,   -53,    37,  -360,   -26,  -360,    -5,  -360,    73,  3276,
+    -360,    63,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+     105,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+     -69,  -360,  -360,    42,  -360,  -360,  -360,   -74,    65,    79,
+      83,    85,    16,  -360,  -360,  -360,  3276,  -360,   -99,     9,
+      13,     5,  -152,  -360,   134,    17,    17,  3464,  -360,  -360,
+    -360,    18,  -360,  3536,  -360,  -360,  -360,   136,  -360,  -360,
+    -360,     0,  3464,  -360,    17,  -360,  3536,  -360,  -360,  -360,
+    -360,   138,  -360,  -360,   387,  -360,  -360,    24,  -360,  -360,
+    -360,  -360,  -360,  3464,   149,   141,  -360,  -150,  -360,  -360,
+    -360,  2371,  -360,   106,  3464,   144,  1760,  -360,  -360,    11,
+      14,  -144,  -360,    12,    20,  1235,    30,    31,    22,  1992,
+      38,  2914,    26,    46,   -59,  -360,  -360,  -360,  -360,  -360,
+    2914,  2914,  2914,  -360,  -360,  -360,  -360,  -360,   599,  -360,
+    -360,  -360,   -70,  -360,  -360,  -360,    36,   -56,  3095,    47,
+     -30,  2914,    -8,  -113,    39,   -76,    45,    34,    23,    35,
+     154,   153,   -79,  -360,  -360,  -123,  -360,    41,    55,  -360,
+    -360,  -360,  -360,   811,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,   172,  3464,  -164,  -360,  2552,  2914,  -360,
+    -360,  -360,    56,  -360,  -360,  1876,    58,  -110,  -360,  -360,
+    -360,  -360,   171,  -360,   138,  -360,  -360,   179,  1644,  2914,
+    -360,  -360,  -101,  2914,   -90,  -360,  2190,  -360,  -360,   -51,
+    -360,  1023,  -360,  -360,  2914,  3392,  -360,  -360,  2914,    64,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  2914,  -360,  2914,  2914,  2914,  2914,  2914,
+    2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,
+    2914,  2914,  2914,  2914,  2914,  2914,  -360,  -360,  -360,    62,
+    -360,  -360,  2733,  2914,    48,    66,  -360,  -360,  -360,  -360,
+    2914,   144,  -360,  -360,  -360,    67,  -360,  -360,  2190,   -49,
+    -360,   -22,  -360,   238,    68,   187,    74,  -360,  -360,    71,
+      68,    76,  -360,  -360,  -360,  -360,  -360,  -360,    -8,    -8,
+    -113,  -113,    39,    39,    39,    39,   -76,   -76,    45,    34,
+      23,    35,   154,   153,   -84,  -360,  2914,    57,    75,  -360,
+    2914,    69,    87,  -360,  2914,  -360,    70,    91,  1235,    72,
+      78,  1446,  -360,  2914,    90,  2914,    81,  -360,  2914,  -360,
+     -16,  2914,  1446,   267,  -360,  -360,  2914,  -360,  -360,  -360,
+    -360,  -360,  -360,  2914,  -360,    82,    68,  -360,  1235,  -360,
+    -360,  -360,  -360
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,    27,  -359,  -359,  -359,  -359,  -111,
-    -359,  -117,   -83,   -60,   -79,    -7,    -5,    -4,    -8,    -3,
-      -2,  -359,  -116,  -172,  -359,  -154,  -219,     3,     4,  -359,
-    -359,  -359,    91,   169,   165,    94,  -359,  -359,  -241,  -359,
-    -359,    59,   -71,  -359,  -359,   -72,    -9,   -12,  -359,  -359,
-     224,  -359,   159,  -129,  -359,   -16,  -281,    62,  -152,  -358,
-     -69,   -85,   218,   129,    64,  -359,  -359,   -14,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,   227,  -359
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,    25,  -360,  -360,  -360,  -360,  -135,
+    -360,   -89,   -88,  -104,   -91,   -11,    -6,    -4,    -3,    -7,
+      -2,  -360,  -133,   -97,  -360,  -156,  -193,     4,    10,  -360,
+    -360,  -360,    80,   170,   166,    84,  -360,  -360,  -229,  -360,
+    -360,    59,   -71,  -360,  -360,   -72,    -9,     1,  -360,  -360,
+     225,  -360,   161,  -128,  -360,   -14,  -287,    61,  -151,  -359,
+     -68,   -82,   224,   135,    77,  -360,  -360,   -13,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,   228,  -360
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -168
+#define YYTABLE_NINF -169
 static const yytype_int16 yytable[] =
 {
-      99,   115,   114,   246,   128,   251,   111,   253,   314,   291,
-     292,   302,    87,    88,   333,  -167,   269,   240,   258,   311,
-       1,   395,   242,   138,   139,   231,   243,   261,   262,     4,
-     230,   367,   395,   129,   130,   131,   128,   312,   135,    12,
-      13,   304,   148,   271,   272,   273,   274,   275,   276,   277,
-     278,   279,   280,     5,   136,   320,   315,   305,     7,   256,
-     257,   307,   304,   123,   124,   129,   130,   131,    30,    31,
-      32,   321,    33,    34,    35,    36,    37,    99,   328,   226,
-     283,   227,   304,   304,     8,   333,    11,   385,   140,    87,
-      88,   142,   366,   107,   327,   341,   330,   381,   329,   228,
-     370,   332,   400,   145,   149,   402,   240,   117,   307,   338,
-     342,   231,   113,   407,   266,   208,   230,   121,   267,   335,
-     408,    12,    13,   304,   223,   289,   290,   293,   294,   303,
-     -40,   118,   363,    12,    13,   145,   263,   145,   264,   119,
-     315,   287,   288,   112,   376,   382,   208,   120,   304,   362,
-      30,    31,    32,   126,    33,    34,    35,    36,    37,   295,
-     296,   281,    30,    31,    32,   127,    33,    34,   137,   208,
-     346,   347,   332,   343,   344,   345,   230,   230,   230,   230,
-     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
-     230,   230,  -102,   108,   109,   231,   315,   110,   377,   143,
-     230,   403,   304,   231,   208,   304,   348,   349,   230,   398,
-     141,   315,   144,   150,   315,   223,   354,   355,   388,    74,
-      75,    76,   315,   225,   391,   234,   145,   236,   241,   315,
-     247,   350,   351,   352,   353,   404,   244,   245,   208,   129,
-     130,   131,   284,   285,   286,   248,   208,   249,   231,   252,
-     254,   208,   255,   230,   410,   265,   270,   297,   299,   115,
-     114,   300,   298,   -39,   301,   308,   323,   317,   123,   319,
-     -34,   368,   364,   372,   369,   378,   379,   304,   -40,   380,
-     383,   386,   384,   387,   399,   390,   389,   406,   178,   409,
-     356,   340,   359,   357,   394,   358,   220,   401,   360,   224,
-     361,   116,   322,   235,   371,   405,   125,   260,   393,   324,
-       0,   325,   373,   122,     0,   309,     0,   208,   310,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      99,   115,   114,   252,   247,   254,   230,   111,   231,   128,
+     292,   293,   303,    87,   262,   263,   259,  -168,   240,    88,
+      12,    13,   397,   138,   139,     4,   369,   335,   128,   312,
+      74,    75,    76,   397,   315,   257,   258,     5,   129,   130,
+     131,   226,   148,   227,   135,    12,    13,   313,   243,    30,
+      31,    32,   244,    33,    34,     1,   284,   129,   130,   131,
+     136,   228,   308,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   305,    30,    31,    32,    99,    33,    34,
+      35,    36,    37,   387,   288,   289,   321,     7,   140,   306,
+      87,   270,   230,   329,   231,   305,    88,   331,   402,   335,
+     334,   404,   322,   145,   142,     8,   305,   240,   340,   409,
+     308,   330,   305,   123,   124,   208,   410,   149,   113,   368,
+     332,   290,   291,   264,   223,   265,   383,   372,   294,   295,
+     304,   316,   -40,   296,   297,   145,   267,   145,   108,   109,
+     268,   337,   110,   378,   112,   305,   208,   305,   364,    11,
+     345,   346,   347,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   208,
+     379,   343,   334,   384,   305,   107,   405,   230,   117,   231,
+     305,   282,   129,   130,   131,   230,   344,   231,   352,   353,
+     354,   355,   118,   285,   286,   287,   119,  -102,   120,   348,
+     349,   126,   350,   351,   208,   356,   357,   121,   365,   127,
+     137,   141,   143,   144,   150,   223,   316,   225,   390,   234,
+     236,   248,   249,   241,   245,   242,   145,   393,   266,   253,
+     299,   230,   246,   231,   250,   406,   255,   256,   271,   208,
+     298,    12,    13,   300,   301,   302,   -39,   208,   309,   323,
+     318,   320,   208,   123,   325,   366,   -34,   412,   374,   370,
+     371,   115,   114,   380,   305,   382,   381,   -40,   385,   386,
+      30,    31,    32,   316,    33,    34,    35,    36,    37,   408,
+     388,   389,   391,   392,   401,   178,   400,   358,   316,   396,
+     342,   316,   403,   359,   411,   362,   360,   220,   361,   316,
+     224,   363,   116,   324,   310,   235,   316,   373,   311,   326,
+     407,   395,   125,   261,   122,   375,     0,     0,     0,   208,
+       0,     0,     0,     0,     0,   327,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   208,     0,     0,
-     208,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   208,     0,     0,     0,     0,     0,     0,    12,    13,
-      14,    15,    16,    17,   153,   154,   155,   208,   156,   157,
-     158,   159,   160,   161,   162,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-       0,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-     163,   164,   165,   166,   167,   168,   169,     0,     0,   170,
-     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
-      75,    76,     0,    77,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    82,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   172,     0,     0,     0,
-       0,     0,   173,   174,   175,   176,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   177,   178,   179,
-      12,    13,    14,    15,    16,    17,   153,   154,   155,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   208,
+       0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   208,     0,     0,     0,     0,     0,     0,
+      12,    13,    14,    15,    16,    17,   153,   154,   155,   208,
      156,   157,   158,   159,   160,   161,   162,    18,    19,    20,
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
       31,    32,     0,    33,    34,    35,    36,    37,    38,    39,
@@ -1224,7 +1204,7 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
        0,     0,     0,     0,   173,   174,   175,   176,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
-     178,   259,    12,    13,    14,    15,    16,    17,   153,   154,
+     178,   179,    12,    13,    14,    15,    16,    17,   153,   154,
      155,     0,   156,   157,   158,   159,   160,   161,   162,    18,
       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    32,     0,    33,    34,    35,    36,    37,
@@ -1245,7 +1225,7 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      172,     0,     0,     0,     0,     0,   173,   174,   175,   176,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   177,   178,   306,    12,    13,    14,    15,    16,    17,
+       0,   177,   178,   260,    12,    13,    14,    15,    16,    17,
      153,   154,   155,     0,   156,   157,   158,   159,   160,   161,
      162,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,     0,    33,    34,    35,
@@ -1266,7 +1246,7 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   172,     0,     0,     0,     0,     0,   173,   174,
      175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   177,   178,   336,    12,    13,    14,    15,
+       0,     0,     0,   177,   178,   307,    12,    13,    14,    15,
       16,    17,   153,   154,   155,     0,   156,   157,   158,   159,
      160,   161,   162,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,     0,    33,
@@ -1287,137 +1267,122 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,   172,     0,     0,     0,     0,     0,
      173,   174,   175,   176,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   177,   178,    12,    13,    14,
-      15,    16,    17,   153,   154,   155,     0,   156,   157,   158,
-     159,   160,   161,   162,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,   163,
-     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
+       0,     0,     0,     0,     0,   177,   178,   338,    12,    13,
+      14,    15,    16,    17,   153,   154,   155,     0,   156,   157,
+     158,   159,   160,   161,   162,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+       0,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+     163,   164,   165,   166,   167,   168,   169,     0,     0,   170,
+     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
+      75,    76,     0,    77,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    82,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    82,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
+       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
-      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   172,     0,     0,     0,
+       0,     0,   173,   174,   175,   176,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   177,   178,    12,
+      13,    14,    15,    16,    17,   153,   154,   155,     0,   156,
+     157,   158,   159,   160,   161,   162,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,   163,   164,   165,   166,   167,   168,   169,     0,     0,
+     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
+      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    82,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   172,     0,     0,     0,     0,
-       0,   173,   174,   175,   176,    12,    13,    14,    15,    16,
-      17,     0,     0,     0,     0,     0,   177,   124,     0,     0,
-       0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,     0,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,     0,   164,   165,
-     166,   167,   168,   169,     0,     0,   170,   171,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    73,    74,    75,    76,     0,
-      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    82,    14,    15,    16,    17,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-       0,     0,     0,     0,     0,     0,    83,     0,    84,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,   172,    72,     0,     0,     0,     0,   173,
-     174,   175,   176,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   177,     0,     0,     0,     0,     0,
-       0,     0,    74,    75,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
-      15,    16,    17,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   172,     0,     0,
+       0,     0,     0,   173,   174,   175,   176,    12,    13,    14,
+      15,    16,    17,     0,     0,     0,     0,     0,   177,   124,
        0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
-       0,     0,    83,     0,    84,    38,    39,    40,    41,    42,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-      72,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   239,     0,     0,     0,     0,     0,    74,    75,
-      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
+       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
+      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    82,    14,    15,    16,    17,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,     0,     0,     0,     0,     0,     0,    83,     0,
       84,    38,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,     0,   164,   165,   166,   167,
-     168,   169,     0,     0,   170,   171,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   318,     0,
+      67,    68,    69,    70,    71,   172,    72,     0,     0,     0,
+       0,   173,   174,   175,   176,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   177,     0,     0,     0,
        0,     0,     0,     0,    74,    75,    76,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    14,    15,    16,    17,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
+       0,     0,     0,     0,    83,     0,    84,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,     0,    72,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   239,     0,     0,     0,     0,     0,
+      74,    75,    76,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    14,    15,    16,
+      17,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
+      83,     0,    84,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,     0,   164,   165,
+     166,   167,   168,   169,     0,     0,   170,   171,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     319,     0,     0,     0,     0,     0,    74,    75,    76,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   172,     0,     0,     0,     0,     0,   173,   174,   175,
-     176,    12,    13,    14,    15,    16,    17,     0,     0,     0,
-       0,     0,   250,     0,     0,     0,     0,     0,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,     0,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,     0,   164,   165,   166,   167,   168,   169,
-       0,     0,   170,   171,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   331,    74,    75,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    82,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    83,     0,    84,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    14,    15,    16,    17,     0,   172,
-       0,     0,     0,     0,     0,   173,   174,   175,   176,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,     0,   164,   165,   166,   167,   168,
-     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    74,    75,    76,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    83,     0,    84,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    83,     0,    84,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
-     172,     0,     0,   229,     0,     0,   173,   174,   175,   176,
+       0,     0,     0,   172,     0,     0,     0,     0,     0,   173,
+     174,   175,   176,    12,    13,    14,    15,    16,    17,     0,
+       0,     0,     0,     0,   251,     0,     0,     0,     0,     0,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      28,    29,    30,    31,    32,     0,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,     0,   164,   165,   166,   167,
      168,   169,     0,     0,   170,   171,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    74,    75,    76,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   333,    74,    75,    76,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      82,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,    14,    15,    16,    17,
-       0,   172,     0,     0,   313,     0,     0,   173,   174,   175,
+       0,   172,     0,     0,     0,     0,     0,   173,   174,   175,
      176,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    38,    39,    40,    41,    42,    43,    44,    45,
@@ -1435,7 +1400,7 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,    14,    15,    16,
-      17,     0,   172,     0,     0,   365,     0,     0,   173,   174,
+      17,     0,   172,     0,     0,   229,     0,     0,   173,   174,
      175,   176,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    38,    39,    40,    41,    42,    43,    44,
@@ -1453,13 +1418,13 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,    14,    15,
-      16,    17,     0,   172,     0,     0,     0,     0,     0,   173,
+      16,    17,     0,   172,     0,     0,   314,     0,     0,   173,
      174,   175,   176,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    38,    39,    40,    41,    42,    43,
       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,   268,     0,   164,
+      64,    65,    66,    67,    68,    69,    70,    71,     0,   164,
      165,   166,   167,   168,   169,     0,     0,   170,   171,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,    74,    75,    76,
@@ -1470,114 +1435,129 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,    83,     0,    84,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
-      15,    16,    17,     0,   172,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
+      15,    16,    17,     0,   172,     0,     0,   367,     0,     0,
      173,   174,   175,   176,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    38,    39,    40,    41,    42,
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-      72,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-      78,    79,    80,    81,    82,    14,    15,    16,    17,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
+      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,     0,     0,     0,     0,     0,     0,    83,     0,
-      84,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,     0,   339,    14,    15,    16,
-      17,   169,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
+      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      14,    15,    16,    17,     0,   172,     0,     0,     0,     0,
+       0,   173,   174,   175,   176,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,   269,
+       0,   164,   165,   166,   167,   168,   169,     0,     0,   170,
+     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    74,
+      75,    76,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
+       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
+      13,    14,    15,    16,    17,     0,   172,     0,     0,     0,
+       0,     0,   173,   174,   175,   176,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,     0,    72,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
+      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
+       0,     0,    78,    79,    80,    81,    82,    14,    15,    16,
+      17,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    74,    75,    76,     0,     0,     0,
-       0,     0,     0,    38,    39,    40,    41,    42,    43,    44,
+      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
+      83,     0,    84,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,     0,    72,    14,
-      15,    16,    17,     0,    83,     0,    84,     0,     0,     0,
+      65,    66,    67,    68,    69,    70,    71,     0,   341,    14,
+      15,    16,    17,   169,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    74,    75,    76,     0,
        0,     0,     0,     0,     0,    38,    39,    40,    41,    42,
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-      72,     0,     0,     0,     0,     0,    83,     0,    84,     0,
+      72,    14,    15,    16,    17,     0,    83,     0,    84,     0,
+       0,     0,     0,     0,     0,     0,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    74,    75,
+      76,     0,     0,     0,     0,     0,     0,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,     0,    72,     0,     0,     0,     0,     0,    83,     0,
+      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
-      84
+      83,     0,    84
 };
 
 static const yytype_int16 yycheck[] =
 {
-       9,    73,    73,   155,     4,   159,    76,   161,   227,    86,
-      87,    91,     9,     9,   255,    76,   188,   146,   172,   193,
-     109,   379,   192,    95,    96,   141,   196,    84,    85,    78,
-     141,   312,   390,    33,    34,    35,     4,   211,   196,     3,
-       4,   196,   114,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,     0,   212,   196,   228,   212,   113,   170,
-     171,   213,   196,   212,   213,    33,    34,    35,    32,    33,
-      34,   212,    36,    37,    38,    39,    40,    86,   212,   191,
-     191,   193,   196,   196,   110,   326,    76,   368,    97,    86,
-      86,   103,   311,   112,   248,   267,   210,   210,   252,   211,
-     319,   255,   383,   112,   116,   386,   235,   113,   260,   263,
-     282,   227,    76,   394,   192,   124,   227,   191,   196,   192,
-     401,     3,     4,   196,   133,    82,    83,   204,   205,   209,
-     191,   113,   304,     3,     4,   144,   193,   146,   195,   113,
-     312,   197,   198,   213,   192,   364,   155,   113,   196,   303,
-      32,    33,    34,   192,    36,    37,    38,    39,    40,    88,
-      89,   211,    32,    33,    34,   196,    36,    37,    76,   178,
-     287,   288,   326,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   192,    33,    34,   311,   368,    37,   192,    76,
-     311,   192,   196,   319,   213,   196,   289,   290,   319,   381,
-     193,   383,   213,    76,   386,   224,   295,   296,   372,   104,
-     105,   106,   394,    76,   376,   113,   235,    76,   212,   401,
-     191,   291,   292,   293,   294,   389,   212,   212,   247,    33,
-      34,    35,   201,   202,   203,   191,   255,   212,   364,   191,
-     210,   260,   191,   364,   406,   192,   191,   206,   208,   331,
-     331,    90,   207,   191,    92,    76,    75,   194,   212,   193,
-     192,   211,   193,   191,   194,    76,   192,   196,   191,   194,
-     211,   211,   194,   194,   194,   192,   212,    12,   213,   212,
-     297,   264,   300,   298,   211,   299,   127,   211,   301,   134,
-     302,    77,   243,   144,   320,   390,    88,   178,   377,   247,
-      -1,   247,   326,    86,    -1,   224,    -1,   326,   224,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,    -1,
-     379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,   406,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
-      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-     105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,
+       9,    73,    73,   159,   155,   161,   141,    76,   141,     4,
+      86,    87,    91,     9,    84,    85,   172,    76,   146,     9,
+       3,     4,   381,    95,    96,    78,   313,   256,     4,   193,
+     104,   105,   106,   392,   227,   170,   171,     0,    33,    34,
+      35,   191,   114,   193,   196,     3,     4,   211,   192,    32,
+      33,    34,   196,    36,    37,   109,   191,    33,    34,    35,
+     212,   211,   213,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   196,    32,    33,    34,    86,    36,    37,
+      38,    39,    40,   370,   197,   198,   196,   113,    97,   212,
+      86,   188,   227,   249,   227,   196,    86,   253,   385,   328,
+     256,   388,   212,   112,   103,   110,   196,   235,   264,   396,
+     261,   212,   196,   212,   213,   124,   403,   116,    76,   312,
+     210,    82,    83,   193,   133,   195,   210,   320,   204,   205,
+     209,   228,   191,    88,    89,   144,   192,   146,    33,    34,
+     196,   192,    37,   192,   213,   196,   155,   196,   304,    76,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   178,
+     192,   268,   328,   366,   196,   112,   192,   312,   113,   312,
+     196,   211,    33,    34,    35,   320,   283,   320,   292,   293,
+     294,   295,   113,   201,   202,   203,   113,   192,   113,   288,
+     289,   192,   290,   291,   213,   296,   297,   191,   305,   196,
+      76,   193,    76,   213,    76,   224,   313,    76,   374,   113,
+      76,   191,   191,   212,   212,   211,   235,   378,   192,   191,
+     207,   366,   212,   366,   212,   391,   210,   191,   191,   248,
+     206,     3,     4,   208,    90,    92,   191,   256,    76,    78,
+     194,   193,   261,   212,    75,   193,   192,   408,   191,   211,
+     194,   333,   333,    76,   196,   194,   192,   191,   211,   194,
+      32,    33,    34,   370,    36,    37,    38,    39,    40,    12,
+     211,   194,   212,   192,   194,   213,   383,   298,   385,   211,
+     265,   388,   211,   299,   212,   302,   300,   127,   301,   396,
+     134,   303,    77,   244,   224,   144,   403,   321,   224,   248,
+     392,   379,    88,   178,    86,   328,    -1,    -1,    -1,   328,
+      -1,    -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
-      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,
-      -1,    -1,   197,   198,   199,   200,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,   213,   214,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
+      -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   392,    -1,    -1,    -1,    -1,    -1,    -1,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,   408,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
       33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
@@ -1661,137 +1641,122 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,
      197,   198,   199,   200,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   212,   213,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
+      -1,    -1,    -1,    -1,    -1,   212,   213,   214,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
+      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
+     105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
+      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
-     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,
+      -1,    -1,   197,   198,   199,   200,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,   213,     3,
+       4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    -1,    -1,
+      84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
+     104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,
-      -1,   197,   198,   199,   200,     3,     4,     5,     6,     7,
-       8,    -1,    -1,    -1,    -1,    -1,   212,   213,    -1,    -1,
-      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
-      78,    79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,
-     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   120,     5,     6,     7,     8,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,   191,    76,    -1,    -1,    -1,    -1,   197,
-     198,   199,   200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
-       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,
+      -1,    -1,    -1,   197,   198,   199,   200,     3,     4,     5,
+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   212,   213,
       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
-      -1,    -1,   154,    -1,   156,    41,    42,    43,    44,    45,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   214,    -1,    -1,    -1,    -1,    -1,   104,   105,
-     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
+     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   120,     5,     6,     7,     8,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
      156,    41,    42,    43,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
-      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,    -1,
+      70,    71,    72,    73,    74,   191,    76,    -1,    -1,    -1,
+      -1,   197,   198,   199,   200,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
+      -1,    -1,    -1,    -1,   154,    -1,   156,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   214,    -1,    -1,    -1,    -1,    -1,
+     104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,
+       8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
+      78,    79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     214,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   191,    -1,    -1,    -1,    -1,    -1,   197,   198,   199,
-     200,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
-      -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
-      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   103,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,   191,
-      -1,    -1,    -1,    -1,    -1,   197,   198,   199,   200,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
-      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
-     191,    -1,    -1,   194,    -1,    -1,   197,   198,   199,   200,
+      -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,   197,
+     198,   199,   200,     3,     4,     5,     6,     7,     8,    -1,
+      -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
       70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
       80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   103,   104,   105,   106,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
-      -1,   191,    -1,    -1,   194,    -1,    -1,   197,   198,   199,
+      -1,   191,    -1,    -1,    -1,    -1,    -1,   197,   198,   199,
      200,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
@@ -1827,7 +1792,7 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
-       7,     8,    -1,   191,    -1,    -1,    -1,    -1,    -1,   197,
+       7,     8,    -1,   191,    -1,    -1,   194,    -1,    -1,   197,
      198,   199,   200,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    46,
@@ -1844,49 +1809,85 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
-       6,     7,     8,    -1,   191,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
+       6,     7,     8,    -1,   191,    -1,    -1,   194,    -1,    -1,
      197,   198,   199,   200,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,
       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     116,   117,   118,   119,   120,     5,     6,     7,     8,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
-     156,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    -1,    76,     5,     6,     7,
-       8,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       5,     6,     7,     8,    -1,   191,    -1,    -1,    -1,    -1,
+      -1,   197,   198,   199,   200,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      -1,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
+      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
+     105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
+      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
+       4,     5,     6,     7,     8,    -1,   191,    -1,    -1,    -1,
+      -1,    -1,   197,   198,   199,   200,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
+     104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   116,   117,   118,   119,   120,     5,     6,     7,
+       8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,   104,   105,   106,    -1,    -1,    -1,
-      -1,    -1,    -1,    41,    42,    43,    44,    45,    46,    47,
+      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    41,    42,    43,    44,    45,    46,    47,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    -1,    76,     5,
-       6,     7,     8,    -1,   154,    -1,   156,    -1,    -1,    -1,
+       6,     7,     8,    81,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,   104,   105,   106,    -1,
       -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,
       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -1,
+      76,     5,     6,     7,     8,    -1,   154,    -1,   156,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,   104,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    -1,    76,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
-     156
+     154,    -1,   156
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1917,24 +1918,24 @@ static const yytype_uint16 yystos[] =
      283,   284,   285,   288,   289,   290,   293,   294,   295,   299,
      258,   257,   260,   271,   259,    76,   191,   193,   211,   194,
      234,   247,   251,   271,   113,   277,    76,   279,   280,   214,
-     278,   212,   192,   196,   212,   212,   283,   191,   191,   212,
-     212,   250,   191,   250,   210,   191,   234,   234,   250,   214,
-     288,    84,    85,   193,   195,   192,   192,   196,    74,   248,
-     191,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   211,   249,   234,   201,   202,   203,   197,   198,    82,
-      83,    86,    87,   204,   205,    88,    89,   206,   207,   208,
-      90,    92,    91,   209,   196,   212,   214,   283,    76,   257,
-     260,   193,   211,   194,   251,   248,   281,   194,   214,   193,
-     196,   212,   266,    75,   282,   289,   296,   250,   212,   250,
-     210,   103,   250,   263,   292,   192,   214,   226,   250,    76,
-     229,   248,   248,   234,   234,   234,   236,   236,   237,   237,
-     238,   238,   238,   238,   239,   239,   240,   241,   242,   243,
-     244,   245,   250,   248,   193,   194,   251,   281,   211,   194,
-     251,   280,   191,   292,   297,   298,   192,   192,    76,   192,
-     194,   210,   251,   211,   194,   281,   211,   194,   250,   212,
-     192,   283,   291,   285,   211,   284,   286,   287,   248,   194,
-     281,   211,   281,   192,   250,   286,    12,   281,   281,   212,
-     283
+     278,   212,   211,   192,   196,   212,   212,   283,   191,   191,
+     212,   212,   250,   191,   250,   210,   191,   234,   234,   250,
+     214,   288,    84,    85,   193,   195,   192,   192,   196,    74,
+     248,   191,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   211,   249,   234,   201,   202,   203,   197,   198,
+      82,    83,    86,    87,   204,   205,    88,    89,   206,   207,
+     208,    90,    92,    91,   209,   196,   212,   214,   283,    76,
+     257,   260,   193,   211,   194,   251,   248,   281,   194,   214,
+     193,   196,   212,    78,   266,    75,   282,   289,   296,   250,
+     212,   250,   210,   103,   250,   263,   292,   192,   214,   226,
+     250,    76,   229,   248,   248,   234,   234,   234,   236,   236,
+     237,   237,   238,   238,   238,   238,   239,   239,   240,   241,
+     242,   243,   244,   245,   250,   248,   193,   194,   251,   281,
+     211,   194,   251,   280,   191,   292,   297,   298,   192,   192,
+      76,   192,   194,   210,   251,   211,   194,   281,   211,   194,
+     250,   212,   192,   283,   291,   285,   211,   284,   286,   287,
+     248,   194,   281,   211,   281,   192,   250,   286,    12,   281,
+     281,   212,   283
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2616,7 +2617,7 @@ YYLTYPE yylloc;
 }
 
 /* Line 1242 of yacc.c  */
-#line 2620 "glsl_parser.cpp"
+#line 2621 "glsl_parser.cpp"
   yylsp[0] = yylloc;
 
   goto yysetstate;
@@ -3886,17 +3887,26 @@ yyreduce:
 /* Line 1455 of yacc.c  */
 #line 985 "glsl_parser.ypp"
     {
-          /* FINISHME: Should check for conflicting / duplicate flags here.
-           */
-          (yyval.type_qualifier) = (yyvsp[(1) - (3)].type_qualifier);
-          (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
+          if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
+             _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
+                              "duplicate layout qualifiers used\n");
+             YYERROR;
+          }
+
+          (yyval.type_qualifier).flags.i = (yyvsp[(1) - (3)].type_qualifier).flags.i | (yyvsp[(3) - (3)].type_qualifier).flags.i;
+
+          if ((yyvsp[(1) - (3)].type_qualifier).flags.q.explicit_location)
+             (yyval.type_qualifier).location = (yyvsp[(1) - (3)].type_qualifier).location;
+
+          if ((yyvsp[(3) - (3)].type_qualifier).flags.q.explicit_location)
+             (yyval.type_qualifier).location = (yyvsp[(3) - (3)].type_qualifier).location;
        ;}
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 995 "glsl_parser.ypp"
+#line 1004 "glsl_parser.ypp"
     {
           bool got_one = false;
 
@@ -3927,80 +3937,123 @@ yyreduce:
        ;}
     break;
 
-  case 139:
+  case 139:
+
+/* Line 1455 of yacc.c  */
+#line 1033 "glsl_parser.ypp"
+    {
+          bool got_one = false;
+
+          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
+
+          if (state->ARB_explicit_attrib_location_enable) {
+             /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
+              * FINISHME: GLSL 1.30 (or later) are supported.
+              */
+             if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) {
+                got_one = true;
+
+                (yyval.type_qualifier).flags.q.explicit_location = 1;
+
+                if ((yyvsp[(3) - (3)].n) >= 0) {
+                   (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n);
+                } else {
+                   _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
+                                    "invalid location %d specified\n", (yyvsp[(3) - (3)].n));
+                   YYERROR;
+                }
+             }
+          }
+
+          /* If the identifier didn't match any known layout identifiers,
+           * emit an error.
+           */
+          if (!got_one) {
+             _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout identifier "
+                              "`%s'\n", (yyvsp[(1) - (3)].identifier));
+             YYERROR;
+          } else if (state->ARB_explicit_attrib_location_warn) {
+             _mesa_glsl_warning(& (yylsp[(1) - (3)]), state,
+                                "GL_ARB_explicit_attrib_location layout "
+                                "identifier `%s' used\n", (yyvsp[(1) - (3)].identifier));
+          }
+       ;}
+    break;
+
+  case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1027 "glsl_parser.ypp"
+#line 1074 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.smooth = 1;
        ;}
     break;
 
-  case 140:
+  case 141:
 
 /* Line 1455 of yacc.c  */
-#line 1032 "glsl_parser.ypp"
+#line 1079 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.flat = 1;
        ;}
     break;
 
-  case 141:
+  case 142:
 
 /* Line 1455 of yacc.c  */
-#line 1037 "glsl_parser.ypp"
+#line 1084 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.noperspective = 1;
        ;}
     break;
 
-  case 142:
+  case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1045 "glsl_parser.ypp"
+#line 1092 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.constant = 1;
        ;}
     break;
 
-  case 145:
+  case 146:
 
 /* Line 1455 of yacc.c  */
-#line 1055 "glsl_parser.ypp"
+#line 1102 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
        ;}
     break;
 
-  case 147:
+  case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1061 "glsl_parser.ypp"
+#line 1108 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
        ;}
     break;
 
-  case 148:
+  case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1066 "glsl_parser.ypp"
+#line 1113 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.q.invariant = 1;
        ;}
     break;
 
-  case 149:
+  case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1071 "glsl_parser.ypp"
+#line 1118 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
@@ -4008,50 +4061,50 @@ yyreduce:
        ;}
     break;
 
-  case 150:
+  case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1077 "glsl_parser.ypp"
+#line 1124 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.invariant = 1;
        ;}
     break;
 
-  case 151:
+  case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1085 "glsl_parser.ypp"
+#line 1132 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.constant = 1;
        ;}
     break;
 
-  case 152:
+  case 153:
 
 /* Line 1455 of yacc.c  */
-#line 1090 "glsl_parser.ypp"
+#line 1137 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.attribute = 1;
        ;}
     break;
 
-  case 153:
+  case 154:
 
 /* Line 1455 of yacc.c  */
-#line 1095 "glsl_parser.ypp"
+#line 1142 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.varying = 1;
        ;}
     break;
 
-  case 154:
+  case 155:
 
 /* Line 1455 of yacc.c  */
-#line 1100 "glsl_parser.ypp"
+#line 1147 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1;
@@ -4059,70 +4112,70 @@ yyreduce:
        ;}
     break;
 
-  case 155:
+  case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1106 "glsl_parser.ypp"
+#line 1153 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.in = 1;
        ;}
     break;
 
-  case 156:
+  case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1111 "glsl_parser.ypp"
+#line 1158 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.out = 1;
        ;}
     break;
 
-  case 157:
+  case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1116 "glsl_parser.ypp"
+#line 1163 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
        ;}
     break;
 
-  case 158:
+  case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1121 "glsl_parser.ypp"
+#line 1168 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
        ;}
     break;
 
-  case 159:
+  case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1126 "glsl_parser.ypp"
+#line 1173 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.uniform = 1;
        ;}
     break;
 
-  case 161:
+  case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1135 "glsl_parser.ypp"
+#line 1182 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
           (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
        ;}
     break;
 
-  case 163:
+  case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1144 "glsl_parser.ypp"
+#line 1191 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4130,10 +4183,10 @@ yyreduce:
        ;}
     break;
 
-  case 164:
+  case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1150 "glsl_parser.ypp"
+#line 1197 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4141,10 +4194,10 @@ yyreduce:
        ;}
     break;
 
-  case 165:
+  case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1159 "glsl_parser.ypp"
+#line 1206 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
@@ -4152,10 +4205,10 @@ yyreduce:
        ;}
     break;
 
-  case 166:
+  case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1165 "glsl_parser.ypp"
+#line 1212 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
@@ -4163,10 +4216,10 @@ yyreduce:
        ;}
     break;
 
-  case 167:
+  case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1171 "glsl_parser.ypp"
+#line 1218 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
@@ -4174,367 +4227,367 @@ yyreduce:
        ;}
     break;
 
-  case 168:
+  case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1179 "glsl_parser.ypp"
+#line 1226 "glsl_parser.ypp"
     { (yyval.n) = ast_void; ;}
     break;
 
-  case 169:
+  case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1180 "glsl_parser.ypp"
+#line 1227 "glsl_parser.ypp"
     { (yyval.n) = ast_float; ;}
     break;
 
-  case 170:
+  case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1181 "glsl_parser.ypp"
+#line 1228 "glsl_parser.ypp"
     { (yyval.n) = ast_int; ;}
     break;
 
-  case 171:
+  case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1182 "glsl_parser.ypp"
+#line 1229 "glsl_parser.ypp"
     { (yyval.n) = ast_uint; ;}
     break;
 
-  case 172:
+  case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1183 "glsl_parser.ypp"
+#line 1230 "glsl_parser.ypp"
     { (yyval.n) = ast_bool; ;}
     break;
 
-  case 173:
+  case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1184 "glsl_parser.ypp"
+#line 1231 "glsl_parser.ypp"
     { (yyval.n) = ast_vec2; ;}
     break;
 
-  case 174:
+  case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1185 "glsl_parser.ypp"
+#line 1232 "glsl_parser.ypp"
     { (yyval.n) = ast_vec3; ;}
     break;
 
-  case 175:
+  case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1186 "glsl_parser.ypp"
+#line 1233 "glsl_parser.ypp"
     { (yyval.n) = ast_vec4; ;}
     break;
 
-  case 176:
+  case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1187 "glsl_parser.ypp"
+#line 1234 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec2; ;}
     break;
 
-  case 177:
+  case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1188 "glsl_parser.ypp"
+#line 1235 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec3; ;}
     break;
 
-  case 178:
+  case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1189 "glsl_parser.ypp"
+#line 1236 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec4; ;}
     break;
 
-  case 179:
+  case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1190 "glsl_parser.ypp"
+#line 1237 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec2; ;}
     break;
 
-  case 180:
+  case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1191 "glsl_parser.ypp"
+#line 1238 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec3; ;}
     break;
 
-  case 181:
+  case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1192 "glsl_parser.ypp"
+#line 1239 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec4; ;}
     break;
 
-  case 182:
+  case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1193 "glsl_parser.ypp"
+#line 1240 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec2; ;}
     break;
 
-  case 183:
+  case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1194 "glsl_parser.ypp"
+#line 1241 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec3; ;}
     break;
 
-  case 184:
+  case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1195 "glsl_parser.ypp"
+#line 1242 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec4; ;}
     break;
 
-  case 185:
+  case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1196 "glsl_parser.ypp"
+#line 1243 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2; ;}
     break;
 
-  case 186:
+  case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1197 "glsl_parser.ypp"
+#line 1244 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x3; ;}
     break;
 
-  case 187:
+  case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1198 "glsl_parser.ypp"
+#line 1245 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x4; ;}
     break;
 
-  case 188:
+  case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1199 "glsl_parser.ypp"
+#line 1246 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x2; ;}
     break;
 
-  case 189:
+  case 190:
 
 /* Line 1455 of yacc.c  */
-#line 1200 "glsl_parser.ypp"
+#line 1247 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3; ;}
     break;
 
-  case 190:
+  case 191:
 
 /* Line 1455 of yacc.c  */
-#line 1201 "glsl_parser.ypp"
+#line 1248 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x4; ;}
     break;
 
-  case 191:
+  case 192:
 
 /* Line 1455 of yacc.c  */
-#line 1202 "glsl_parser.ypp"
+#line 1249 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x2; ;}
     break;
 
-  case 192:
+  case 193:
 
 /* Line 1455 of yacc.c  */
-#line 1203 "glsl_parser.ypp"
+#line 1250 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x3; ;}
     break;
 
-  case 193:
+  case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1204 "glsl_parser.ypp"
+#line 1251 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4; ;}
     break;
 
-  case 194:
+  case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1205 "glsl_parser.ypp"
+#line 1252 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1d; ;}
     break;
 
-  case 195:
+  case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1206 "glsl_parser.ypp"
+#line 1253 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2d; ;}
     break;
 
-  case 196:
+  case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1207 "glsl_parser.ypp"
+#line 1254 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drect; ;}
     break;
 
-  case 197:
+  case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1208 "glsl_parser.ypp"
+#line 1255 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler3d; ;}
     break;
 
-  case 198:
+  case 199:
 
 /* Line 1455 of yacc.c  */
-#line 1209 "glsl_parser.ypp"
+#line 1256 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercube; ;}
     break;
 
-  case 199:
+  case 200:
 
 /* Line 1455 of yacc.c  */
-#line 1210 "glsl_parser.ypp"
+#line 1257 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1dshadow; ;}
     break;
 
-  case 200:
+  case 201:
 
 /* Line 1455 of yacc.c  */
-#line 1211 "glsl_parser.ypp"
+#line 1258 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2dshadow; ;}
     break;
 
-  case 201:
+  case 202:
 
 /* Line 1455 of yacc.c  */
-#line 1212 "glsl_parser.ypp"
+#line 1259 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drectshadow; ;}
     break;
 
-  case 202:
+  case 203:
 
 /* Line 1455 of yacc.c  */
-#line 1213 "glsl_parser.ypp"
+#line 1260 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercubeshadow; ;}
     break;
 
-  case 203:
+  case 204:
 
 /* Line 1455 of yacc.c  */
-#line 1214 "glsl_parser.ypp"
+#line 1261 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darray; ;}
     break;
 
-  case 204:
+  case 205:
 
 /* Line 1455 of yacc.c  */
-#line 1215 "glsl_parser.ypp"
+#line 1262 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darray; ;}
     break;
 
-  case 205:
+  case 206:
 
 /* Line 1455 of yacc.c  */
-#line 1216 "glsl_parser.ypp"
+#line 1263 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darrayshadow; ;}
     break;
 
-  case 206:
+  case 207:
 
 /* Line 1455 of yacc.c  */
-#line 1217 "glsl_parser.ypp"
+#line 1264 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darrayshadow; ;}
     break;
 
-  case 207:
+  case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1218 "glsl_parser.ypp"
+#line 1265 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1d; ;}
     break;
 
-  case 208:
+  case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1219 "glsl_parser.ypp"
+#line 1266 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2d; ;}
     break;
 
-  case 209:
+  case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1220 "glsl_parser.ypp"
+#line 1267 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler3d; ;}
     break;
 
-  case 210:
+  case 211:
 
 /* Line 1455 of yacc.c  */
-#line 1221 "glsl_parser.ypp"
+#line 1268 "glsl_parser.ypp"
     { (yyval.n) = ast_isamplercube; ;}
     break;
 
-  case 211:
+  case 212:
 
 /* Line 1455 of yacc.c  */
-#line 1222 "glsl_parser.ypp"
+#line 1269 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1darray; ;}
     break;
 
-  case 212:
+  case 213:
 
 /* Line 1455 of yacc.c  */
-#line 1223 "glsl_parser.ypp"
+#line 1270 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2darray; ;}
     break;
 
-  case 213:
+  case 214:
 
 /* Line 1455 of yacc.c  */
-#line 1224 "glsl_parser.ypp"
+#line 1271 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1d; ;}
     break;
 
-  case 214:
+  case 215:
 
 /* Line 1455 of yacc.c  */
-#line 1225 "glsl_parser.ypp"
+#line 1272 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2d; ;}
     break;
 
-  case 215:
+  case 216:
 
 /* Line 1455 of yacc.c  */
-#line 1226 "glsl_parser.ypp"
+#line 1273 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler3d; ;}
     break;
 
-  case 216:
+  case 217:
 
 /* Line 1455 of yacc.c  */
-#line 1227 "glsl_parser.ypp"
+#line 1274 "glsl_parser.ypp"
     { (yyval.n) = ast_usamplercube; ;}
     break;
 
-  case 217:
+  case 218:
 
 /* Line 1455 of yacc.c  */
-#line 1228 "glsl_parser.ypp"
+#line 1275 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1darray; ;}
     break;
 
-  case 218:
+  case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1229 "glsl_parser.ypp"
+#line 1276 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2darray; ;}
     break;
 
-  case 219:
+  case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1233 "glsl_parser.ypp"
+#line 1280 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4548,10 +4601,10 @@ yyreduce:
                  ;}
     break;
 
-  case 220:
+  case 221:
 
 /* Line 1455 of yacc.c  */
-#line 1244 "glsl_parser.ypp"
+#line 1291 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4565,10 +4618,10 @@ yyreduce:
                  ;}
     break;
 
-  case 221:
+  case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1255 "glsl_parser.ypp"
+#line 1302 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4582,10 +4635,10 @@ yyreduce:
                  ;}
     break;
 
-  case 222:
+  case 223:
 
 /* Line 1455 of yacc.c  */
-#line 1270 "glsl_parser.ypp"
+#line 1317 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
@@ -4593,10 +4646,10 @@ yyreduce:
        ;}
     break;
 
-  case 223:
+  case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1276 "glsl_parser.ypp"
+#line 1323 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
@@ -4604,30 +4657,30 @@ yyreduce:
        ;}
     break;
 
-  case 224:
+  case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1285 "glsl_parser.ypp"
+#line 1332 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
           (yyvsp[(1) - (1)].declarator_list)->link.self_link();
        ;}
     break;
 
-  case 225:
+  case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1290 "glsl_parser.ypp"
+#line 1337 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
           (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
        ;}
     break;
 
-  case 226:
+  case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1298 "glsl_parser.ypp"
+#line 1345 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
@@ -4641,30 +4694,30 @@ yyreduce:
        ;}
     break;
 
-  case 227:
+  case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1313 "glsl_parser.ypp"
+#line 1360 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
           (yyvsp[(1) - (1)].declaration)->link.self_link();
        ;}
     break;
 
-  case 228:
+  case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1318 "glsl_parser.ypp"
+#line 1365 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
           (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
        ;}
     break;
 
-  case 229:
+  case 230:
 
 /* Line 1455 of yacc.c  */
-#line 1326 "glsl_parser.ypp"
+#line 1373 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
@@ -4672,10 +4725,10 @@ yyreduce:
        ;}
     break;
 
-  case 230:
+  case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1332 "glsl_parser.ypp"
+#line 1379 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
@@ -4683,31 +4736,31 @@ yyreduce:
        ;}
     break;
 
-  case 233:
+  case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1350 "glsl_parser.ypp"
+#line 1397 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
-  case 238:
+  case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1358 "glsl_parser.ypp"
+#line 1405 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
-  case 239:
+  case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1359 "glsl_parser.ypp"
+#line 1406 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
-  case 242:
+  case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1366 "glsl_parser.ypp"
+#line 1413 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
@@ -4715,10 +4768,10 @@ yyreduce:
        ;}
     break;
 
-  case 243:
+  case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1372 "glsl_parser.ypp"
+#line 1419 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
@@ -4726,17 +4779,17 @@ yyreduce:
        ;}
     break;
 
-  case 244:
+  case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1380 "glsl_parser.ypp"
+#line 1427 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
-  case 246:
+  case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1386 "glsl_parser.ypp"
+#line 1433 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
@@ -4744,10 +4797,10 @@ yyreduce:
        ;}
     break;
 
-  case 247:
+  case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1392 "glsl_parser.ypp"
+#line 1439 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
@@ -4755,10 +4808,10 @@ yyreduce:
        ;}
     break;
 
-  case 248:
+  case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1401 "glsl_parser.ypp"
+#line 1448 "glsl_parser.ypp"
     {
           if ((yyvsp[(1) - (1)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
@@ -4770,10 +4823,10 @@ yyreduce:
        ;}
     break;
 
-  case 249:
+  case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1411 "glsl_parser.ypp"
+#line 1458 "glsl_parser.ypp"
     {
           if ((yyvsp[(2) - (2)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
@@ -4784,10 +4837,10 @@ yyreduce:
        ;}
     break;
 
-  case 250:
+  case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1423 "glsl_parser.ypp"
+#line 1470 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement(NULL);
@@ -4795,10 +4848,10 @@ yyreduce:
        ;}
     break;
 
-  case 251:
+  case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1429 "glsl_parser.ypp"
+#line 1476 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
@@ -4806,10 +4859,10 @@ yyreduce:
        ;}
     break;
 
-  case 252:
+  case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1438 "glsl_parser.ypp"
+#line 1485 "glsl_parser.ypp"
     {
           (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
                                                   (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
@@ -4817,39 +4870,39 @@ yyreduce:
        ;}
     break;
 
-  case 253:
+  case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1447 "glsl_parser.ypp"
+#line 1494 "glsl_parser.ypp"
     {
           (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
           (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
        ;}
     break;
 
-  case 254:
+  case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1452 "glsl_parser.ypp"
+#line 1499 "glsl_parser.ypp"
     {
           (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
           (yyval.selection_rest_statement).else_statement = NULL;
        ;}
     break;
 
-  case 255:
+  case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1460 "glsl_parser.ypp"
+#line 1507 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
        ;}
     break;
 
-  case 256:
+  case 257:
 
 /* Line 1455 of yacc.c  */
-#line 1464 "glsl_parser.ypp"
+#line 1511 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -4862,10 +4915,10 @@ yyreduce:
        ;}
     break;
 
-  case 260:
+  case 261:
 
 /* Line 1455 of yacc.c  */
-#line 1487 "glsl_parser.ypp"
+#line 1534 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
@@ -4874,10 +4927,10 @@ yyreduce:
        ;}
     break;
 
-  case 261:
+  case 262:
 
 /* Line 1455 of yacc.c  */
-#line 1494 "glsl_parser.ypp"
+#line 1541 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
@@ -4886,10 +4939,10 @@ yyreduce:
        ;}
     break;
 
-  case 262:
+  case 263:
 
 /* Line 1455 of yacc.c  */
-#line 1501 "glsl_parser.ypp"
+#line 1548 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
@@ -4898,39 +4951,39 @@ yyreduce:
        ;}
     break;
 
-  case 266:
+  case 267:
 
 /* Line 1455 of yacc.c  */
-#line 1517 "glsl_parser.ypp"
+#line 1564 "glsl_parser.ypp"
     {
           (yyval.node) = NULL;
        ;}
     break;
 
-  case 267:
+  case 268:
 
 /* Line 1455 of yacc.c  */
-#line 1524 "glsl_parser.ypp"
+#line 1571 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
           (yyval.for_rest_statement).rest = NULL;
        ;}
     break;
 
-  case 268:
+  case 269:
 
 /* Line 1455 of yacc.c  */
-#line 1529 "glsl_parser.ypp"
+#line 1576 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
           (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
        ;}
     break;
 
-  case 269:
+  case 270:
 
 /* Line 1455 of yacc.c  */
-#line 1538 "glsl_parser.ypp"
+#line 1585 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
@@ -4938,10 +4991,10 @@ yyreduce:
        ;}
     break;
 
-  case 270:
+  case 271:
 
 /* Line 1455 of yacc.c  */
-#line 1544 "glsl_parser.ypp"
+#line 1591 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
@@ -4949,10 +5002,10 @@ yyreduce:
        ;}
     break;
 
-  case 271:
+  case 272:
 
 /* Line 1455 of yacc.c  */
-#line 1550 "glsl_parser.ypp"
+#line 1597 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
@@ -4960,10 +5013,10 @@ yyreduce:
        ;}
     break;
 
-  case 272:
+  case 273:
 
 /* Line 1455 of yacc.c  */
-#line 1556 "glsl_parser.ypp"
+#line 1603 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
@@ -4971,10 +5024,10 @@ yyreduce:
        ;}
     break;
 
-  case 273:
+  case 274:
 
 /* Line 1455 of yacc.c  */
-#line 1562 "glsl_parser.ypp"
+#line 1609 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
@@ -4982,31 +5035,31 @@ yyreduce:
        ;}
     break;
 
-  case 274:
+  case 275:
 
 /* Line 1455 of yacc.c  */
-#line 1570 "glsl_parser.ypp"
+#line 1617 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
     break;
 
-  case 275:
+  case 276:
 
 /* Line 1455 of yacc.c  */
-#line 1571 "glsl_parser.ypp"
+#line 1618 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
     break;
 
-  case 276:
+  case 277:
 
 /* Line 1455 of yacc.c  */
-#line 1572 "glsl_parser.ypp"
+#line 1619 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
-  case 277:
+  case 278:
 
 /* Line 1455 of yacc.c  */
-#line 1577 "glsl_parser.ypp"
+#line 1624 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function_definition) = new(ctx) ast_function_definition();
@@ -5019,7 +5072,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 5023 "glsl_parser.cpp"
+#line 5076 "glsl_parser.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);