glsl2: Commit generated files changed by previous commit
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 12 Aug 2010 00:03:37 +0000 (17:03 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 12 Aug 2010 00:03:37 +0000 (17:03 -0700)
src/glsl/glsl_lexer.cpp
src/glsl/glsl_parser.cpp
src/glsl/glsl_parser.h

index 672b0b1359953cce555b15f25bc34addfcd1a8c6..f75f7b51713a72f3a4ae3a5fe9c93dd3b6c6b8c2 100644 (file)
@@ -54,7 +54,6 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -85,6 +84,8 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
+
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -158,7 +159,15 @@ typedef void* yyscan_t;
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -934,8 +943,18 @@ static yyconst flex_int16_t yy_chk[1076] =
       }                                                                 \
    } while (0)
 
+#define RESERVED_WORD(version, token)                                  \
+   do {                                                                        \
+      if (yyextra->language_version >= version) {                      \
+        return token;                                                  \
+      } else {                                                         \
+        _mesa_glsl_error(yylloc, yyextra,                              \
+                         "Illegal use of reserved word `%s'", yytext); \
+        return ERROR_TOK;                                              \
+      }                                                                        \
+   } while (0)
 
-#line 939 "glsl_lexer.cpp"
+#line 958 "glsl_lexer.cpp"
 
 #define INITIAL 0
 #define PP 1
@@ -1069,7 +1088,12 @@ static int input (yyscan_t yyscanner );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -1077,7 +1101,7 @@ static int input (yyscan_t yyscanner );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1088,7 +1112,7 @@ static int input (yyscan_t yyscanner );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               int n; \
+               size_t n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -1176,10 +1200,10 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 66 "glsl_lexer.lpp"
+#line 76 "glsl_lexer.lpp"
 
 
-#line 1183 "glsl_lexer.cpp"
+#line 1207 "glsl_lexer.cpp"
 
     yylval = yylval_param;
 
@@ -1265,7 +1289,7 @@ do_action:        /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 68 "glsl_lexer.lpp"
+#line 78 "glsl_lexer.lpp"
 ;
        YY_BREAK
 /* Preprocessor tokens. */ 
@@ -1274,17 +1298,17 @@ case 2:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 71 "glsl_lexer.lpp"
+#line 81 "glsl_lexer.lpp"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 72 "glsl_lexer.lpp"
+#line 82 "glsl_lexer.lpp"
 { BEGIN PP; return VERSION; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 73 "glsl_lexer.lpp"
+#line 83 "glsl_lexer.lpp"
 { BEGIN PP; return EXTENSION; }
        YY_BREAK
 case 5:
@@ -1292,7 +1316,7 @@ case 5:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 74 "glsl_lexer.lpp"
+#line 84 "glsl_lexer.lpp"
 {
                                   /* Eat characters until the first digit is
                                    * encountered
@@ -1314,7 +1338,7 @@ case 6:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 89 "glsl_lexer.lpp"
+#line 99 "glsl_lexer.lpp"
 {
                                   /* Eat characters until the first digit is
                                    * encountered
@@ -1332,27 +1356,27 @@ YY_RULE_SETUP
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 103 "glsl_lexer.lpp"
+#line 113 "glsl_lexer.lpp"
 { BEGIN PP; return PRAGMA; }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 104 "glsl_lexer.lpp"
+#line 114 "glsl_lexer.lpp"
 { }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 105 "glsl_lexer.lpp"
+#line 115 "glsl_lexer.lpp"
 { }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 106 "glsl_lexer.lpp"
+#line 116 "glsl_lexer.lpp"
 return COLON;
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 107 "glsl_lexer.lpp"
+#line 117 "glsl_lexer.lpp"
 {
                                   yylval->identifier = strdup(yytext);
                                   return IDENTIFIER;
@@ -1360,7 +1384,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 111 "glsl_lexer.lpp"
+#line 121 "glsl_lexer.lpp"
 {
                                    yylval->n = strtol(yytext, NULL, 10);
                                    return INTCONSTANT;
@@ -1369,283 +1393,283 @@ YY_RULE_SETUP
 case 13:
 /* rule 13 can match eol */
 YY_RULE_SETUP
-#line 115 "glsl_lexer.lpp"
+#line 125 "glsl_lexer.lpp"
 { BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
        YY_BREAK
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-#line 117 "glsl_lexer.lpp"
+#line 127 "glsl_lexer.lpp"
 { yylineno++; yycolumn = 0; }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 119 "glsl_lexer.lpp"
+#line 129 "glsl_lexer.lpp"
 return ATTRIBUTE;
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 120 "glsl_lexer.lpp"
+#line 130 "glsl_lexer.lpp"
 return CONST_TOK;
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 121 "glsl_lexer.lpp"
+#line 131 "glsl_lexer.lpp"
 return BOOL;
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 122 "glsl_lexer.lpp"
+#line 132 "glsl_lexer.lpp"
 return FLOAT;
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 123 "glsl_lexer.lpp"
+#line 133 "glsl_lexer.lpp"
 return INT;
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 125 "glsl_lexer.lpp"
+#line 135 "glsl_lexer.lpp"
 return BREAK;
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 126 "glsl_lexer.lpp"
+#line 136 "glsl_lexer.lpp"
 return CONTINUE;
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 127 "glsl_lexer.lpp"
+#line 137 "glsl_lexer.lpp"
 return DO;
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 128 "glsl_lexer.lpp"
+#line 138 "glsl_lexer.lpp"
 return WHILE;
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 129 "glsl_lexer.lpp"
+#line 139 "glsl_lexer.lpp"
 return ELSE;
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 130 "glsl_lexer.lpp"
+#line 140 "glsl_lexer.lpp"
 return FOR;
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 131 "glsl_lexer.lpp"
+#line 141 "glsl_lexer.lpp"
 return IF;
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 132 "glsl_lexer.lpp"
+#line 142 "glsl_lexer.lpp"
 return DISCARD;
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 133 "glsl_lexer.lpp"
+#line 143 "glsl_lexer.lpp"
 return RETURN;
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 135 "glsl_lexer.lpp"
+#line 145 "glsl_lexer.lpp"
 return BVEC2;
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 136 "glsl_lexer.lpp"
+#line 146 "glsl_lexer.lpp"
 return BVEC3;
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 137 "glsl_lexer.lpp"
+#line 147 "glsl_lexer.lpp"
 return BVEC4;
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 138 "glsl_lexer.lpp"
+#line 148 "glsl_lexer.lpp"
 return IVEC2;
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 139 "glsl_lexer.lpp"
+#line 149 "glsl_lexer.lpp"
 return IVEC3;
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 140 "glsl_lexer.lpp"
+#line 150 "glsl_lexer.lpp"
 return IVEC4;
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 141 "glsl_lexer.lpp"
+#line 151 "glsl_lexer.lpp"
 return VEC2;
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 142 "glsl_lexer.lpp"
+#line 152 "glsl_lexer.lpp"
 return VEC3;
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 143 "glsl_lexer.lpp"
+#line 153 "glsl_lexer.lpp"
 return VEC4;
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 144 "glsl_lexer.lpp"
+#line 154 "glsl_lexer.lpp"
 return MAT2;
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 145 "glsl_lexer.lpp"
+#line 155 "glsl_lexer.lpp"
 return MAT3;
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 146 "glsl_lexer.lpp"
+#line 156 "glsl_lexer.lpp"
 return MAT4;
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 147 "glsl_lexer.lpp"
+#line 157 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X2);
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 148 "glsl_lexer.lpp"
+#line 158 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X3);
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 149 "glsl_lexer.lpp"
+#line 159 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X4);
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 150 "glsl_lexer.lpp"
+#line 160 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X2);
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 151 "glsl_lexer.lpp"
+#line 161 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X3);
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 152 "glsl_lexer.lpp"
+#line 162 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X4);
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 153 "glsl_lexer.lpp"
+#line 163 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X2);
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 154 "glsl_lexer.lpp"
+#line 164 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X3);
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 155 "glsl_lexer.lpp"
+#line 165 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X4);
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 157 "glsl_lexer.lpp"
+#line 167 "glsl_lexer.lpp"
 return IN;
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 158 "glsl_lexer.lpp"
+#line 168 "glsl_lexer.lpp"
 return OUT;
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 159 "glsl_lexer.lpp"
+#line 169 "glsl_lexer.lpp"
 return INOUT;
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 160 "glsl_lexer.lpp"
+#line 170 "glsl_lexer.lpp"
 return UNIFORM;
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 161 "glsl_lexer.lpp"
+#line 171 "glsl_lexer.lpp"
 return VARYING;
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 162 "glsl_lexer.lpp"
+#line 172 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, CENTROID);
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 163 "glsl_lexer.lpp"
+#line 173 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, INVARIANT);
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 165 "glsl_lexer.lpp"
+#line 175 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, FLAT);
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 166 "glsl_lexer.lpp"
+#line 176 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SMOOTH);
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 167 "glsl_lexer.lpp"
+#line 177 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, NOPERSPECTIVE);
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 169 "glsl_lexer.lpp"
+#line 179 "glsl_lexer.lpp"
 return SAMPLER1D;
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 170 "glsl_lexer.lpp"
+#line 180 "glsl_lexer.lpp"
 return SAMPLER2D;
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 171 "glsl_lexer.lpp"
+#line 181 "glsl_lexer.lpp"
 return SAMPLER3D;
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 172 "glsl_lexer.lpp"
+#line 182 "glsl_lexer.lpp"
 return SAMPLERCUBE;
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 173 "glsl_lexer.lpp"
+#line 183 "glsl_lexer.lpp"
 return SAMPLER1DSHADOW;
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 174 "glsl_lexer.lpp"
+#line 184 "glsl_lexer.lpp"
 return SAMPLER2DSHADOW;
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 176 "glsl_lexer.lpp"
+#line 186 "glsl_lexer.lpp"
 return STRUCT;
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 177 "glsl_lexer.lpp"
+#line 187 "glsl_lexer.lpp"
 return VOID;
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 179 "glsl_lexer.lpp"
+#line 189 "glsl_lexer.lpp"
 {
                  if ((yyextra->language_version >= 140)
                      || (yyextra->ARB_fragment_coord_conventions_enable)){
@@ -1658,102 +1682,102 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 189 "glsl_lexer.lpp"
+#line 199 "glsl_lexer.lpp"
 return INC_OP;
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 190 "glsl_lexer.lpp"
+#line 200 "glsl_lexer.lpp"
 return DEC_OP;
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 191 "glsl_lexer.lpp"
+#line 201 "glsl_lexer.lpp"
 return LE_OP;
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 192 "glsl_lexer.lpp"
+#line 202 "glsl_lexer.lpp"
 return GE_OP;
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 193 "glsl_lexer.lpp"
+#line 203 "glsl_lexer.lpp"
 return EQ_OP;
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 194 "glsl_lexer.lpp"
+#line 204 "glsl_lexer.lpp"
 return NE_OP;
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 195 "glsl_lexer.lpp"
+#line 205 "glsl_lexer.lpp"
 return AND_OP;
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 196 "glsl_lexer.lpp"
+#line 206 "glsl_lexer.lpp"
 return OR_OP;
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 197 "glsl_lexer.lpp"
+#line 207 "glsl_lexer.lpp"
 return XOR_OP;
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 199 "glsl_lexer.lpp"
+#line 209 "glsl_lexer.lpp"
 return MUL_ASSIGN;
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 200 "glsl_lexer.lpp"
+#line 210 "glsl_lexer.lpp"
 return DIV_ASSIGN;
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 201 "glsl_lexer.lpp"
+#line 211 "glsl_lexer.lpp"
 return ADD_ASSIGN;
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 202 "glsl_lexer.lpp"
+#line 212 "glsl_lexer.lpp"
 return MOD_ASSIGN;
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 203 "glsl_lexer.lpp"
+#line 213 "glsl_lexer.lpp"
 return LEFT_ASSIGN;
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 204 "glsl_lexer.lpp"
+#line 214 "glsl_lexer.lpp"
 return RIGHT_ASSIGN;
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 205 "glsl_lexer.lpp"
+#line 215 "glsl_lexer.lpp"
 return AND_ASSIGN;
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 206 "glsl_lexer.lpp"
+#line 216 "glsl_lexer.lpp"
 return XOR_ASSIGN;
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 207 "glsl_lexer.lpp"
+#line 217 "glsl_lexer.lpp"
 return OR_ASSIGN;
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 208 "glsl_lexer.lpp"
+#line 218 "glsl_lexer.lpp"
 return SUB_ASSIGN;
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 210 "glsl_lexer.lpp"
+#line 220 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 10);
                            return INTCONSTANT;
@@ -1761,7 +1785,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 214 "glsl_lexer.lpp"
+#line 224 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext + 2, NULL, 16);
                            return INTCONSTANT;
@@ -1769,7 +1793,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 218 "glsl_lexer.lpp"
+#line 228 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 8);
                            return INTCONSTANT;
@@ -1777,7 +1801,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 223 "glsl_lexer.lpp"
+#line 233 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1785,7 +1809,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 227 "glsl_lexer.lpp"
+#line 237 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1793,7 +1817,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 231 "glsl_lexer.lpp"
+#line 241 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1801,7 +1825,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 235 "glsl_lexer.lpp"
+#line 245 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1809,7 +1833,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 239 "glsl_lexer.lpp"
+#line 249 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
@@ -1817,7 +1841,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 244 "glsl_lexer.lpp"
+#line 254 "glsl_lexer.lpp"
 {
                            yylval->n = 1;
                            return BOOLCONSTANT;
@@ -1825,7 +1849,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 248 "glsl_lexer.lpp"
+#line 258 "glsl_lexer.lpp"
 {
                            yylval->n = 0;
                            return BOOLCONSTANT;
@@ -1834,394 +1858,394 @@ YY_RULE_SETUP
 /* Reserved words in GLSL 1.10. */
 case 98:
 YY_RULE_SETUP
-#line 255 "glsl_lexer.lpp"
-return ASM;
+#line 265 "glsl_lexer.lpp"
+RESERVED_WORD(999, ASM);
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 256 "glsl_lexer.lpp"
-return CLASS;
+#line 266 "glsl_lexer.lpp"
+RESERVED_WORD(999, CLASS);
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 257 "glsl_lexer.lpp"
-return UNION;
+#line 267 "glsl_lexer.lpp"
+RESERVED_WORD(999, UNION);
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 258 "glsl_lexer.lpp"
-return ENUM;
+#line 268 "glsl_lexer.lpp"
+RESERVED_WORD(999, ENUM);
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 259 "glsl_lexer.lpp"
-return TYPEDEF;
+#line 269 "glsl_lexer.lpp"
+RESERVED_WORD(999, TYPEDEF);
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 260 "glsl_lexer.lpp"
-return TEMPLATE;
+#line 270 "glsl_lexer.lpp"
+RESERVED_WORD(999, TEMPLATE);
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 261 "glsl_lexer.lpp"
-return THIS;
+#line 271 "glsl_lexer.lpp"
+RESERVED_WORD(999, THIS);
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 262 "glsl_lexer.lpp"
-return PACKED;
+#line 272 "glsl_lexer.lpp"
+RESERVED_WORD(999, PACKED);
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 263 "glsl_lexer.lpp"
-return GOTO;
+#line 273 "glsl_lexer.lpp"
+RESERVED_WORD(999, GOTO);
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 264 "glsl_lexer.lpp"
-return SWITCH;
+#line 274 "glsl_lexer.lpp"
+RESERVED_WORD(130, SWITCH);
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 265 "glsl_lexer.lpp"
-return DEFAULT;
+#line 275 "glsl_lexer.lpp"
+RESERVED_WORD(130, DEFAULT);
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 266 "glsl_lexer.lpp"
-return INLINE_TOK;
+#line 276 "glsl_lexer.lpp"
+RESERVED_WORD(999, INLINE_TOK);
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 267 "glsl_lexer.lpp"
-return NOINLINE;
+#line 277 "glsl_lexer.lpp"
+RESERVED_WORD(999, NOINLINE);
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 268 "glsl_lexer.lpp"
-return VOLATILE;
+#line 278 "glsl_lexer.lpp"
+RESERVED_WORD(999, VOLATILE);
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 269 "glsl_lexer.lpp"
-return PUBLIC_TOK;
+#line 279 "glsl_lexer.lpp"
+RESERVED_WORD(999, PUBLIC_TOK);
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 270 "glsl_lexer.lpp"
-return STATIC;
+#line 280 "glsl_lexer.lpp"
+RESERVED_WORD(999, STATIC);
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 271 "glsl_lexer.lpp"
-return EXTERN;
+#line 281 "glsl_lexer.lpp"
+RESERVED_WORD(999, EXTERN);
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 272 "glsl_lexer.lpp"
-return EXTERNAL;
+#line 282 "glsl_lexer.lpp"
+RESERVED_WORD(999, EXTERNAL);
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 273 "glsl_lexer.lpp"
-return INTERFACE;
+#line 283 "glsl_lexer.lpp"
+RESERVED_WORD(999, INTERFACE);
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 274 "glsl_lexer.lpp"
-return LONG;
+#line 284 "glsl_lexer.lpp"
+RESERVED_WORD(999, LONG);
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 275 "glsl_lexer.lpp"
-return SHORT;
+#line 285 "glsl_lexer.lpp"
+RESERVED_WORD(999, SHORT);
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 276 "glsl_lexer.lpp"
-return DOUBLE;
+#line 286 "glsl_lexer.lpp"
+RESERVED_WORD(999, DOUBLE);
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 277 "glsl_lexer.lpp"
-return HALF;
+#line 287 "glsl_lexer.lpp"
+RESERVED_WORD(999, HALF);
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 278 "glsl_lexer.lpp"
-return FIXED;
+#line 288 "glsl_lexer.lpp"
+RESERVED_WORD(999, FIXED);
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 279 "glsl_lexer.lpp"
-return UNSIGNED;
+#line 289 "glsl_lexer.lpp"
+RESERVED_WORD(999, UNSIGNED);
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 280 "glsl_lexer.lpp"
-return INPUT;
+#line 290 "glsl_lexer.lpp"
+RESERVED_WORD(999, INPUT);
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 281 "glsl_lexer.lpp"
-return OUTPUT;
+#line 291 "glsl_lexer.lpp"
+RESERVED_WORD(999, OUTPUT);
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 282 "glsl_lexer.lpp"
-return HVEC2;
+#line 292 "glsl_lexer.lpp"
+RESERVED_WORD(999, HVEC2);
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 283 "glsl_lexer.lpp"
-return HVEC3;
+#line 293 "glsl_lexer.lpp"
+RESERVED_WORD(999, HVEC3);
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 284 "glsl_lexer.lpp"
-return HVEC4;
+#line 294 "glsl_lexer.lpp"
+RESERVED_WORD(999, HVEC4);
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 285 "glsl_lexer.lpp"
-return DVEC2;
+#line 295 "glsl_lexer.lpp"
+RESERVED_WORD(999, DVEC2);
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 286 "glsl_lexer.lpp"
-return DVEC3;
+#line 296 "glsl_lexer.lpp"
+RESERVED_WORD(999, DVEC3);
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 287 "glsl_lexer.lpp"
-return DVEC4;
+#line 297 "glsl_lexer.lpp"
+RESERVED_WORD(999, DVEC4);
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 288 "glsl_lexer.lpp"
-return FVEC2;
+#line 298 "glsl_lexer.lpp"
+RESERVED_WORD(999, FVEC2);
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 289 "glsl_lexer.lpp"
-return FVEC3;
+#line 299 "glsl_lexer.lpp"
+RESERVED_WORD(999, FVEC3);
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 290 "glsl_lexer.lpp"
-return FVEC4;
+#line 300 "glsl_lexer.lpp"
+RESERVED_WORD(999, FVEC4);
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 291 "glsl_lexer.lpp"
+#line 301 "glsl_lexer.lpp"
 return SAMPLER2DRECT;
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 292 "glsl_lexer.lpp"
-return SAMPLER3DRECT;
+#line 302 "glsl_lexer.lpp"
+RESERVED_WORD(999, SAMPLER3DRECT);
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 293 "glsl_lexer.lpp"
+#line 303 "glsl_lexer.lpp"
 return SAMPLER2DRECTSHADOW;
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 294 "glsl_lexer.lpp"
-return SIZEOF;
+#line 304 "glsl_lexer.lpp"
+RESERVED_WORD(999, SIZEOF);
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 295 "glsl_lexer.lpp"
-return CAST;
+#line 305 "glsl_lexer.lpp"
+RESERVED_WORD(999, CAST);
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 296 "glsl_lexer.lpp"
-return NAMESPACE;
+#line 306 "glsl_lexer.lpp"
+RESERVED_WORD(999, NAMESPACE);
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 297 "glsl_lexer.lpp"
-return USING;
+#line 307 "glsl_lexer.lpp"
+RESERVED_WORD(999, USING);
        YY_BREAK
 /* Additional reserved words in GLSL 1.20. */
 case 141:
 YY_RULE_SETUP
-#line 300 "glsl_lexer.lpp"
+#line 310 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, LOWP);
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 301 "glsl_lexer.lpp"
+#line 311 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MEDIUMP);
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 302 "glsl_lexer.lpp"
+#line 312 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, HIGHP);
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 303 "glsl_lexer.lpp"
+#line 313 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, PRECISION);
        YY_BREAK
 /* Additional reserved words in GLSL 1.30. */
 case 145:
 YY_RULE_SETUP
-#line 306 "glsl_lexer.lpp"
+#line 316 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, COMMON);
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 307 "glsl_lexer.lpp"
+#line 317 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, PARTITION);
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 308 "glsl_lexer.lpp"
+#line 318 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ACTIVE);
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 309 "glsl_lexer.lpp"
+#line 319 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SUPERP);
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 310 "glsl_lexer.lpp"
+#line 320 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER);
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 311 "glsl_lexer.lpp"
+#line 321 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, FILTER);
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 312 "glsl_lexer.lpp"
+#line 322 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1D);
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 313 "glsl_lexer.lpp"
+#line 323 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2D);
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 314 "glsl_lexer.lpp"
+#line 324 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE3D);
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 315 "glsl_lexer.lpp"
+#line 325 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGECUBE);
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 316 "glsl_lexer.lpp"
+#line 326 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1D);
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 317 "glsl_lexer.lpp"
+#line 327 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2D);
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 318 "glsl_lexer.lpp"
+#line 328 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE3D);
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 319 "glsl_lexer.lpp"
+#line 329 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGECUBE);
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 320 "glsl_lexer.lpp"
+#line 330 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1D);
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 321 "glsl_lexer.lpp"
+#line 331 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2D);
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 322 "glsl_lexer.lpp"
+#line 332 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE3D);
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 323 "glsl_lexer.lpp"
+#line 333 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGECUBE);
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 324 "glsl_lexer.lpp"
+#line 334 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY);
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 325 "glsl_lexer.lpp"
+#line 335 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY);
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 326 "glsl_lexer.lpp"
+#line 336 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY);
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 327 "glsl_lexer.lpp"
+#line 337 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY);
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 328 "glsl_lexer.lpp"
+#line 338 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY);
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 329 "glsl_lexer.lpp"
+#line 339 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY);
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 330 "glsl_lexer.lpp"
+#line 340 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW);
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 331 "glsl_lexer.lpp"
+#line 341 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW);
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 332 "glsl_lexer.lpp"
+#line 342 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER);
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 333 "glsl_lexer.lpp"
+#line 343 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER);
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 334 "glsl_lexer.lpp"
+#line 344 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER);
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 335 "glsl_lexer.lpp"
+#line 345 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ROW_MAJOR);
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 337 "glsl_lexer.lpp"
+#line 347 "glsl_lexer.lpp"
 {
                            struct _mesa_glsl_parse_state *state = yyextra;
                            void *ctx = state;  
@@ -2231,15 +2255,15 @@ YY_RULE_SETUP
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 344 "glsl_lexer.lpp"
+#line 354 "glsl_lexer.lpp"
 { return yytext[0]; }
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 346 "glsl_lexer.lpp"
+#line 356 "glsl_lexer.lpp"
 ECHO;
        YY_BREAK
-#line 2243 "glsl_lexer.cpp"
+#line 2267 "glsl_lexer.cpp"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(PP):
        yyterminate();
@@ -2974,8 +2998,8 @@ YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char * yystr , yyscan_t yyscann
 
 /** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * @param yyscanner The scanner object.
  * @return the newly allocated buffer state object.
  */
@@ -3381,7 +3405,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 346 "glsl_lexer.lpp"
+#line 356 "glsl_lexer.lpp"
 
 
 
index dc15891f7ec9db68e79d88aa583abefcecce7f76..92937fdf9ee205e8315dd9956d72abbe2022aa85 100644 (file)
      CAST = 413,
      NAMESPACE = 414,
      USING = 415,
-     COMMON = 416,
-     PARTITION = 417,
-     ACTIVE = 418,
-     SAMPLERBUFFER = 419,
-     FILTER = 420,
-     IMAGE1D = 421,
-     IMAGE2D = 422,
-     IMAGE3D = 423,
-     IMAGECUBE = 424,
-     IMAGE1DARRAY = 425,
-     IMAGE2DARRAY = 426,
-     IIMAGE1D = 427,
-     IIMAGE2D = 428,
-     IIMAGE3D = 429,
-     IIMAGECUBE = 430,
-     IIMAGE1DARRAY = 431,
-     IIMAGE2DARRAY = 432,
-     UIMAGE1D = 433,
-     UIMAGE2D = 434,
-     UIMAGE3D = 435,
-     UIMAGECUBE = 436,
-     UIMAGE1DARRAY = 437,
-     UIMAGE2DARRAY = 438,
-     IMAGE1DSHADOW = 439,
-     IMAGE2DSHADOW = 440,
-     IMAGEBUFFER = 441,
-     IIMAGEBUFFER = 442,
-     UIMAGEBUFFER = 443,
-     ROW_MAJOR = 444
+     ERROR_TOK = 416,
+     COMMON = 417,
+     PARTITION = 418,
+     ACTIVE = 419,
+     SAMPLERBUFFER = 420,
+     FILTER = 421,
+     IMAGE1D = 422,
+     IMAGE2D = 423,
+     IMAGE3D = 424,
+     IMAGECUBE = 425,
+     IMAGE1DARRAY = 426,
+     IMAGE2DARRAY = 427,
+     IIMAGE1D = 428,
+     IIMAGE2D = 429,
+     IIMAGE3D = 430,
+     IIMAGECUBE = 431,
+     IIMAGE1DARRAY = 432,
+     IIMAGE2DARRAY = 433,
+     UIMAGE1D = 434,
+     UIMAGE2D = 435,
+     UIMAGE3D = 436,
+     UIMAGECUBE = 437,
+     UIMAGE1DARRAY = 438,
+     UIMAGE2DARRAY = 439,
+     IMAGE1DSHADOW = 440,
+     IMAGE2DSHADOW = 441,
+     IMAGEBUFFER = 442,
+     IIMAGEBUFFER = 443,
+     UIMAGEBUFFER = 444,
+     ROW_MAJOR = 445
    };
 #endif
 
@@ -369,7 +370,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 373 "glsl_parser.cpp"
+#line 374 "glsl_parser.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -394,7 +395,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 398 "glsl_parser.cpp"
+#line 399 "glsl_parser.cpp"
 
 #ifdef short
 # undef short
@@ -611,10 +612,10 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   4373
+#define YYLAST   4389
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  214
+#define YYNTOKENS  215
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  89
 /* YYNRULES -- Number of rules.  */
@@ -624,7 +625,7 @@ union yyalloc
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   444
+#define YYMAXUTOK   445
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -635,16 +636,16 @@ static const yytype_uint8 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   198,     2,     2,     2,   202,   205,     2,
-     190,   191,   200,   196,   195,   197,   194,   201,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   209,   211,
-     203,   210,   204,   208,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   199,     2,     2,     2,   203,   206,     2,
+     191,   192,   201,   197,   196,   198,   195,   202,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   210,   212,
+     204,   211,   205,   209,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   192,     2,   193,   206,     2,     2,     2,     2,     2,
+       2,   193,     2,   194,   207,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   212,   207,   213,   199,     2,     2,     2,
+       2,     2,     2,   213,   208,   214,   200,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -676,7 +677,7 @@ static const yytype_uint8 yytranslate[] =
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189
+     185,   186,   187,   188,   189,   190
 };
 
 #if YYDEBUG
@@ -717,55 +718,55 @@ static const yytype_uint16 yyprhs[] =
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     215,     0,    -1,    -1,   217,   218,   216,   220,    -1,    -1,
-     112,    81,   117,    -1,    -1,   218,   219,    -1,   113,    79,
-     116,    79,   117,    -1,   301,    -1,   220,   301,    -1,    79,
-      -1,   221,    -1,    81,    -1,    82,    -1,    80,    -1,    83,
-      -1,   190,   248,   191,    -1,   222,    -1,   223,   192,   224,
-     193,    -1,   225,    -1,   223,   194,    79,    -1,   223,    87,
-      -1,   223,    88,    -1,   248,    -1,   226,    -1,   227,    -1,
-     223,   194,   227,    -1,   229,   191,    -1,   228,   191,    -1,
-     230,    77,    -1,   230,    -1,   230,   246,    -1,   229,   195,
-     246,    -1,   231,   190,    -1,   270,    -1,    79,    -1,    84,
-      -1,   223,    -1,    87,   232,    -1,    88,   232,    -1,   233,
-     232,    -1,   196,    -1,   197,    -1,   198,    -1,   199,    -1,
-     232,    -1,   234,   200,   232,    -1,   234,   201,   232,    -1,
-     234,   202,   232,    -1,   234,    -1,   235,   196,   234,    -1,
-     235,   197,   234,    -1,   235,    -1,   236,    85,   235,    -1,
-     236,    86,   235,    -1,   236,    -1,   237,   203,   236,    -1,
-     237,   204,   236,    -1,   237,    89,   236,    -1,   237,    90,
-     236,    -1,   237,    -1,   238,    91,   237,    -1,   238,    92,
-     237,    -1,   238,    -1,   239,   205,   238,    -1,   239,    -1,
-     240,   206,   239,    -1,   240,    -1,   241,   207,   240,    -1,
-     241,    -1,   242,    93,   241,    -1,   242,    -1,   243,    95,
-     242,    -1,   243,    -1,   244,    94,   243,    -1,   244,    -1,
-     244,   208,   248,   209,   246,    -1,   245,    -1,   232,   247,
-     246,    -1,   210,    -1,    96,    -1,    97,    -1,    99,    -1,
+     216,     0,    -1,    -1,   218,   219,   217,   221,    -1,    -1,
+     112,    81,   117,    -1,    -1,   219,   220,    -1,   113,    79,
+     116,    79,   117,    -1,   302,    -1,   221,   302,    -1,    79,
+      -1,   222,    -1,    81,    -1,    82,    -1,    80,    -1,    83,
+      -1,   191,   249,   192,    -1,   223,    -1,   224,   193,   225,
+     194,    -1,   226,    -1,   224,   195,    79,    -1,   224,    87,
+      -1,   224,    88,    -1,   249,    -1,   227,    -1,   228,    -1,
+     224,   195,   228,    -1,   230,   192,    -1,   229,   192,    -1,
+     231,    77,    -1,   231,    -1,   231,   247,    -1,   230,   196,
+     247,    -1,   232,   191,    -1,   271,    -1,    79,    -1,    84,
+      -1,   224,    -1,    87,   233,    -1,    88,   233,    -1,   234,
+     233,    -1,   197,    -1,   198,    -1,   199,    -1,   200,    -1,
+     233,    -1,   235,   201,   233,    -1,   235,   202,   233,    -1,
+     235,   203,   233,    -1,   235,    -1,   236,   197,   235,    -1,
+     236,   198,   235,    -1,   236,    -1,   237,    85,   236,    -1,
+     237,    86,   236,    -1,   237,    -1,   238,   204,   237,    -1,
+     238,   205,   237,    -1,   238,    89,   237,    -1,   238,    90,
+     237,    -1,   238,    -1,   239,    91,   238,    -1,   239,    92,
+     238,    -1,   239,    -1,   240,   206,   239,    -1,   240,    -1,
+     241,   207,   240,    -1,   241,    -1,   242,   208,   241,    -1,
+     242,    -1,   243,    93,   242,    -1,   243,    -1,   244,    95,
+     243,    -1,   244,    -1,   245,    94,   244,    -1,   245,    -1,
+     245,   209,   249,   210,   247,    -1,   246,    -1,   233,   248,
+     247,    -1,   211,    -1,    96,    -1,    97,    -1,    99,    -1,
       98,    -1,   105,    -1,   100,    -1,   101,    -1,   102,    -1,
-     103,    -1,   104,    -1,   246,    -1,   248,   195,   246,    -1,
-     245,    -1,   251,   211,    -1,   259,   211,    -1,   111,   274,
-     271,   211,    -1,   252,   191,    -1,   254,    -1,   253,    -1,
-     254,   256,    -1,   253,   195,   256,    -1,   261,    79,   190,
-      -1,   270,    79,    -1,   270,    79,   192,   249,   193,    -1,
-     267,   257,   255,    -1,   257,   255,    -1,   267,   257,   258,
-      -1,   257,   258,    -1,    -1,    36,    -1,    37,    -1,    38,
-      -1,   270,    -1,   260,    -1,   259,   195,    79,    -1,   259,
-     195,    79,   192,   193,    -1,   259,   195,    79,   192,   249,
-     193,    -1,   259,   195,    79,   192,   193,   210,   280,    -1,
-     259,   195,    79,   192,   249,   193,   210,   280,    -1,   259,
-     195,    79,   210,   280,    -1,   261,    -1,   261,    79,    -1,
-     261,    79,   192,   193,    -1,   261,    79,   192,   249,   193,
-      -1,   261,    79,   192,   193,   210,   280,    -1,   261,    79,
-     192,   249,   193,   210,   280,    -1,   261,    79,   210,   280,
-      -1,   106,    79,    -1,   270,    -1,   268,   270,    -1,    -1,
-     263,    -1,   120,   190,   264,   191,    -1,   265,    -1,   264,
-     195,   265,    -1,    79,    -1,    43,    -1,    42,    -1,    41,
-      -1,     4,    -1,   269,    -1,   266,   268,    -1,   106,   268,
-      -1,     4,    -1,     3,    -1,   262,    40,    -1,    35,    40,
-      -1,   262,    36,    -1,    37,    -1,    35,    36,    -1,    35,
-      37,    -1,    39,    -1,   271,    -1,   274,   271,    -1,   272,
-      -1,   272,   192,   193,    -1,   272,   192,   249,   193,    -1,
-     273,    -1,   275,    -1,    79,    -1,    77,    -1,     6,    -1,
+     103,    -1,   104,    -1,   247,    -1,   249,   196,   247,    -1,
+     246,    -1,   252,   212,    -1,   260,   212,    -1,   111,   275,
+     272,   212,    -1,   253,   192,    -1,   255,    -1,   254,    -1,
+     255,   257,    -1,   254,   196,   257,    -1,   262,    79,   191,
+      -1,   271,    79,    -1,   271,    79,   193,   250,   194,    -1,
+     268,   258,   256,    -1,   258,   256,    -1,   268,   258,   259,
+      -1,   258,   259,    -1,    -1,    36,    -1,    37,    -1,    38,
+      -1,   271,    -1,   261,    -1,   260,   196,    79,    -1,   260,
+     196,    79,   193,   194,    -1,   260,   196,    79,   193,   250,
+     194,    -1,   260,   196,    79,   193,   194,   211,   281,    -1,
+     260,   196,    79,   193,   250,   194,   211,   281,    -1,   260,
+     196,    79,   211,   281,    -1,   262,    -1,   262,    79,    -1,
+     262,    79,   193,   194,    -1,   262,    79,   193,   250,   194,
+      -1,   262,    79,   193,   194,   211,   281,    -1,   262,    79,
+     193,   250,   194,   211,   281,    -1,   262,    79,   211,   281,
+      -1,   106,    79,    -1,   271,    -1,   269,   271,    -1,    -1,
+     264,    -1,   120,   191,   265,   192,    -1,   266,    -1,   265,
+     196,   266,    -1,    79,    -1,    43,    -1,    42,    -1,    41,
+      -1,     4,    -1,   270,    -1,   267,   269,    -1,   106,   269,
+      -1,     4,    -1,     3,    -1,   263,    40,    -1,    35,    40,
+      -1,   263,    36,    -1,    37,    -1,    35,    36,    -1,    35,
+      37,    -1,    39,    -1,   272,    -1,   275,   272,    -1,   273,
+      -1,   273,   193,   194,    -1,   273,   193,   250,   194,    -1,
+     274,    -1,   276,    -1,    79,    -1,    77,    -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,
@@ -777,59 +778,59 @@ static const yytype_int16 yyrhs[] =
       64,    -1,    65,    -1,    66,    -1,    67,    -1,    68,    -1,
       69,    -1,    70,    -1,    71,    -1,    72,    -1,    73,    -1,
       74,    -1,    75,    -1,   109,    -1,   108,    -1,   107,    -1,
-      76,    79,   212,   276,   213,    -1,    76,   212,   276,   213,
-      -1,   277,    -1,   276,   277,    -1,   270,   278,   211,    -1,
-     279,    -1,   278,   195,   279,    -1,    79,    -1,    79,   192,
-     249,   193,    -1,   246,    -1,   250,    -1,   283,    -1,   284,
-      -1,   286,    -1,   285,    -1,   292,    -1,   281,    -1,   290,
-      -1,   291,    -1,   294,    -1,   295,    -1,   296,    -1,   300,
-      -1,   212,   213,    -1,   212,   289,   213,    -1,   288,    -1,
-     285,    -1,   212,   213,    -1,   212,   289,   213,    -1,   282,
-      -1,   289,   282,    -1,   211,    -1,   248,   211,    -1,    14,
-     190,   248,   191,   283,    12,   283,    -1,    14,   190,   248,
-     191,   283,    -1,    14,   190,   248,   191,   284,    -1,    14,
-     190,   248,   191,   283,    12,   284,    -1,   248,    -1,   261,
-      79,   210,   280,    -1,    17,   190,   248,   191,   286,    -1,
-      18,   248,   209,    -1,    19,   209,    -1,    78,   190,   293,
-     191,   287,    -1,    11,   282,    78,   190,   248,   191,   211,
-      -1,    13,   190,   297,   299,   191,   287,    -1,   290,    -1,
-     281,    -1,   293,    -1,    -1,   298,   211,    -1,   298,   211,
-     248,    -1,    10,   211,    -1,     9,   211,    -1,    16,   211,
-      -1,    16,   248,   211,    -1,    15,   211,    -1,   302,    -1,
-     250,    -1,   251,   288,    -1
+      76,    79,   213,   277,   214,    -1,    76,   213,   277,   214,
+      -1,   278,    -1,   277,   278,    -1,   271,   279,   212,    -1,
+     280,    -1,   279,   196,   280,    -1,    79,    -1,    79,   193,
+     250,   194,    -1,   247,    -1,   251,    -1,   284,    -1,   285,
+      -1,   287,    -1,   286,    -1,   293,    -1,   282,    -1,   291,
+      -1,   292,    -1,   295,    -1,   296,    -1,   297,    -1,   301,
+      -1,   213,   214,    -1,   213,   290,   214,    -1,   289,    -1,
+     286,    -1,   213,   214,    -1,   213,   290,   214,    -1,   283,
+      -1,   290,   283,    -1,   212,    -1,   249,   212,    -1,    14,
+     191,   249,   192,   284,    12,   284,    -1,    14,   191,   249,
+     192,   284,    -1,    14,   191,   249,   192,   285,    -1,    14,
+     191,   249,   192,   284,    12,   285,    -1,   249,    -1,   262,
+      79,   211,   281,    -1,    17,   191,   249,   192,   287,    -1,
+      18,   249,   210,    -1,    19,   210,    -1,    78,   191,   294,
+     192,   288,    -1,    11,   283,    78,   191,   249,   192,   212,
+      -1,    13,   191,   298,   300,   192,   288,    -1,   291,    -1,
+     282,    -1,   294,    -1,    -1,   299,   212,    -1,   299,   212,
+     249,    -1,    10,   212,    -1,     9,   212,    -1,    16,   212,
+      -1,    16,   249,   212,    -1,    15,   212,    -1,   303,    -1,
+     251,    -1,   252,   289,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   208,   208,   207,   216,   219,   236,   238,   242,   251,
-     259,   270,   274,   281,   288,   295,   302,   309,   316,   317,
-     323,   327,   334,   340,   349,   353,   357,   358,   367,   368,
-     372,   373,   377,   383,   395,   399,   405,   412,   423,   424,
-     430,   436,   446,   447,   448,   449,   453,   454,   460,   466,
-     475,   476,   482,   491,   492,   498,   507,   508,   514,   520,
-     526,   535,   536,   542,   551,   552,   561,   562,   571,   572,
-     581,   582,   591,   592,   601,   602,   611,   612,   621,   622,
-     631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-     641,   645,   649,   665,   669,   673,   677,   691,   695,   696,
-     700,   705,   713,   724,   734,   749,   756,   761,   772,   784,
-     785,   786,   787,   791,   795,   796,   805,   814,   823,   832,
-     841,   854,   865,   874,   883,   892,   901,   910,   919,   933,
-     940,   951,   952,   956,   963,   964,   971,  1005,  1006,  1007,
-    1011,  1015,  1016,  1020,  1028,  1029,  1030,  1031,  1032,  1033,
-    1034,  1035,  1036,  1040,  1041,  1049,  1050,  1056,  1065,  1071,
-    1077,  1086,  1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,
-    1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,  1103,  1104,
-    1105,  1106,  1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,
-    1115,  1116,  1117,  1118,  1119,  1120,  1121,  1122,  1123,  1124,
-    1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,
-    1135,  1136,  1137,  1138,  1139,  1143,  1154,  1165,  1179,  1185,
-    1194,  1199,  1207,  1222,  1227,  1235,  1241,  1250,  1254,  1260,
-    1261,  1265,  1266,  1270,  1274,  1275,  1276,  1277,  1278,  1279,
-    1280,  1284,  1290,  1299,  1300,  1304,  1310,  1319,  1329,  1341,
-    1347,  1356,  1365,  1371,  1377,  1386,  1390,  1404,  1408,  1409,
-    1413,  1420,  1427,  1437,  1438,  1442,  1444,  1450,  1455,  1464,
-    1470,  1476,  1482,  1488,  1497,  1498,  1502
+       0,   210,   210,   209,   218,   221,   238,   240,   244,   253,
+     261,   272,   276,   283,   290,   297,   304,   311,   318,   319,
+     325,   329,   336,   342,   351,   355,   359,   360,   369,   370,
+     374,   375,   379,   385,   397,   401,   407,   414,   425,   426,
+     432,   438,   448,   449,   450,   451,   455,   456,   462,   468,
+     477,   478,   484,   493,   494,   500,   509,   510,   516,   522,
+     528,   537,   538,   544,   553,   554,   563,   564,   573,   574,
+     583,   584,   593,   594,   603,   604,   613,   614,   623,   624,
+     633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
+     643,   647,   651,   667,   671,   675,   679,   693,   697,   698,
+     702,   707,   715,   726,   736,   751,   758,   763,   774,   786,
+     787,   788,   789,   793,   797,   798,   807,   816,   825,   834,
+     843,   856,   867,   876,   885,   894,   903,   912,   921,   935,
+     942,   953,   954,   958,   965,   966,   973,  1007,  1008,  1009,
+    1013,  1017,  1018,  1022,  1030,  1031,  1032,  1033,  1034,  1035,
+    1036,  1037,  1038,  1042,  1043,  1051,  1052,  1058,  1067,  1073,
+    1079,  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,
+    1097,  1098,  1099,  1100,  1101,  1102,  1103,  1104,  1105,  1106,
+    1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116,
+    1117,  1118,  1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126,
+    1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,  1136,
+    1137,  1138,  1139,  1140,  1141,  1145,  1156,  1167,  1181,  1187,
+    1196,  1201,  1209,  1224,  1229,  1237,  1243,  1252,  1256,  1262,
+    1263,  1267,  1268,  1272,  1276,  1277,  1278,  1279,  1280,  1281,
+    1282,  1286,  1292,  1301,  1302,  1306,  1312,  1321,  1331,  1343,
+    1349,  1358,  1367,  1373,  1379,  1388,  1392,  1406,  1410,  1411,
+    1415,  1422,  1429,  1439,  1440,  1444,  1446,  1452,  1457,  1466,
+    1472,  1478,  1484,  1490,  1499,  1500,  1504
 };
 #endif
 
@@ -865,11 +866,11 @@ static const char *const yytname[] =
   "HALF", "FIXED", "UNSIGNED", "INPUT", "OUPTUT", "HVEC2", "HVEC3",
   "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4",
   "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF",
-  "CAST", "NAMESPACE", "USING", "COMMON", "PARTITION", "ACTIVE",
-  "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE",
-  "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D",
-  "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D",
-  "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
+  "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION",
+  "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D",
+  "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D",
+  "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D",
+  "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
   "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER",
   "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','",
   "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'",
@@ -935,43 +936,43 @@ static const yytype_uint16 yytoknum[] =
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
-      40,    41,    91,    93,    46,    44,    43,    45,    33,   126,
-      42,    47,    37,    60,    62,    38,    94,   124,    63,    58,
-      61,    59,   123,   125
+     445,    40,    41,    91,    93,    46,    44,    43,    45,    33,
+     126,    42,    47,    37,    60,    62,    38,    94,   124,    63,
+      58,    61,    59,   123,   125
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   214,   216,   215,   217,   217,   218,   218,   219,   220,
-     220,   221,   222,   222,   222,   222,   222,   222,   223,   223,
-     223,   223,   223,   223,   224,   225,   226,   226,   227,   227,
-     228,   228,   229,   229,   230,   231,   231,   231,   232,   232,
-     232,   232,   233,   233,   233,   233,   234,   234,   234,   234,
-     235,   235,   235,   236,   236,   236,   237,   237,   237,   237,
-     237,   238,   238,   238,   239,   239,   240,   240,   241,   241,
-     242,   242,   243,   243,   244,   244,   245,   245,   246,   246,
-     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
-     247,   248,   248,   249,   250,   250,   250,   251,   252,   252,
-     253,   253,   254,   255,   255,   256,   256,   256,   256,   257,
-     257,   257,   257,   258,   259,   259,   259,   259,   259,   259,
-     259,   260,   260,   260,   260,   260,   260,   260,   260,   261,
-     261,   262,   262,   263,   264,   264,   265,   266,   266,   266,
-     267,   268,   268,   268,   269,   269,   269,   269,   269,   269,
-     269,   269,   269,   270,   270,   271,   271,   271,   272,   272,
-     272,   273,   273,   273,   273,   273,   273,   273,   273,   273,
-     273,   273,   273,   273,   273,   273,   273,   273,   273,   273,
-     273,   273,   273,   273,   273,   273,   273,   273,   273,   273,
-     273,   273,   273,   273,   273,   273,   273,   273,   273,   273,
-     273,   273,   273,   273,   273,   273,   273,   273,   273,   273,
-     273,   273,   273,   273,   273,   274,   274,   274,   275,   275,
-     276,   276,   277,   278,   278,   279,   279,   280,   281,   282,
-     282,   283,   283,   284,   285,   285,   285,   285,   285,   285,
-     285,   286,   286,   287,   287,   288,   288,   289,   289,   290,
-     290,   291,   292,   292,   292,   293,   293,   294,   295,   295,
-     296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
-     300,   300,   300,   300,   301,   301,   302
+       0,   215,   217,   216,   218,   218,   219,   219,   220,   221,
+     221,   222,   223,   223,   223,   223,   223,   223,   224,   224,
+     224,   224,   224,   224,   225,   226,   227,   227,   228,   228,
+     229,   229,   230,   230,   231,   232,   232,   232,   233,   233,
+     233,   233,   234,   234,   234,   234,   235,   235,   235,   235,
+     236,   236,   236,   237,   237,   237,   238,   238,   238,   238,
+     238,   239,   239,   239,   240,   240,   241,   241,   242,   242,
+     243,   243,   244,   244,   245,   245,   246,   246,   247,   247,
+     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
+     248,   249,   249,   250,   251,   251,   251,   252,   253,   253,
+     254,   254,   255,   256,   256,   257,   257,   257,   257,   258,
+     258,   258,   258,   259,   260,   260,   260,   260,   260,   260,
+     260,   261,   261,   261,   261,   261,   261,   261,   261,   262,
+     262,   263,   263,   264,   265,   265,   266,   267,   267,   267,
+     268,   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,   274,   274,   274,   274,   275,   275,   275,   276,   276,
+     277,   277,   278,   279,   279,   280,   280,   281,   282,   283,
+     283,   284,   284,   285,   286,   286,   286,   286,   286,   286,
+     286,   287,   287,   288,   288,   289,   289,   290,   290,   291,
+     291,   292,   293,   293,   293,   294,   294,   295,   296,   296,
+     297,   297,   297,   298,   298,   299,   299,   300,   300,   301,
+     301,   301,   301,   301,   302,   302,   303
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1072,65 +1073,65 @@ static const yytype_int16 yydefgoto[] =
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -351
+#define YYPACT_NINF -361
 static const yytype_int16 yypact[] =
 {
-     -85,   -52,    36,  -351,   -60,  -351,   -30,  -351,   -31,  3875,
-    -351,   -27,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,    69,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,   -78,  -351,  -351,     8,  -351,  -351,  -351,    50,   -83,
-    -351,  -351,  3757,  -351,   -63,     4,   -44,     3,  -169,  -351,
-      82,    -5,  -351,   166,  4104,  -351,  -351,  -351,    14,  -351,
-    4217,  -351,  -351,  -351,   135,  -351,  -351,  -351,   -12,  4104,
-    -351,   166,  -351,  4217,   142,  -351,  -351,   401,  -351,  -351,
-      18,  -351,  -351,  -351,  -351,  -351,  4104,   127,   144,  -351,
-    -112,  -351,  -351,  -351,  -351,  2857,  -351,   107,  4104,   146,
-    2254,  -351,    20,  -351,   -99,  -351,    21,    25,  1245,    39,
-      47,    27,  2480,    49,  3397,    31,    53,   -69,  -351,  -351,
-    -351,  -351,  -351,  3397,  3397,  3397,  -351,  -351,  -351,  -351,
-    -351,   612,  -351,  -351,  -351,   -68,  -351,  -351,  -351,    54,
-     -59,  3577,    56,   -36,  3397,   -34,   -25,   112,   -81,   121,
-      45,    38,    44,   159,   158,   -88,  -351,  -351,  -167,  -351,
-      46,    66,  -351,  -351,  -351,  -351,  -351,  -351,   823,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,   179,
-    4104,  -178,  -351,  3037,  3397,  -351,  -351,  -351,    67,  -351,
-    -351,  2367,    70,  -121,  -351,  -351,  -351,  -351,  -351,   142,
-    -351,  -351,   181,  1862,  3397,  -351,  -351,  -114,  3397,  -172,
-    -351,  2677,  -351,  -351,   -58,  -351,  1034,  -351,  -351,  3397,
-    3991,  -351,  -351,  3397,    72,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  3397,  -351,
-    3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,
-    3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,
-    3397,  -351,  -351,  -351,    73,  -351,  -351,  3217,  3397,    51,
-      71,  -351,  -351,  -351,  -351,  3397,   146,  -351,  -351,    76,
-    -351,  -351,  2059,   -51,  -351,   -50,  -351,    74,   188,    77,
-    -351,  -351,    78,    74,    80,  -351,  -351,  -351,  -351,  -351,
-    -351,   -34,   -34,   -25,   -25,   112,   112,   112,   112,   -81,
-     -81,   121,    45,    38,    44,   159,   158,  -125,  -351,  3397,
-      63,    81,  -351,  3397,    65,    83,  -351,  3397,  -351,    68,
-      86,  1245,    75,    79,  1455,  -351,  3397,    85,  3397,    84,
-    -351,  3397,  -351,   -49,  3397,  1455,   268,  -351,  -351,  3397,
-      91,  -351,  -351,  -351,  -351,  -351,  -351,  3397,  -351,    87,
-      74,  -351,  1245,  -351,  3397,  -351,  -351,  -351,  -351,   -48,
-    1665,   270,  1665
+     -51,   -15,    81,  -361,   -34,  -361,   -24,  -361,    25,  3891,
+    -361,   -19,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,    69,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,   -78,  -361,  -361,     8,  -361,  -361,  -361,    49,   -80,
+    -361,  -361,  3773,  -361,  -177,   -79,   -55,     2,  -168,  -361,
+      70,    56,  -361,    28,  4120,  -361,  -361,  -361,   -39,  -361,
+    4233,  -361,  -361,  -361,    80,  -361,  -361,  -361,   -67,  4120,
+    -361,    28,  -361,  4233,    95,  -361,  -361,   401,  -361,  -361,
+      18,  -361,  -361,  -361,  -361,  -361,  4120,   176,   116,  -361,
+    -113,  -361,  -361,  -361,  -361,  2868,  -361,    86,  4120,   126,
+    2263,  -361,     9,  -361,   -89,  -361,    17,    24,  1249,    46,
+      47,    27,  2489,    52,  3411,    30,    53,   -70,  -361,  -361,
+    -361,  -361,  -361,  3411,  3411,  3411,  -361,  -361,  -361,  -361,
+    -361,   613,  -361,  -361,  -361,   -69,  -361,  -361,  -361,    54,
+     -76,  3592,    59,    67,  3411,    22,     0,   115,   -82,   125,
+      39,    44,    45,   159,   161,   -90,  -361,  -361,  -159,  -361,
+      48,    66,  -361,  -361,  -361,  -361,  -361,  -361,   825,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,   179,
+    4120,  -170,  -361,  3049,  3411,  -361,  -361,  -361,    65,  -361,
+    -361,  2376,    68,  -122,  -361,  -361,  -361,  -361,  -361,    95,
+    -361,  -361,   184,  1869,  3411,  -361,  -361,  -121,  3411,  -162,
+    -361,  2687,  -361,  -361,   -60,  -361,  1037,  -361,  -361,  3411,
+    4007,  -361,  -361,  3411,    71,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  3411,  -361,
+    3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,
+    3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,  3411,
+    3411,  -361,  -361,  -361,    72,  -361,  -361,  3230,  3411,    55,
+      73,  -361,  -361,  -361,  -361,  3411,   126,  -361,  -361,    77,
+    -361,  -361,  2067,   -59,  -361,   -52,  -361,    74,   185,    79,
+    -361,  -361,    75,    74,    82,  -361,  -361,  -361,  -361,  -361,
+    -361,    22,    22,     0,     0,   115,   115,   115,   115,   -82,
+     -82,   125,    39,    44,    45,   159,   161,  -128,  -361,  3411,
+      61,    83,  -361,  3411,    63,    85,  -361,  3411,  -361,    64,
+      88,  1249,    62,    76,  1460,  -361,  3411,    87,  3411,    78,
+    -361,  3411,  -361,   -49,  3411,  1460,   270,  -361,  -361,  3411,
+      92,  -361,  -361,  -361,  -361,  -361,  -361,  3411,  -361,    84,
+      74,  -361,  1249,  -361,  3411,  -361,  -361,  -361,  -361,   -41,
+    1671,   272,  1671
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
-    -351,  -351,  -351,    23,  -351,  -351,  -351,  -351,  -105,  -351,
-     -67,   -66,  -134,   -65,    -8,   -10,    -7,    -6,    -4,    -3,
-    -351,  -111,  -148,  -351,  -149,  -221,     6,     9,  -351,  -351,
-    -351,    88,   171,   165,    89,  -351,  -351,  -247,  -351,  -351,
-    -351,    57,  -351,  -351,   -40,  -351,    -9,   -75,  -351,  -351,
-     219,  -351,   161,  -127,  -351,   -16,  -262,    58,  -131,  -299,
-    -350,  -292,   -70,   -82,   220,   134,    64,  -351,  -351,   -11,
-    -351,  -351,  -351,  -351,  -351,  -351,  -351,   224,  -351
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
+    -361,  -361,  -361,    26,  -361,  -361,  -361,  -361,  -105,  -361,
+     -64,   -54,   -81,   -65,    -8,    -6,    -5,    -4,    -3,    -7,
+    -361,  -111,  -148,  -361,  -149,  -221,     6,    11,  -361,  -361,
+    -361,    89,   173,   168,    90,  -361,  -361,  -238,  -361,  -361,
+    -361,    58,  -361,  -361,   -47,  -361,    -9,   -71,  -361,  -361,
+     220,  -361,   162,  -130,  -361,   -17,  -236,    60,  -131,  -350,
+    -345,  -360,   -68,   -84,   218,   134,    91,  -361,  -361,   -16,
+    -361,  -361,  -361,  -361,  -361,  -361,  -361,   225,  -361
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1140,40 +1141,40 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -267
 static const yytype_int16 yytable[] =
 {
-      96,   108,   310,   247,   328,   249,   298,   121,   287,   288,
-    -160,    12,    13,   236,   307,    83,   254,   242,    84,   257,
-     258,   387,   121,   300,   227,   136,   128,     1,   300,     4,
-     226,   131,   308,   265,   112,   132,     5,   326,   142,   122,
-     123,   124,   129,    33,   301,    34,   362,    35,    11,    36,
-      37,    38,   408,   133,   122,   123,   124,     7,   252,   253,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     300,   112,   386,    96,   316,   328,   311,   303,   222,   279,
-     223,   300,   391,     8,   376,   134,   361,   110,    83,   104,
-     317,    84,   238,   391,   365,   323,   239,   324,   224,   325,
-     139,   380,   327,   407,   236,   105,   106,   114,   201,   107,
-     333,   411,   227,   407,   111,   336,   396,   219,   226,   398,
-     299,   -36,   289,   290,   259,   303,   260,   403,    79,   139,
-     337,   139,   262,   330,   109,   405,   263,   300,   377,   201,
-     371,   372,   399,   410,   300,   300,   300,   300,   116,   117,
-     357,   120,   358,   345,   346,   347,   348,    75,    76,    77,
-     311,   130,   201,   122,   123,   124,   280,   281,   282,    12,
-      13,   283,   284,   327,   277,   338,   339,   340,   226,   226,
+      96,   108,   310,   247,   298,   249,   121,   287,   288,  -160,
+     236,    12,    13,   328,   391,    83,   254,   242,   257,   258,
+      84,   386,   121,   307,   227,   391,   387,   112,   128,   136,
+     226,    12,    13,   265,   300,   116,   117,   300,   122,   123,
+     124,   308,   142,    33,   129,    34,   133,    35,   326,    36,
+      37,    38,   407,   301,   122,   123,   124,   408,   252,   253,
+     411,     1,   407,    33,   112,    34,     4,    35,   300,    36,
+      37,    38,   362,    96,   316,   300,   311,   303,   222,   279,
+     223,     5,   376,     7,   328,   134,   361,   110,    83,     8,
+     317,   324,   131,    84,   365,   323,   132,   104,   224,   325,
+     139,   236,   327,   238,    11,   105,   106,   239,   201,   107,
+     333,   114,   227,   119,   111,   336,   262,   219,   226,   299,
+     263,   -36,   289,   290,   259,   303,   260,   380,    79,   139,
+     337,   139,   330,   371,   111,   109,   300,   300,   377,   201,
+     372,   120,   396,   399,   300,   398,   138,   300,    79,   130,
+     357,   410,   358,   403,   135,   300,    75,    76,    77,   137,
+     311,   405,   201,   267,   268,   269,   270,   271,   272,   273,
+     274,   275,   276,   327,   143,   338,   339,   340,   226,   226,
      226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
-     226,   226,   226,   226,   -98,   119,   227,   285,   286,   201,
-     138,    33,   226,    34,   227,    35,   135,    36,    37,    38,
-     226,   219,   291,   292,   137,   311,   341,   342,   383,   343,
-     344,   143,   139,   221,   230,   232,   349,   350,   394,   243,
-     311,   237,   240,   311,   201,   400,   241,   244,   245,   248,
-     250,   311,   201,   251,   294,   261,   266,   201,   227,   311,
-     293,   295,   296,   297,   226,   409,   -35,   116,   304,   319,
-     313,   363,   315,   -30,   364,   359,   367,   373,   374,   300,
-     -36,   375,   111,   378,   379,   381,   382,   385,   395,   384,
-     402,   404,   412,   335,   352,   351,    79,   171,   353,   389,
-     354,   216,   220,   355,   397,   356,   318,   113,   406,   231,
-     366,   320,   388,   401,   118,   256,   115,   321,   305,   306,
-       0,   368,     0,   201,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     226,   226,   226,   226,   -98,   221,   227,   283,   284,   201,
+     285,   286,   226,   230,   227,   232,   345,   346,   347,   348,
+     226,   219,   122,   123,   124,   311,   291,   292,   383,   341,
+     342,   237,   139,   280,   281,   282,   349,   350,   394,   240,
+     311,   343,   344,   311,   201,   400,   241,   243,   244,   245,
+     250,   311,   201,   248,   251,   293,   261,   201,   227,   311,
+     266,   294,   296,   295,   226,   409,   297,   -35,   304,   313,
+     116,   315,   319,   -30,   373,   359,   363,   364,   367,   375,
+     300,   374,   378,   -36,   381,   171,   384,   379,   277,   382,
+     385,   395,   402,   404,   412,   351,   335,   389,   352,   397,
+     353,   356,   354,   216,   355,   220,   406,   318,   113,   366,
+     231,   401,   118,   320,   388,   256,   368,   115,     0,   305,
+     306,     0,     0,   201,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   321,     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,   201,     0,     0,   201,     0,     0,     0,     0,
@@ -1199,30 +1200,9 @@ 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,     0,     0,
-       0,   165,     0,     0,     0,     0,     0,   166,   167,   168,
-     169,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   170,   171,   172,    12,    13,    14,    15,    16,
-      17,   146,   147,   148,     0,   149,   150,   151,   152,   153,
-     154,   155,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,     0,    34,
-       0,    35,     0,    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,
-     156,   157,   158,   159,   160,   161,   162,     0,     0,   163,
-     164,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
-      76,    77,     0,    78,     0,     0,     0,     0,     0,     0,
-       0,     0,    79,     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,    80,     0,    81,     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,   165,     0,     0,     0,     0,     0,   166,   167,
      168,   169,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   170,   171,   255,    12,    13,    14,    15,
+       0,     0,     0,   170,   171,   172,    12,    13,    14,    15,
       16,    17,   146,   147,   148,     0,   149,   150,   151,   152,
      153,   154,   155,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,     0,
@@ -1239,32 +1219,11 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,    80,     0,    81,
        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,   165,     0,     0,     0,     0,     0,   166,
-     167,   168,   169,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   170,   171,   302,    12,    13,    14,
-      15,    16,    17,   146,   147,   148,     0,   149,   150,   151,
-     152,   153,   154,   155,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-       0,    34,     0,    35,     0,    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,   156,   157,   158,   159,   160,   161,   162,     0,
-       0,   163,   164,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      74,    75,    76,    77,     0,    78,     0,     0,     0,     0,
-       0,     0,     0,     0,    79,     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,    80,     0,
-      81,     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,   165,     0,     0,     0,     0,     0,
      166,   167,   168,   169,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   170,   171,   331,    12,    13,
+       0,     0,     0,     0,     0,   170,   171,   255,    12,    13,
       14,    15,    16,    17,   146,   147,   148,     0,   149,   150,
      151,   152,   153,   154,   155,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
@@ -1283,71 +1242,94 @@ static const yytype_int16 yytable[] =
        0,    81,     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,   165,     0,     0,     0,     0,
-       0,   166,   167,   168,   169,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   170,   171,    12,    13,
-      14,    15,    16,    17,   146,   147,   148,     0,   149,   390,
-     151,   152,   153,   154,   155,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,     0,    34,     0,    35,     0,    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,   156,   157,   158,   159,   160,   161,   162,
-       0,     0,   163,   164,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
+       0,     0,   166,   167,   168,   169,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   170,   171,   302,
+      12,    13,    14,    15,    16,    17,   146,   147,   148,     0,
+     149,   150,   151,   152,   153,   154,   155,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,     0,    34,     0,    35,     0,    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,   156,   157,   158,   159,   160,
+     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    74,    75,    76,    77,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
+       0,     0,     0,    74,    75,    76,    77,     0,    78,     0,
+       0,     0,     0,     0,     0,     0,     0,    79,     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,    80,
-       0,    81,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    80,     0,    81,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   165,     0,     0,     0,     0,
-       0,   166,   167,   168,   169,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   170,   117,    12,    13,
-      14,    15,    16,    17,   146,   147,   148,     0,   149,   390,
-     151,   152,   153,   154,   155,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,     0,    34,     0,    35,     0,    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,   156,   157,   158,   159,   160,   161,   162,
-       0,     0,   163,   164,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    74,    75,    76,    77,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   165,     0,
+       0,     0,     0,     0,   166,   167,   168,   169,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   170,
+     171,   331,    12,    13,    14,    15,    16,    17,   146,   147,
+     148,     0,   149,   150,   151,   152,   153,   154,   155,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,     0,    34,     0,    35,     0,
+      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,   156,   157,   158,
+     159,   160,   161,   162,     0,     0,   163,   164,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    74,    75,    76,    77,     0,
+      78,     0,     0,     0,     0,     0,     0,     0,     0,    79,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
-       0,    81,     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,   165,     0,     0,     0,     0,
-       0,   166,   167,   168,   169,    12,    13,    14,    15,    16,
-      17,     0,     0,     0,     0,     0,   170,   171,     0,     0,
-       0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,     0,    34,
-       0,    35,     0,    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,
-       0,   157,   158,   159,   160,   161,   162,     0,     0,   163,
-     164,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
-      76,    77,     0,    78,     0,     0,     0,     0,     0,     0,
-       0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    80,     0,    81,     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,    80,     0,    81,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     165,     0,     0,     0,     0,     0,   166,   167,   168,   169,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   170,   171,    12,    13,    14,    15,    16,    17,   146,
+     147,   148,     0,   149,   390,   151,   152,   153,   154,   155,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,     0,    34,     0,    35,
+       0,    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,   156,   157,
+     158,   159,   160,   161,   162,     0,     0,   163,   164,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    74,    75,    76,    77,
+       0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
+      79,     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,    80,     0,    81,     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,   165,     0,     0,     0,     0,     0,   166,   167,   168,
+     169,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   170,   117,    12,    13,    14,    15,    16,    17,
+     146,   147,   148,     0,   149,   390,   151,   152,   153,   154,
+     155,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,     0,    34,     0,
+      35,     0,    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,   156,
+     157,   158,   159,   160,   161,   162,     0,     0,   163,   164,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    74,    75,    76,
+      77,     0,    78,     0,     0,     0,     0,     0,     0,     0,
+       0,    79,     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,    80,     0,    81,     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,   165,     0,     0,     0,     0,     0,   166,   167,
      168,   169,    12,    13,    14,    15,    16,    17,     0,     0,
-       0,     0,     0,   170,     0,     0,     0,     0,     0,    18,
+       0,     0,     0,   170,   171,     0,     0,     0,     0,    18,
       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    32,    33,     0,    34,     0,    35,     0,
       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
@@ -1356,54 +1338,74 @@ static const yytype_int16 yytable[] =
       66,    67,    68,    69,    70,    71,    72,     0,   157,   158,
      159,   160,   161,   162,     0,     0,   163,   164,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   111,    75,    76,    77,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,
+       0,     0,     0,     0,     0,    74,    75,    76,    77,     0,
+      78,     0,     0,     0,     0,     0,     0,     0,     0,    79,
        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,    80,     0,    81,     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,   165,
-       0,     0,     0,     0,     0,   166,   167,   168,   169,    14,
-      15,    16,    17,     0,     0,     0,     0,     0,     0,     0,
-    -266,     0,     0,     0,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    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,     0,    73,     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,    75,    76,    77,     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,
+     165,     0,     0,     0,     0,     0,   166,   167,   168,   169,
+      12,    13,    14,    15,    16,    17,     0,     0,     0,     0,
+       0,   170,     0,     0,     0,     0,     0,    18,    19,    20,
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,    80,     0,
-      81,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      31,    32,    33,     0,    34,     0,    35,     0,    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,     0,    73,     0,     0,     0,
+      68,    69,    70,    71,    72,     0,   157,   158,   159,   160,
+     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   235,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,
-       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
+       0,     0,     0,   111,    75,    76,    77,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    79,     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,    80,     0,    81,     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,    30,    31,    32,     0,     0,     0,     0,     0,
-       0,    80,     0,    81,    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,     0,   157,
-     158,   159,   160,   161,   162,     0,     0,   163,   164,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     314,     0,     0,     0,     0,     0,     0,    75,    76,    77,
+       0,     0,     0,     0,     0,     0,     0,     0,   165,     0,
+       0,     0,     0,     0,   166,   167,   168,   169,    14,    15,
+      16,    17,     0,     0,     0,     0,     0,     0,     0,  -266,
+       0,     0,     0,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    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,     0,    73,     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,
+      75,    76,    77,     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,    30,    31,
+      32,     0,     0,     0,     0,     0,     0,    80,     0,    81,
+      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,     0,    73,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   235,     0,     0,
+       0,     0,     0,    75,    76,    77,     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,    30,    31,    32,     0,     0,     0,     0,     0,     0,
+      80,     0,    81,    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,     0,   157,   158,
+     159,   160,   161,   162,     0,     0,   163,   164,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    80,     0,    81,     0,     0,     0,
+     314,     0,     0,     0,     0,     0,    75,    76,    77,     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,    80,     0,    81,     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,
@@ -1426,196 +1428,196 @@ static const yytype_int16 yytable[] =
        0,    80,     0,    81,     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,   165,     0,     0,
-       0,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    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,     0,   157,   158,   159,   160,
-     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    14,    15,    16,    17,     0,   165,     0,
+       0,     0,     0,     0,   166,   167,   168,   169,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    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,     0,   157,   158,   159,
+     160,   161,   162,     0,     0,   163,   164,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    75,    76,    77,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    80,     0,    81,     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,   165,     0,     0,
-     225,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    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,     0,   157,   158,   159,   160,
-     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
+       0,     0,    80,     0,    81,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    14,    15,    16,    17,     0,   165,
+       0,     0,   225,     0,     0,   166,   167,   168,   169,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    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,     0,   157,   158,
+     159,   160,   161,   162,     0,     0,   163,   164,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    75,    76,    77,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    80,     0,    81,     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,   165,     0,     0,
-     309,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    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,     0,   157,   158,   159,   160,
-     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     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,    80,     0,    81,     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,    80,     0,    81,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
+     165,     0,     0,   309,     0,     0,   166,   167,   168,   169,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    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,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,   163,   164,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    75,    76,    77,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    14,    15,    16,    17,     0,   165,     0,     0,
-     360,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    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,     0,   157,   158,   159,   160,
-     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     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,    80,     0,    81,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    80,     0,    81,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    14,    15,    16,    17,
+       0,   165,     0,     0,   360,     0,     0,   166,   167,   168,
+     169,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    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,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,   163,   164,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    75,    76,
+      77,     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,   165,     0,     0,
-       0,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    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,   264,     0,   157,   158,   159,   160,
-     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    80,     0,    81,     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,   165,     0,     0,     0,     0,     0,   166,   167,
+     168,   169,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    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,   264,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,   163,
+     164,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
+      76,    77,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    80,     0,    81,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    -3,     0,     0,
-      12,    13,    14,    15,    16,    17,     0,   165,     0,     0,
-       0,     0,     0,   166,   167,   168,   169,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,     0,    34,     0,    35,     0,    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,     0,    73,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    80,     0,    81,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    74,    75,    76,    77,     0,    78,     0,
-       0,     0,     0,     0,     0,     0,     0,    79,    12,    13,
-      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,    30,    31,    32,
-      33,    80,    34,    81,    35,     0,    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,     0,    73,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    -3,     0,     0,    12,    13,    14,    15,
+      16,    17,     0,   165,     0,     0,     0,     0,     0,   166,
+     167,   168,   169,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,     0,
+      34,     0,    35,     0,    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,     0,    73,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    74,    75,    76,    77,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,     0,    79,    14,    15,    16,    17,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    74,
+      75,    76,    77,     0,    78,     0,     0,     0,     0,     0,
+       0,     0,     0,    79,    12,    13,    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,    30,    31,    32,     0,     0,     0,    80,
-       0,    81,     0,     0,     0,    39,    40,    41,    42,    43,
+      27,    28,    29,    30,    31,    32,    33,    80,    34,    81,
+      35,     0,    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,     0,
-     334,     0,     0,     0,     0,   162,     0,     0,     0,     0,
+      73,     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,    75,    76,
-      77,     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,    30,    31,    32,     0,
-       0,     0,     0,     0,     0,    80,     0,    81,    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,     0,    73,     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,    75,    76,    77,     0,     0,     0,     0,     0,     0,
-       0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    74,    75,    76,
+      77,     0,    78,     0,     0,     0,     0,     0,     0,     0,
+       0,    79,    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,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,    80,     0,
-      81,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      31,    32,     0,     0,     0,    80,     0,    81,     0,     0,
+       0,    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,     0,    73,     0,     0,     0,
+      68,    69,    70,    71,    72,     0,   334,     0,     0,     0,
+       0,   162,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    75,    76,    77,     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,    30,    31,    32,     0,     0,     0,     0,     0,
+       0,    80,     0,    81,    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,     0,    73,
        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,    75,    76,    77,
+       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,    30,    31,    32,     0,     0,
+       0,     0,     0,     0,    80,     0,    81,    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,     0,    73,     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,    80,     0,    81
+       0,     0,     0,     0,     0,     0,     0,    80,     0,    81
 };
 
 static const yytype_int16 yycheck[] =
 {
-       9,    79,   223,   152,   251,   154,    94,     4,    89,    90,
-      79,     3,     4,   140,   192,     9,   165,   148,     9,    87,
-      88,   371,     4,   195,   135,   100,   195,   112,   195,    81,
-     135,    36,   210,   181,    74,    40,     0,   209,   113,    36,
-      37,    38,   211,    35,   211,    37,   308,    39,    79,    41,
-      42,    43,   402,    93,    36,    37,    38,   117,   163,   164,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     195,   111,   371,    82,   195,   322,   224,   208,   190,   184,
-     192,   195,   374,   113,   209,    94,   307,    79,    82,   116,
-     211,    82,   191,   385,   315,   244,   195,   211,   210,   248,
-     109,   363,   251,   402,   231,    36,    37,   190,   117,    40,
-     259,   410,   223,   412,   106,   263,   378,   126,   223,   381,
-     208,   190,   203,   204,   192,   256,   194,   389,   120,   138,
-     278,   140,   191,   191,   212,   397,   195,   195,   359,   148,
-     191,   191,   191,   191,   195,   195,   195,   195,   211,   212,
-     299,   195,   300,   287,   288,   289,   290,   107,   108,   109,
-     308,    79,   171,    36,    37,    38,   200,   201,   202,     3,
-       4,   196,   197,   322,   210,   280,   281,   282,   283,   284,
+       9,    79,   223,   152,    94,   154,     4,    89,    90,    79,
+     140,     3,     4,   251,   374,     9,   165,   148,    87,    88,
+       9,   371,     4,   193,   135,   385,   371,    74,   196,   100,
+     135,     3,     4,   181,   196,   212,   213,   196,    36,    37,
+      38,   211,   113,    35,   212,    37,    93,    39,   210,    41,
+      42,    43,   402,   212,    36,    37,    38,   402,   163,   164,
+     410,   112,   412,    35,   111,    37,    81,    39,   196,    41,
+      42,    43,   308,    82,   196,   196,   224,   208,   191,   184,
+     193,     0,   210,   117,   322,    94,   307,    79,    82,   113,
+     212,   212,    36,    82,   315,   244,    40,   116,   211,   248,
+     109,   231,   251,   192,    79,    36,    37,   196,   117,    40,
+     259,   191,   223,   192,   106,   263,   192,   126,   223,   209,
+     196,   191,   204,   205,   193,   256,   195,   363,   120,   138,
+     278,   140,   192,   192,   106,   213,   196,   196,   359,   148,
+     192,   196,   378,   192,   196,   381,   213,   196,   120,    79,
+     299,   192,   300,   389,   193,   196,   107,   108,   109,    79,
+     308,   397,   171,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   322,    79,   280,   281,   282,   283,   284,
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   191,   191,   307,    85,    86,   208,
-     212,    35,   307,    37,   315,    39,   192,    41,    42,    43,
-     315,   220,    91,    92,    79,   363,   283,   284,   367,   285,
-     286,    79,   231,    79,   117,    79,   291,   292,   376,   190,
-     378,   211,   211,   381,   243,   384,   211,   190,   211,   190,
-     209,   389,   251,   190,   206,   191,   190,   256,   359,   397,
-     205,   207,    93,    95,   359,   404,   190,   211,    79,    78,
-     193,   210,   192,   191,   193,   192,   190,    79,   191,   195,
-     190,   193,   106,   210,   193,   210,   193,   191,   193,   211,
-      12,   190,    12,   260,   294,   293,   120,   212,   295,   210,
-     296,   120,   127,   297,   210,   298,   239,    78,   211,   138,
-     316,   243,   372,   385,    84,   171,    82,   243,   220,   220,
-      -1,   322,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     295,   296,   297,   298,   192,    79,   307,   197,   198,   208,
+      85,    86,   307,   117,   315,    79,   287,   288,   289,   290,
+     315,   220,    36,    37,    38,   363,    91,    92,   367,   283,
+     284,   212,   231,   201,   202,   203,   291,   292,   376,   212,
+     378,   285,   286,   381,   243,   384,   212,   191,   191,   212,
+     210,   389,   251,   191,   191,   206,   192,   256,   359,   397,
+     191,   207,    93,   208,   359,   404,    95,   191,    79,   194,
+     212,   193,    78,   192,    79,   193,   211,   194,   191,   194,
+     196,   192,   211,   191,   211,   213,   212,   194,   211,   194,
+     192,   194,    12,   191,    12,   293,   260,   211,   294,   211,
+     295,   298,   296,   120,   297,   127,   212,   239,    78,   316,
+     138,   385,    84,   243,   372,   171,   322,    82,    -1,   220,
+     220,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   243,    -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,   371,    -1,    -1,   374,    -1,    -1,    -1,    -1,
@@ -1641,30 +1643,9 @@ 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,    -1,    -1,
-      -1,   190,    -1,    -1,    -1,    -1,    -1,   196,   197,   198,
-     199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   211,   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,    35,    -1,    37,
-      -1,    39,    -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,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    84,    -1,    -1,    87,
-      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,
-     108,   109,    -1,   111,    -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,    -1,    -1,
-      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,   197,
-     198,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   211,   212,   213,     3,     4,     5,     6,
+      -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,    13,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    -1,
@@ -1683,30 +1664,9 @@ 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,    -1,    -1,
-      -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,
-     197,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   211,   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,    35,
-      -1,    37,    -1,    39,    -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,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
-      -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     106,   107,   108,   109,    -1,   111,    -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,
-      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
-     196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   211,   212,   213,     3,     4,
+      -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,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
@@ -1725,133 +1685,114 @@ static const yytype_int16 yycheck[] =
       -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,   190,    -1,    -1,    -1,    -1,
-      -1,   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   211,   212,     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,
-      35,    -1,    37,    -1,    39,    -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,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   106,   107,   108,   109,    -1,   111,    -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,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,
-      -1,   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   211,   212,     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,
-      35,    -1,    37,    -1,    39,    -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,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   106,   107,   108,   109,    -1,   111,    -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,   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,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,
-      -1,   196,   197,   198,   199,     3,     4,     5,     6,     7,
-       8,    -1,    -1,    -1,    -1,    -1,   211,   212,    -1,    -1,
-      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    -1,    37,
-      -1,    39,    -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,    75,    76,    77,
-      -1,    79,    80,    81,    82,    83,    84,    -1,    -1,    87,
-      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,
-     108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   106,   107,   108,   109,    -1,   111,    -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,   154,    -1,   156,    -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,   190,    -1,    -1,    -1,    -1,    -1,   196,   197,
-     198,   199,     3,     4,     5,     6,     7,     8,    -1,    -1,
-      -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    20,
+      -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,    13,    14,    15,    16,    17,    18,    19,    20,
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
       31,    32,    33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    80,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
       81,    82,    83,    84,    -1,    -1,    87,    88,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,   106,   107,   108,   109,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
+     111,    -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,    -1,    -1,    -1,    -1,   190,
-      -1,    -1,    -1,    -1,    -1,   196,   197,   198,   199,     5,
-       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     211,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    79,    -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,   107,   108,   109,    -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,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
-     156,    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,    -1,    79,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   213,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
-      -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,    -1,    -1,    -1,    -1,
-      -1,   154,    -1,   156,    44,    45,    46,    47,    48,    49,
+      30,    31,    32,    33,    34,    35,    -1,    37,    -1,    39,
+      -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,    75,    76,    77,    -1,    79,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
       80,    81,    82,    83,    84,    -1,    -1,    87,    88,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     213,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
+      -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108,   109,
+      -1,   111,    -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,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,   156,    -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,    35,    -1,    37,    -1,
+      39,    -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,    75,    76,    77,    78,
+      79,    80,    81,    82,    83,    84,    -1,    -1,    87,    88,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108,
+     109,    -1,   111,    -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,
-     190,    -1,    -1,    -1,    -1,    -1,   196,   197,   198,   199,
+      -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,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    80,
+      81,    82,    83,    84,    -1,    -1,    87,    88,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   106,   107,   108,   109,    -1,
+     111,    -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,    -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,   211,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
+      -1,   212,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
       33,    34,    35,    -1,    37,    -1,    39,    -1,    41,    42,
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
@@ -1868,206 +1809,268 @@ static const yytype_int16 yycheck[] =
       -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,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
+      -1,    -1,    -1,    -1,   197,   198,   199,   200,     5,     6,
+       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,
+      -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    79,    -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,
+     107,   108,   109,    -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,    32,    33,
+      34,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,
+      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,    -1,    79,    -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,   107,   108,   109,    -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,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    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,    -1,    79,    80,
+      81,    82,    83,    84,    -1,    -1,    87,    88,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     214,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -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,    -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,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    80,    81,    82,
       83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   106,   107,   108,   109,    -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,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    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,    -1,    79,    80,    81,    82,
-      83,    84,    -1,    -1,    87,    88,    -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,
+      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    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,    -1,    79,    80,    81,
+      82,    83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -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,   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,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    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,    -1,    79,    80,    81,    82,
-      83,    84,    -1,    -1,    87,    88,    -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,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    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,    -1,    79,    80,
+      81,    82,    83,    84,    -1,    -1,    87,    88,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -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,   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,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    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,    -1,    79,    80,    81,    82,
-      83,    84,    -1,    -1,    87,    88,    -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,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    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,    -1,    79,
+      80,    81,    82,    83,    84,    -1,    -1,    87,    88,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
       -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,   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,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    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,    -1,    79,    80,    81,    82,
-      83,    84,    -1,    -1,    87,    88,    -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,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    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,    -1,
+      79,    80,    81,    82,    83,    84,    -1,    -1,    87,    88,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,
+     109,    -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,   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,     0,    -1,    -1,
-       3,     4,     5,     6,     7,     8,    -1,   190,    -1,    -1,
-      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    -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,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    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,
+      -1,    79,    80,    81,    82,    83,    84,    -1,    -1,    87,
+      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
+     108,   109,    -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,   106,   107,   108,   109,    -1,   111,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,     3,     4,
-       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,    32,    33,    34,
-      35,   154,    37,   156,    39,    -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,
-      75,    76,    77,    -1,    79,    -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,   106,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   120,     5,     6,     7,     8,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     0,    -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,    35,    -1,
+      37,    -1,    39,    -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,    75,    76,
+      77,    -1,    79,    -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,   106,
+     107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   120,     3,     4,     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,    32,    33,    34,    -1,    -1,    -1,   154,
-      -1,   156,    -1,    -1,    -1,    44,    45,    46,    47,    48,
+      29,    30,    31,    32,    33,    34,    35,   154,    37,   156,
+      39,    -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,    75,    76,    77,    -1,
-      79,    -1,    -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,
+      79,    -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,   107,   108,
-     109,    -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,    32,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    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,    -1,    79,    -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,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108,
+     109,    -1,   111,    -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,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
-     156,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      33,    34,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,
+      -1,    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,    -1,    79,    -1,    -1,    -1,
+      -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   107,   108,   109,    -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,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
+      -1,   154,    -1,   156,    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,    -1,    79,
+      -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,   107,   108,   109,
+      -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,    32,    33,    34,    -1,    -1,
+      -1,    -1,    -1,    -1,   154,    -1,   156,    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,    -1,    79,    -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
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   112,   215,   217,    81,     0,   218,   117,   113,   216,
-     219,    79,     3,     4,     5,     6,     7,     8,    20,    21,
+       0,   112,   216,   218,    81,     0,   219,   117,   113,   217,
+     220,    79,     3,     4,     5,     6,     7,     8,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    37,    39,    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,    79,   106,   107,   108,   109,   111,   120,
-     154,   156,   220,   250,   251,   252,   253,   254,   259,   260,
-     261,   262,   263,   266,   268,   269,   270,   271,   272,   273,
-     274,   275,   301,   302,   116,    36,    37,    40,    79,   212,
-      79,   106,   268,   274,   190,   301,   211,   212,   288,   191,
-     195,     4,    36,    37,    38,   256,   257,   267,   195,   211,
-      79,    36,    40,   268,   270,   192,   271,    79,   212,   270,
-     276,   277,   271,    79,   264,   265,     9,    10,    11,    13,
+     154,   156,   221,   251,   252,   253,   254,   255,   260,   261,
+     262,   263,   264,   267,   269,   270,   271,   272,   273,   274,
+     275,   276,   302,   303,   116,    36,    37,    40,    79,   213,
+      79,   106,   269,   275,   191,   302,   212,   213,   289,   192,
+     196,     4,    36,    37,    38,   257,   258,   268,   196,   212,
+      79,    36,    40,   269,   271,   193,   272,    79,   213,   271,
+     277,   278,   272,    79,   265,   266,     9,    10,    11,    13,
       14,    15,    16,    17,    18,    19,    78,    79,    80,    81,
-      82,    83,    84,    87,    88,   190,   196,   197,   198,   199,
-     211,   212,   213,   221,   222,   223,   225,   226,   227,   228,
-     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
-     239,   240,   241,   242,   243,   244,   245,   246,   248,   250,
-     251,   270,   281,   282,   283,   284,   285,   286,   289,   290,
-     291,   292,   294,   295,   296,   300,   256,   255,   258,   270,
-     257,    79,   190,   192,   210,   193,   232,   245,   249,   270,
-     117,   276,    79,   278,   279,   213,   277,   211,   191,   195,
-     211,   211,   282,   190,   190,   211,   211,   248,   190,   248,
-     209,   190,   232,   232,   248,   213,   289,    87,    88,   192,
-     194,   191,   191,   195,    77,   246,   190,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,   105,   210,   247,   232,
-     200,   201,   202,   196,   197,    85,    86,    89,    90,   203,
-     204,    91,    92,   205,   206,   207,    93,    95,    94,   208,
-     195,   211,   213,   282,    79,   255,   258,   192,   210,   193,
-     249,   246,   280,   193,   213,   192,   195,   211,   265,    78,
-     281,   290,   297,   248,   211,   248,   209,   248,   261,   293,
-     191,   213,   224,   248,    79,   227,   246,   246,   232,   232,
-     232,   234,   234,   235,   235,   236,   236,   236,   236,   237,
-     237,   238,   239,   240,   241,   242,   243,   248,   246,   192,
-     193,   249,   280,   210,   193,   249,   279,   190,   293,   298,
-     299,   191,   191,    79,   191,   193,   209,   249,   210,   193,
-     280,   210,   193,   248,   211,   191,   283,   284,   286,   210,
-      14,   285,   287,   288,   246,   193,   280,   210,   280,   191,
-     248,   287,    12,   280,   190,   280,   211,   283,   284,   248,
-     191,   283,    12
+      82,    83,    84,    87,    88,   191,   197,   198,   199,   200,
+     212,   213,   214,   222,   223,   224,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   249,   251,
+     252,   271,   282,   283,   284,   285,   286,   287,   290,   291,
+     292,   293,   295,   296,   297,   301,   257,   256,   259,   271,
+     258,    79,   191,   193,   211,   194,   233,   246,   250,   271,
+     117,   277,    79,   279,   280,   214,   278,   212,   192,   196,
+     212,   212,   283,   191,   191,   212,   212,   249,   191,   249,
+     210,   191,   233,   233,   249,   214,   290,    87,    88,   193,
+     195,   192,   192,   196,    77,   247,   191,    96,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   211,   248,   233,
+     201,   202,   203,   197,   198,    85,    86,    89,    90,   204,
+     205,    91,    92,   206,   207,   208,    93,    95,    94,   209,
+     196,   212,   214,   283,    79,   256,   259,   193,   211,   194,
+     250,   247,   281,   194,   214,   193,   196,   212,   266,    78,
+     282,   291,   298,   249,   212,   249,   210,   249,   262,   294,
+     192,   214,   225,   249,    79,   228,   247,   247,   233,   233,
+     233,   235,   235,   236,   236,   237,   237,   237,   237,   238,
+     238,   239,   240,   241,   242,   243,   244,   249,   247,   193,
+     194,   250,   281,   211,   194,   250,   280,   191,   294,   299,
+     300,   192,   192,    79,   192,   194,   210,   250,   211,   194,
+     281,   211,   194,   249,   212,   192,   284,   285,   287,   211,
+      14,   286,   288,   289,   247,   194,   281,   211,   281,   192,
+     249,   288,    12,   281,   191,   281,   212,   284,   285,   249,
+     192,   284,    12
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2749,7 +2752,7 @@ YYLTYPE yylloc;
 }
 
 /* Line 1242 of yacc.c  */
-#line 2753 "glsl_parser.cpp"
+#line 2756 "glsl_parser.cpp"
   yylsp[0] = yylloc;
 
   goto yysetstate;
@@ -2937,7 +2940,7 @@ yyreduce:
         case 2:
 
 /* Line 1455 of yacc.c  */
-#line 208 "glsl_parser.ypp"
+#line 210 "glsl_parser.ypp"
     {
           _mesa_glsl_initialize_types(state);
        ;}
@@ -2946,7 +2949,7 @@ yyreduce:
   case 4:
 
 /* Line 1455 of yacc.c  */
-#line 216 "glsl_parser.ypp"
+#line 218 "glsl_parser.ypp"
     {
           state->language_version = 110;
        ;}
@@ -2955,7 +2958,7 @@ yyreduce:
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 220 "glsl_parser.ypp"
+#line 222 "glsl_parser.ypp"
     {
           switch ((yyvsp[(2) - (3)].n)) {
           case 110:
@@ -2975,7 +2978,7 @@ yyreduce:
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 243 "glsl_parser.ypp"
+#line 245 "glsl_parser.ypp"
     {
           if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
              YYERROR;
@@ -2986,7 +2989,7 @@ yyreduce:
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 252 "glsl_parser.ypp"
+#line 254 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -2999,7 +3002,7 @@ yyreduce:
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 260 "glsl_parser.ypp"
+#line 262 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -3012,7 +3015,7 @@ yyreduce:
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 275 "glsl_parser.ypp"
+#line 277 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
@@ -3024,7 +3027,7 @@ yyreduce:
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 282 "glsl_parser.ypp"
+#line 284 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
@@ -3036,7 +3039,7 @@ yyreduce:
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 289 "glsl_parser.ypp"
+#line 291 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
@@ -3048,7 +3051,7 @@ yyreduce:
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 296 "glsl_parser.ypp"
+#line 298 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
@@ -3060,7 +3063,7 @@ yyreduce:
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 303 "glsl_parser.ypp"
+#line 305 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
@@ -3072,7 +3075,7 @@ yyreduce:
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 310 "glsl_parser.ypp"
+#line 312 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(2) - (3)].expression);
        ;}
@@ -3081,7 +3084,7 @@ yyreduce:
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 318 "glsl_parser.ypp"
+#line 320 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
@@ -3092,7 +3095,7 @@ yyreduce:
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 324 "glsl_parser.ypp"
+#line 326 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
@@ -3101,7 +3104,7 @@ yyreduce:
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 328 "glsl_parser.ypp"
+#line 330 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
@@ -3113,7 +3116,7 @@ yyreduce:
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 335 "glsl_parser.ypp"
+#line 337 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3124,7 +3127,7 @@ yyreduce:
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 341 "glsl_parser.ypp"
+#line 343 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3135,7 +3138,7 @@ yyreduce:
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 359 "glsl_parser.ypp"
+#line 361 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3146,7 +3149,7 @@ yyreduce:
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 378 "glsl_parser.ypp"
+#line 380 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (2)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3157,7 +3160,7 @@ yyreduce:
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 384 "glsl_parser.ypp"
+#line 386 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (3)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3168,7 +3171,7 @@ yyreduce:
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 400 "glsl_parser.ypp"
+#line 402 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
@@ -3179,7 +3182,7 @@ yyreduce:
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 406 "glsl_parser.ypp"
+#line 408 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3191,7 +3194,7 @@ yyreduce:
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 413 "glsl_parser.ypp"
+#line 415 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3203,7 +3206,7 @@ yyreduce:
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 425 "glsl_parser.ypp"
+#line 427 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3214,7 +3217,7 @@ yyreduce:
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 431 "glsl_parser.ypp"
+#line 433 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3225,7 +3228,7 @@ yyreduce:
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 437 "glsl_parser.ypp"
+#line 439 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3236,35 +3239,35 @@ yyreduce:
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 446 "glsl_parser.ypp"
+#line 448 "glsl_parser.ypp"
     { (yyval.n) = ast_plus; ;}
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 447 "glsl_parser.ypp"
+#line 449 "glsl_parser.ypp"
     { (yyval.n) = ast_neg; ;}
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 448 "glsl_parser.ypp"
+#line 450 "glsl_parser.ypp"
     { (yyval.n) = ast_logic_not; ;}
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 449 "glsl_parser.ypp"
+#line 451 "glsl_parser.ypp"
     { (yyval.n) = ast_bit_not; ;}
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 455 "glsl_parser.ypp"
+#line 457 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3275,7 +3278,7 @@ yyreduce:
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 461 "glsl_parser.ypp"
+#line 463 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3286,7 +3289,7 @@ yyreduce:
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 467 "glsl_parser.ypp"
+#line 469 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3297,7 +3300,7 @@ yyreduce:
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 477 "glsl_parser.ypp"
+#line 479 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3308,7 +3311,7 @@ yyreduce:
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 483 "glsl_parser.ypp"
+#line 485 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3319,7 +3322,7 @@ yyreduce:
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 493 "glsl_parser.ypp"
+#line 495 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3330,7 +3333,7 @@ yyreduce:
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 499 "glsl_parser.ypp"
+#line 501 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3341,7 +3344,7 @@ yyreduce:
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 509 "glsl_parser.ypp"
+#line 511 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3352,7 +3355,7 @@ yyreduce:
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 515 "glsl_parser.ypp"
+#line 517 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3363,7 +3366,7 @@ yyreduce:
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 521 "glsl_parser.ypp"
+#line 523 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3374,7 +3377,7 @@ yyreduce:
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 527 "glsl_parser.ypp"
+#line 529 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3385,7 +3388,7 @@ yyreduce:
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 537 "glsl_parser.ypp"
+#line 539 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3396,7 +3399,7 @@ yyreduce:
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 543 "glsl_parser.ypp"
+#line 545 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3407,7 +3410,7 @@ yyreduce:
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 553 "glsl_parser.ypp"
+#line 555 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3418,7 +3421,7 @@ yyreduce:
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 563 "glsl_parser.ypp"
+#line 565 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3429,7 +3432,7 @@ yyreduce:
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 573 "glsl_parser.ypp"
+#line 575 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3440,7 +3443,7 @@ yyreduce:
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 583 "glsl_parser.ypp"
+#line 585 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3451,7 +3454,7 @@ yyreduce:
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 593 "glsl_parser.ypp"
+#line 595 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3462,7 +3465,7 @@ yyreduce:
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 603 "glsl_parser.ypp"
+#line 605 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3473,7 +3476,7 @@ yyreduce:
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 613 "glsl_parser.ypp"
+#line 615 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
@@ -3484,7 +3487,7 @@ yyreduce:
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 623 "glsl_parser.ypp"
+#line 625 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3495,84 +3498,84 @@ yyreduce:
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 631 "glsl_parser.ypp"
+#line 633 "glsl_parser.ypp"
     { (yyval.n) = ast_assign; ;}
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 632 "glsl_parser.ypp"
+#line 634 "glsl_parser.ypp"
     { (yyval.n) = ast_mul_assign; ;}
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 633 "glsl_parser.ypp"
+#line 635 "glsl_parser.ypp"
     { (yyval.n) = ast_div_assign; ;}
     break;
 
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 634 "glsl_parser.ypp"
+#line 636 "glsl_parser.ypp"
     { (yyval.n) = ast_mod_assign; ;}
     break;
 
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 635 "glsl_parser.ypp"
+#line 637 "glsl_parser.ypp"
     { (yyval.n) = ast_add_assign; ;}
     break;
 
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 636 "glsl_parser.ypp"
+#line 638 "glsl_parser.ypp"
     { (yyval.n) = ast_sub_assign; ;}
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 637 "glsl_parser.ypp"
+#line 639 "glsl_parser.ypp"
     { (yyval.n) = ast_ls_assign; ;}
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 638 "glsl_parser.ypp"
+#line 640 "glsl_parser.ypp"
     { (yyval.n) = ast_rs_assign; ;}
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 639 "glsl_parser.ypp"
+#line 641 "glsl_parser.ypp"
     { (yyval.n) = ast_and_assign; ;}
     break;
 
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 640 "glsl_parser.ypp"
+#line 642 "glsl_parser.ypp"
     { (yyval.n) = ast_xor_assign; ;}
     break;
 
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 641 "glsl_parser.ypp"
+#line 643 "glsl_parser.ypp"
     { (yyval.n) = ast_or_assign; ;}
     break;
 
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 646 "glsl_parser.ypp"
+#line 648 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
@@ -3581,7 +3584,7 @@ yyreduce:
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 650 "glsl_parser.ypp"
+#line 652 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
@@ -3599,7 +3602,7 @@ yyreduce:
   case 94:
 
 /* Line 1455 of yacc.c  */
-#line 670 "glsl_parser.ypp"
+#line 672 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].function);
        ;}
@@ -3608,7 +3611,7 @@ yyreduce:
   case 95:
 
 /* Line 1455 of yacc.c  */
-#line 674 "glsl_parser.ypp"
+#line 676 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
        ;}
@@ -3617,7 +3620,7 @@ yyreduce:
   case 96:
 
 /* Line 1455 of yacc.c  */
-#line 678 "glsl_parser.ypp"
+#line 680 "glsl_parser.ypp"
     {
           if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
               && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
@@ -3633,7 +3636,7 @@ yyreduce:
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 701 "glsl_parser.ypp"
+#line 703 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (2)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
@@ -3643,7 +3646,7 @@ yyreduce:
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 706 "glsl_parser.ypp"
+#line 708 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (3)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
@@ -3653,7 +3656,7 @@ yyreduce:
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 714 "glsl_parser.ypp"
+#line 716 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function) = new(ctx) ast_function();
@@ -3666,7 +3669,7 @@ yyreduce:
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 725 "glsl_parser.ypp"
+#line 727 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3681,7 +3684,7 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 735 "glsl_parser.ypp"
+#line 737 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3698,7 +3701,7 @@ yyreduce:
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 750 "glsl_parser.ypp"
+#line 752 "glsl_parser.ypp"
     {
           (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
 
@@ -3710,7 +3713,7 @@ yyreduce:
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 757 "glsl_parser.ypp"
+#line 759 "glsl_parser.ypp"
     {
           (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
           (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q;
@@ -3720,7 +3723,7 @@ yyreduce:
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 762 "glsl_parser.ypp"
+#line 764 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
@@ -3736,7 +3739,7 @@ yyreduce:
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 773 "glsl_parser.ypp"
+#line 775 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3750,35 +3753,35 @@ yyreduce:
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 784 "glsl_parser.ypp"
+#line 786 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; ;}
     break;
 
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 785 "glsl_parser.ypp"
+#line 787 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 786 "glsl_parser.ypp"
+#line 788 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 787 "glsl_parser.ypp"
+#line 789 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 797 "glsl_parser.ypp"
+#line 799 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
@@ -3792,7 +3795,7 @@ yyreduce:
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 806 "glsl_parser.ypp"
+#line 808 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
@@ -3806,7 +3809,7 @@ yyreduce:
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 815 "glsl_parser.ypp"
+#line 817 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
@@ -3820,7 +3823,7 @@ yyreduce:
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 824 "glsl_parser.ypp"
+#line 826 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
@@ -3834,7 +3837,7 @@ yyreduce:
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 833 "glsl_parser.ypp"
+#line 835 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
@@ -3848,7 +3851,7 @@ yyreduce:
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 842 "glsl_parser.ypp"
+#line 844 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
@@ -3862,7 +3865,7 @@ yyreduce:
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 855 "glsl_parser.ypp"
+#line 857 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
@@ -3878,7 +3881,7 @@ yyreduce:
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 866 "glsl_parser.ypp"
+#line 868 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3892,7 +3895,7 @@ yyreduce:
   case 123:
 
 /* Line 1455 of yacc.c  */
-#line 875 "glsl_parser.ypp"
+#line 877 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
@@ -3906,7 +3909,7 @@ yyreduce:
   case 124:
 
 /* Line 1455 of yacc.c  */
-#line 884 "glsl_parser.ypp"
+#line 886 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
@@ -3920,7 +3923,7 @@ yyreduce:
   case 125:
 
 /* Line 1455 of yacc.c  */
-#line 893 "glsl_parser.ypp"
+#line 895 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
@@ -3934,7 +3937,7 @@ yyreduce:
   case 126:
 
 /* Line 1455 of yacc.c  */
-#line 902 "glsl_parser.ypp"
+#line 904 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
@@ -3948,7 +3951,7 @@ yyreduce:
   case 127:
 
 /* Line 1455 of yacc.c  */
-#line 911 "glsl_parser.ypp"
+#line 913 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -3962,7 +3965,7 @@ yyreduce:
   case 128:
 
 /* Line 1455 of yacc.c  */
-#line 920 "glsl_parser.ypp"
+#line 922 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3978,7 +3981,7 @@ yyreduce:
   case 129:
 
 /* Line 1455 of yacc.c  */
-#line 934 "glsl_parser.ypp"
+#line 936 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3990,7 +3993,7 @@ yyreduce:
   case 130:
 
 /* Line 1455 of yacc.c  */
-#line 941 "glsl_parser.ypp"
+#line 943 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -4003,14 +4006,14 @@ yyreduce:
   case 131:
 
 /* Line 1455 of yacc.c  */
-#line 951 "glsl_parser.ypp"
+#line 953 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; ;}
     break;
 
   case 133:
 
 /* Line 1455 of yacc.c  */
-#line 957 "glsl_parser.ypp"
+#line 959 "glsl_parser.ypp"
     {
          (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
        ;}
@@ -4019,7 +4022,7 @@ yyreduce:
   case 135:
 
 /* Line 1455 of yacc.c  */
-#line 965 "glsl_parser.ypp"
+#line 967 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyvsp[(3) - (3)].type_qualifier).i;
        ;}
@@ -4028,7 +4031,7 @@ yyreduce:
   case 136:
 
 /* Line 1455 of yacc.c  */
-#line 972 "glsl_parser.ypp"
+#line 974 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = 0;
 
@@ -4064,35 +4067,35 @@ yyreduce:
   case 137:
 
 /* Line 1455 of yacc.c  */
-#line 1005 "glsl_parser.ypp"
+#line 1007 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;}
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 1006 "glsl_parser.ypp"
+#line 1008 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;}
     break;
 
   case 139:
 
 /* Line 1455 of yacc.c  */
-#line 1007 "glsl_parser.ypp"
+#line 1009 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1; ;}
     break;
 
   case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1011 "glsl_parser.ypp"
+#line 1013 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
     break;
 
   case 142:
 
 /* Line 1455 of yacc.c  */
-#line 1017 "glsl_parser.ypp"
+#line 1019 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyvsp[(2) - (2)].type_qualifier).i;
        ;}
@@ -4101,7 +4104,7 @@ yyreduce:
   case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1021 "glsl_parser.ypp"
+#line 1023 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
           (yyval.type_qualifier).q.invariant = 1;
@@ -4111,70 +4114,70 @@ yyreduce:
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1028 "glsl_parser.ypp"
+#line 1030 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
     break;
 
   case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1029 "glsl_parser.ypp"
+#line 1031 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;}
     break;
 
   case 146:
 
 /* Line 1455 of yacc.c  */
-#line 1030 "glsl_parser.ypp"
+#line 1032 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.type_qualifier).q.varying = 1; ;}
     break;
 
   case 147:
 
 /* Line 1455 of yacc.c  */
-#line 1031 "glsl_parser.ypp"
+#line 1033 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.varying = 1; ;}
     break;
 
   case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1032 "glsl_parser.ypp"
+#line 1034 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
   case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1033 "glsl_parser.ypp"
+#line 1035 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
   case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1034 "glsl_parser.ypp"
+#line 1036 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
   case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1035 "glsl_parser.ypp"
+#line 1037 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
   case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1036 "glsl_parser.ypp"
+#line 1038 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;}
     break;
 
   case 154:
 
 /* Line 1455 of yacc.c  */
-#line 1042 "glsl_parser.ypp"
+#line 1044 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
           (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
@@ -4184,7 +4187,7 @@ yyreduce:
   case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1051 "glsl_parser.ypp"
+#line 1053 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4195,7 +4198,7 @@ yyreduce:
   case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1057 "glsl_parser.ypp"
+#line 1059 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4206,7 +4209,7 @@ yyreduce:
   case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1066 "glsl_parser.ypp"
+#line 1068 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
@@ -4217,7 +4220,7 @@ yyreduce:
   case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1072 "glsl_parser.ypp"
+#line 1074 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
@@ -4228,7 +4231,7 @@ yyreduce:
   case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1078 "glsl_parser.ypp"
+#line 1080 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
@@ -4239,385 +4242,385 @@ yyreduce:
   case 161:
 
 /* Line 1455 of yacc.c  */
-#line 1086 "glsl_parser.ypp"
+#line 1088 "glsl_parser.ypp"
     { (yyval.n) = ast_void; ;}
     break;
 
   case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1087 "glsl_parser.ypp"
+#line 1089 "glsl_parser.ypp"
     { (yyval.n) = ast_float; ;}
     break;
 
   case 163:
 
 /* Line 1455 of yacc.c  */
-#line 1088 "glsl_parser.ypp"
+#line 1090 "glsl_parser.ypp"
     { (yyval.n) = ast_int; ;}
     break;
 
   case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1089 "glsl_parser.ypp"
+#line 1091 "glsl_parser.ypp"
     { (yyval.n) = ast_uint; ;}
     break;
 
   case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1090 "glsl_parser.ypp"
+#line 1092 "glsl_parser.ypp"
     { (yyval.n) = ast_bool; ;}
     break;
 
   case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1091 "glsl_parser.ypp"
+#line 1093 "glsl_parser.ypp"
     { (yyval.n) = ast_vec2; ;}
     break;
 
   case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1092 "glsl_parser.ypp"
+#line 1094 "glsl_parser.ypp"
     { (yyval.n) = ast_vec3; ;}
     break;
 
   case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1093 "glsl_parser.ypp"
+#line 1095 "glsl_parser.ypp"
     { (yyval.n) = ast_vec4; ;}
     break;
 
   case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1094 "glsl_parser.ypp"
+#line 1096 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec2; ;}
     break;
 
   case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1095 "glsl_parser.ypp"
+#line 1097 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec3; ;}
     break;
 
   case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1096 "glsl_parser.ypp"
+#line 1098 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec4; ;}
     break;
 
   case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1097 "glsl_parser.ypp"
+#line 1099 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec2; ;}
     break;
 
   case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1098 "glsl_parser.ypp"
+#line 1100 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec3; ;}
     break;
 
   case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1099 "glsl_parser.ypp"
+#line 1101 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec4; ;}
     break;
 
   case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1100 "glsl_parser.ypp"
+#line 1102 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec2; ;}
     break;
 
   case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1101 "glsl_parser.ypp"
+#line 1103 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec3; ;}
     break;
 
   case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1102 "glsl_parser.ypp"
+#line 1104 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec4; ;}
     break;
 
   case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1103 "glsl_parser.ypp"
+#line 1105 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2; ;}
     break;
 
   case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1104 "glsl_parser.ypp"
+#line 1106 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3; ;}
     break;
 
   case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1105 "glsl_parser.ypp"
+#line 1107 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4; ;}
     break;
 
   case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1106 "glsl_parser.ypp"
+#line 1108 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2; ;}
     break;
 
   case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1107 "glsl_parser.ypp"
+#line 1109 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x3; ;}
     break;
 
   case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1108 "glsl_parser.ypp"
+#line 1110 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x4; ;}
     break;
 
   case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1109 "glsl_parser.ypp"
+#line 1111 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x2; ;}
     break;
 
   case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1110 "glsl_parser.ypp"
+#line 1112 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3; ;}
     break;
 
   case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1111 "glsl_parser.ypp"
+#line 1113 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x4; ;}
     break;
 
   case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1112 "glsl_parser.ypp"
+#line 1114 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x2; ;}
     break;
 
   case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1113 "glsl_parser.ypp"
+#line 1115 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x3; ;}
     break;
 
   case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1114 "glsl_parser.ypp"
+#line 1116 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4; ;}
     break;
 
   case 190:
 
 /* Line 1455 of yacc.c  */
-#line 1115 "glsl_parser.ypp"
+#line 1117 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1d; ;}
     break;
 
   case 191:
 
 /* Line 1455 of yacc.c  */
-#line 1116 "glsl_parser.ypp"
+#line 1118 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2d; ;}
     break;
 
   case 192:
 
 /* Line 1455 of yacc.c  */
-#line 1117 "glsl_parser.ypp"
+#line 1119 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drect; ;}
     break;
 
   case 193:
 
 /* Line 1455 of yacc.c  */
-#line 1118 "glsl_parser.ypp"
+#line 1120 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler3d; ;}
     break;
 
   case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1119 "glsl_parser.ypp"
+#line 1121 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercube; ;}
     break;
 
   case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1120 "glsl_parser.ypp"
+#line 1122 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1dshadow; ;}
     break;
 
   case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1121 "glsl_parser.ypp"
+#line 1123 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2dshadow; ;}
     break;
 
   case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1122 "glsl_parser.ypp"
+#line 1124 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drectshadow; ;}
     break;
 
   case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1123 "glsl_parser.ypp"
+#line 1125 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercubeshadow; ;}
     break;
 
   case 199:
 
 /* Line 1455 of yacc.c  */
-#line 1124 "glsl_parser.ypp"
+#line 1126 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darray; ;}
     break;
 
   case 200:
 
 /* Line 1455 of yacc.c  */
-#line 1125 "glsl_parser.ypp"
+#line 1127 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darray; ;}
     break;
 
   case 201:
 
 /* Line 1455 of yacc.c  */
-#line 1126 "glsl_parser.ypp"
+#line 1128 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darrayshadow; ;}
     break;
 
   case 202:
 
 /* Line 1455 of yacc.c  */
-#line 1127 "glsl_parser.ypp"
+#line 1129 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darrayshadow; ;}
     break;
 
   case 203:
 
 /* Line 1455 of yacc.c  */
-#line 1128 "glsl_parser.ypp"
+#line 1130 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1d; ;}
     break;
 
   case 204:
 
 /* Line 1455 of yacc.c  */
-#line 1129 "glsl_parser.ypp"
+#line 1131 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2d; ;}
     break;
 
   case 205:
 
 /* Line 1455 of yacc.c  */
-#line 1130 "glsl_parser.ypp"
+#line 1132 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler3d; ;}
     break;
 
   case 206:
 
 /* Line 1455 of yacc.c  */
-#line 1131 "glsl_parser.ypp"
+#line 1133 "glsl_parser.ypp"
     { (yyval.n) = ast_isamplercube; ;}
     break;
 
   case 207:
 
 /* Line 1455 of yacc.c  */
-#line 1132 "glsl_parser.ypp"
+#line 1134 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1darray; ;}
     break;
 
   case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1133 "glsl_parser.ypp"
+#line 1135 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2darray; ;}
     break;
 
   case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1134 "glsl_parser.ypp"
+#line 1136 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1d; ;}
     break;
 
   case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1135 "glsl_parser.ypp"
+#line 1137 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2d; ;}
     break;
 
   case 211:
 
 /* Line 1455 of yacc.c  */
-#line 1136 "glsl_parser.ypp"
+#line 1138 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler3d; ;}
     break;
 
   case 212:
 
 /* Line 1455 of yacc.c  */
-#line 1137 "glsl_parser.ypp"
+#line 1139 "glsl_parser.ypp"
     { (yyval.n) = ast_usamplercube; ;}
     break;
 
   case 213:
 
 /* Line 1455 of yacc.c  */
-#line 1138 "glsl_parser.ypp"
+#line 1140 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1darray; ;}
     break;
 
   case 214:
 
 /* Line 1455 of yacc.c  */
-#line 1139 "glsl_parser.ypp"
+#line 1141 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2darray; ;}
     break;
 
   case 215:
 
 /* Line 1455 of yacc.c  */
-#line 1143 "glsl_parser.ypp"
+#line 1145 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4634,7 +4637,7 @@ yyreduce:
   case 216:
 
 /* Line 1455 of yacc.c  */
-#line 1154 "glsl_parser.ypp"
+#line 1156 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4651,7 +4654,7 @@ yyreduce:
   case 217:
 
 /* Line 1455 of yacc.c  */
-#line 1165 "glsl_parser.ypp"
+#line 1167 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4668,7 +4671,7 @@ yyreduce:
   case 218:
 
 /* Line 1455 of yacc.c  */
-#line 1180 "glsl_parser.ypp"
+#line 1182 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
@@ -4679,7 +4682,7 @@ yyreduce:
   case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1186 "glsl_parser.ypp"
+#line 1188 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
@@ -4690,7 +4693,7 @@ yyreduce:
   case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1195 "glsl_parser.ypp"
+#line 1197 "glsl_parser.ypp"
     {
           (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].declarator_list);
           (yyvsp[(1) - (1)].declarator_list)->link.self_link();
@@ -4700,7 +4703,7 @@ yyreduce:
   case 221:
 
 /* Line 1455 of yacc.c  */
-#line 1200 "glsl_parser.ypp"
+#line 1202 "glsl_parser.ypp"
     {
           (yyval.node) = (struct ast_node *) (yyvsp[(1) - (2)].node);
           (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
@@ -4710,7 +4713,7 @@ yyreduce:
   case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1208 "glsl_parser.ypp"
+#line 1210 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
@@ -4727,7 +4730,7 @@ yyreduce:
   case 223:
 
 /* Line 1455 of yacc.c  */
-#line 1223 "glsl_parser.ypp"
+#line 1225 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
           (yyvsp[(1) - (1)].declaration)->link.self_link();
@@ -4737,7 +4740,7 @@ yyreduce:
   case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1228 "glsl_parser.ypp"
+#line 1230 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
           (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
@@ -4747,7 +4750,7 @@ yyreduce:
   case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1236 "glsl_parser.ypp"
+#line 1238 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
@@ -4758,7 +4761,7 @@ yyreduce:
   case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1242 "glsl_parser.ypp"
+#line 1244 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
@@ -4769,28 +4772,28 @@ yyreduce:
   case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1265 "glsl_parser.ypp"
+#line 1267 "glsl_parser.ypp"
     { (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
   case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1277 "glsl_parser.ypp"
+#line 1279 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
   case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1278 "glsl_parser.ypp"
+#line 1280 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
   case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1285 "glsl_parser.ypp"
+#line 1287 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
@@ -4801,7 +4804,7 @@ yyreduce:
   case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1291 "glsl_parser.ypp"
+#line 1293 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
@@ -4812,14 +4815,14 @@ yyreduce:
   case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1299 "glsl_parser.ypp"
+#line 1301 "glsl_parser.ypp"
     { (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
   case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1305 "glsl_parser.ypp"
+#line 1307 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
@@ -4830,7 +4833,7 @@ yyreduce:
   case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1311 "glsl_parser.ypp"
+#line 1313 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
@@ -4841,7 +4844,7 @@ yyreduce:
   case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1320 "glsl_parser.ypp"
+#line 1322 "glsl_parser.ypp"
     {
           if ((yyvsp[(1) - (1)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
@@ -4856,7 +4859,7 @@ yyreduce:
   case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1330 "glsl_parser.ypp"
+#line 1332 "glsl_parser.ypp"
     {
           if ((yyvsp[(2) - (2)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
@@ -4870,7 +4873,7 @@ yyreduce:
   case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1342 "glsl_parser.ypp"
+#line 1344 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement(NULL);
@@ -4881,7 +4884,7 @@ yyreduce:
   case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1348 "glsl_parser.ypp"
+#line 1350 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
@@ -4892,7 +4895,7 @@ yyreduce:
   case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1357 "glsl_parser.ypp"
+#line 1359 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
@@ -4903,7 +4906,7 @@ yyreduce:
   case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1366 "glsl_parser.ypp"
+#line 1368 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL);
@@ -4914,7 +4917,7 @@ yyreduce:
   case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1372 "glsl_parser.ypp"
+#line 1374 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL);
@@ -4925,7 +4928,7 @@ yyreduce:
   case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1378 "glsl_parser.ypp"
+#line 1380 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
@@ -4936,7 +4939,7 @@ yyreduce:
   case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1387 "glsl_parser.ypp"
+#line 1389 "glsl_parser.ypp"
     {
           (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].expression);
        ;}
@@ -4945,7 +4948,7 @@ yyreduce:
   case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1391 "glsl_parser.ypp"
+#line 1393 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -4961,7 +4964,7 @@ yyreduce:
   case 260:
 
 /* Line 1455 of yacc.c  */
-#line 1414 "glsl_parser.ypp"
+#line 1416 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
@@ -4973,7 +4976,7 @@ yyreduce:
   case 261:
 
 /* Line 1455 of yacc.c  */
-#line 1421 "glsl_parser.ypp"
+#line 1423 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
@@ -4985,7 +4988,7 @@ yyreduce:
   case 262:
 
 /* Line 1455 of yacc.c  */
-#line 1428 "glsl_parser.ypp"
+#line 1430 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
@@ -4997,7 +5000,7 @@ yyreduce:
   case 266:
 
 /* Line 1455 of yacc.c  */
-#line 1444 "glsl_parser.ypp"
+#line 1446 "glsl_parser.ypp"
     {
           (yyval.node) = NULL;
        ;}
@@ -5006,7 +5009,7 @@ yyreduce:
   case 267:
 
 /* Line 1455 of yacc.c  */
-#line 1451 "glsl_parser.ypp"
+#line 1453 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
           (yyval.for_rest_statement).rest = NULL;
@@ -5016,7 +5019,7 @@ yyreduce:
   case 268:
 
 /* Line 1455 of yacc.c  */
-#line 1456 "glsl_parser.ypp"
+#line 1458 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
           (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
@@ -5026,7 +5029,7 @@ yyreduce:
   case 269:
 
 /* Line 1455 of yacc.c  */
-#line 1465 "glsl_parser.ypp"
+#line 1467 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
@@ -5037,7 +5040,7 @@ yyreduce:
   case 270:
 
 /* Line 1455 of yacc.c  */
-#line 1471 "glsl_parser.ypp"
+#line 1473 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
@@ -5048,7 +5051,7 @@ yyreduce:
   case 271:
 
 /* Line 1455 of yacc.c  */
-#line 1477 "glsl_parser.ypp"
+#line 1479 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
@@ -5059,7 +5062,7 @@ yyreduce:
   case 272:
 
 /* Line 1455 of yacc.c  */
-#line 1483 "glsl_parser.ypp"
+#line 1485 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
@@ -5070,7 +5073,7 @@ yyreduce:
   case 273:
 
 /* Line 1455 of yacc.c  */
-#line 1489 "glsl_parser.ypp"
+#line 1491 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
@@ -5081,21 +5084,21 @@ yyreduce:
   case 274:
 
 /* Line 1455 of yacc.c  */
-#line 1497 "glsl_parser.ypp"
+#line 1499 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
     break;
 
   case 275:
 
 /* Line 1455 of yacc.c  */
-#line 1498 "glsl_parser.ypp"
+#line 1500 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
     break;
 
   case 276:
 
 /* Line 1455 of yacc.c  */
-#line 1503 "glsl_parser.ypp"
+#line 1505 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function_definition) = new(ctx) ast_function_definition();
@@ -5108,7 +5111,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 5112 "glsl_parser.cpp"
+#line 5115 "glsl_parser.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
index 470c080f723893029fcc9e3ee706114fa4d658d3..b9f3e3fe043e74fb635bdecfcef783e712aad005 100644 (file)
      CAST = 413,
      NAMESPACE = 414,
      USING = 415,
-     COMMON = 416,
-     PARTITION = 417,
-     ACTIVE = 418,
-     SAMPLERBUFFER = 419,
-     FILTER = 420,
-     IMAGE1D = 421,
-     IMAGE2D = 422,
-     IMAGE3D = 423,
-     IMAGECUBE = 424,
-     IMAGE1DARRAY = 425,
-     IMAGE2DARRAY = 426,
-     IIMAGE1D = 427,
-     IIMAGE2D = 428,
-     IIMAGE3D = 429,
-     IIMAGECUBE = 430,
-     IIMAGE1DARRAY = 431,
-     IIMAGE2DARRAY = 432,
-     UIMAGE1D = 433,
-     UIMAGE2D = 434,
-     UIMAGE3D = 435,
-     UIMAGECUBE = 436,
-     UIMAGE1DARRAY = 437,
-     UIMAGE2DARRAY = 438,
-     IMAGE1DSHADOW = 439,
-     IMAGE2DSHADOW = 440,
-     IMAGEBUFFER = 441,
-     IIMAGEBUFFER = 442,
-     UIMAGEBUFFER = 443,
-     ROW_MAJOR = 444
+     ERROR_TOK = 416,
+     COMMON = 417,
+     PARTITION = 418,
+     ACTIVE = 419,
+     SAMPLERBUFFER = 420,
+     FILTER = 421,
+     IMAGE1D = 422,
+     IMAGE2D = 423,
+     IMAGE3D = 424,
+     IMAGECUBE = 425,
+     IMAGE1DARRAY = 426,
+     IMAGE2DARRAY = 427,
+     IIMAGE1D = 428,
+     IIMAGE2D = 429,
+     IIMAGE3D = 430,
+     IIMAGECUBE = 431,
+     IIMAGE1DARRAY = 432,
+     IIMAGE2DARRAY = 433,
+     UIMAGE1D = 434,
+     UIMAGE2D = 435,
+     UIMAGE3D = 436,
+     UIMAGECUBE = 437,
+     UIMAGE1DARRAY = 438,
+     UIMAGE2DARRAY = 439,
+     IMAGE1DSHADOW = 440,
+     IMAGE2DSHADOW = 441,
+     IMAGEBUFFER = 442,
+     IIMAGEBUFFER = 443,
+     UIMAGEBUFFER = 444,
+     ROW_MAJOR = 445
    };
 #endif
 
@@ -267,7 +268,7 @@ typedef union YYSTYPE
 
 
 /* Line 1676 of yacc.c  */
-#line 271 "glsl_parser.h"
+#line 272 "glsl_parser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */